每晚备份和服务器性能

在某个时候,我们运行一些备份脚本来备份:

  • 代码/文件
  • 数据库
  • 服务器上的其他重要文件

在这段时间内,服务器上的网站遭遇了超时和数据库连接问题。

所以,我想我做错了。 在不影响服务器上网站性能的情况下,进行夜间备份的方式是什么?

OS:Centos应用程序:MySQL,Rsync

备份到远程服务器。

由于备份操作有争用磁盘和CPU也可能networking资源,因此您的网站没有响应。 为了避免这种情况,您将不得不减less备份操作的io和cpu优先级,以便您的站点能够正常运行。

您可以在调用备份脚本之前使用它。

 root@x:~# bash root@x:~# echo $BASHPID 6576 

BASHIDvariables是当前bash会话的PID

 root@x:~# ionice -c 2 -n 7 -p $BASHPID 

这会减less你当前shell的磁盘优先级

-c = class(0无,1个实时,2个尽力,3个空闲)

-n =优先级(0-7,0是最高优先级)

 root@x:~# renice +10 -p $BASHPID 

这会降低当前shell的cpu调度优先级(-19是最高优先级,20是最不优先的)

 root@x:~# ./backup-script 

现在从这里你可以调用你的备份脚本。 由于subprocess从父进程inheritancecpu和io优先级,因此备份脚本进程将以较低的io,cpu优先级运行,因此您的服务器进程优先于备份。

如果你正在使用cron作业,你可以把上面所有的命令放在一个文件中,chmod为x权限,并把这个文件添加到cron中。

如果networking出现瓶颈,则可能需要使用“tc”来对备份stream量进行分类,并对速率进行限制。 你可以在这里阅读关于限速。 http://wiki.openvz.org/Traffic_shaping_with_tc

如果不知道涉及到哪些操作系统,应用程序,文件系统和备份介质,很难回答。

没有任何可用的,我的答案是: rsync