首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zipping a Web Root:为什么nice不能降低CPU负载?

问Zipping a Web Root:为什么nice不能降低CPU负载?
EN

Stack Overflow用户
提问于 2012-05-15 19:19:11
回答 2查看 372关注 0票数 1
代码语言:javascript
复制
nice -n 19 find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) \
  -exec zip live.zip '{}' \;

上面的命令在我们的实时CentOS服务器上运行,就好像没有nice命令一样。大约60秒后,当我使用top命令时,我可以看到zip处于‘顶部’。服务器开始崩溃,我不得不使命令崩溃。

EN

回答 2

Stack Overflow用户

发布于 2012-05-15 19:37:13

nice仅设置进程的调度优先级。它不会限制它消耗多少CPU时间。

所以:如果一个低优先级的进程想要消耗大量的CPU时间/资源,那么它就会得到它们。直到出现具有更高优先级的进程来占用CPU时间。

重点是:如果CPU没有其他事情要做,那么为什么不将所有CPU时间提供给需要它的进程,即使它没有高优先级?

如果您想将CPU使用率限制在最大值的%,那么可以考虑使用cpulimit之类的工具。

编辑:

zip可能严重拖慢速度的其他原因有:

  1. Disk I/O:你可以在某些发行版上用ionice控制它(不确定CentOS是否默认有它)- David Schmitt在评论中指出了这一点,发行版可能会分配大量内存,并换出其他进程。然后,当这些进程被唤醒时(比如mysqld收到一个查询),它们就会变得迟缓。你也许可以通过减少Swappiness来解决这个问题。但这是一个系统级参数,您可能希望不对其进行修改。
票数 2
EN

Stack Overflow用户

发布于 2012-05-15 22:45:21

从评论中,我推断您的服务器内存不足,这实际上根本不是CPU或I/O或优先级问题。

试着用像tar这样的流媒体解决方案来代替压缩。这应该会大大减少所需的内存:

代码语言:javascript
复制
find . -type f \( -iname "*.php" -o -iname "*.js" -o -iname "*.inc" \) -print0 \
    | xargs -0 tar cvzf live.tar.gz 

在此命令上使用nice仍然是进一步减少影响的一个选择。它必须与可能更长的运行时间和同时使用的其他资源(特别是内存)进行平衡。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10599614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档