在某个时候,我们运行一些备份脚本来备份:
在这段时间内,服务器上的网站遭遇了超时和数据库连接问题。
所以,我想我做错了。 在不影响服务器上网站性能的情况下,进行夜间备份的方式是什么?
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