我正在专用的Ubuntu web服务器上运行一些网站。如果我没记错的话,它有8个内核,16GB内存,并且作为64位Ubuntu运行。内容和文件可以快速传递到web浏览器。一切都像一场梦。。。直到我运行gzip或zip来备份一个8.6GB大小的网站。
当运行gzip或zip时,Apache将停止提供内容。在压缩过程完成之前,将传递内部服务器错误消息。在此过程中,我可以毫不延迟地通过ssh登录并运行top命令。我可以看到zip进程占用了大约50%的CPU(我猜这是单个CPU的50%,而不是全部8个?)。
起初,我认为这可能是一个日志问题,Apache日志越来越失控,不想被打乱。不过,日志文件的大小低于5MB,并且在达到5MB时会进行旋转。目前的另一种想法是,Apache只想在一个CPU上运行,而让任何其他进程来领导。还不知道该从哪里着手解决这个问题。
对如何解决此问题有什么想法吗?在备份时删除我的所有站点不是一种选择,而且我似乎无法在本地机器上重现这个问题(当然,这是不同的硬件和配置)。我希望这个问题不要含糊。我很乐意根据需要提供更多细节。
提前谢谢你的脑筋!
我建议在"ionice"命令下运行备份脚本。这将有助于防止httpd从I/O中饿死。