nice -n 19 find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) \
-exec zip live.zip '{}' \;上面的命令在我们的实时CentOS服务器上运行,就好像没有nice命令一样。大约60秒后,当我使用top命令时,我可以看到zip处于‘顶部’。服务器开始崩溃,我不得不使命令崩溃。
发布于 2012-05-15 19:37:13
nice仅设置进程的调度优先级。它不会限制它消耗多少CPU时间。
所以:如果一个低优先级的进程想要消耗大量的CPU时间/资源,那么它就会得到它们。直到出现具有更高优先级的进程来占用CPU时间。
重点是:如果CPU没有其他事情要做,那么为什么不将所有CPU时间提供给需要它的进程,即使它没有高优先级?
如果您想将CPU使用率限制在最大值的%,那么可以考虑使用cpulimit之类的工具。
编辑:
zip可能严重拖慢速度的其他原因有:
ionice控制它(不确定CentOS是否默认有它)- David Schmitt在评论中指出了这一点,发行版可能会分配大量内存,并换出其他进程。然后,当这些进程被唤醒时(比如mysqld收到一个查询),它们就会变得迟缓。你也许可以通过减少Swappiness来解决这个问题。但这是一个系统级参数,您可能希望不对其进行修改。发布于 2012-05-15 22:45:21
从评论中,我推断您的服务器内存不足,这实际上根本不是CPU或I/O或优先级问题。
试着用像tar这样的流媒体解决方案来代替压缩。这应该会大大减少所需的内存:
find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) -print0 \
| xargs -0 tar cvzf live.tar.gz 在此命令上使用nice仍然是进一步减少影响的一个选择。它必须与可能更长的运行时间和同时使用的其他资源(特别是内存)进行平衡。
https://stackoverflow.com/questions/10599614
复制相似问题