Imagemagick mogrify支持linux服务器的平均负载

AFAIK,理论上说,每个CPU核心的乘法因子为1,以找出最佳的平均负载。 因此,具有8个CPU核心的服务器的最佳负载平均值为8,16核心= 16等等。 但是,当使用Imagemagick的mogrify时,我可以看到巨大的平均负载数字:

top - 14:00:44 up 9 days, 20:12, 6 users, load average: 130.37, 87.53, 56.94 Tasks: 588 total, 11 running, 577 sleeping, 0 stopped, 0 zombie Cpu(s): 99.8%us, 0.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 49555072k total, 33129928k used, 16425144k free, 3813092k buffers Swap: 23438824k total, 47276k used, 23391548k free, 26145156k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 29490 user1 20 0 121m 33m 2728 R 240 0.1 9:10.52 mogrify 29337 user1 20 0 121m 33m 2728 R 234 0.1 12:01.94 mogrify 29882 user1 20 0 121m 33m 2728 R 231 0.1 3:57.54 mogrify 29232 user1 20 0 121m 33m 2728 R 223 0.1 11:34.54 mogrify 29514 user1 20 0 122m 33m 2728 R 223 0.1 9:22.84 mogrify 29689 user1 20 0 121m 33m 2728 R 219 0.1 7:28.18 mogrify 29204 user1 20 0 121m 33m 2728 R 206 0.1 12:21.33 mogrify 

top可以清楚地看出 – 服务器没有问题。 此行为仅在调用mogrify时发生。

为什么会发生? 我该如何修复它,或者至less调低一点?

谢谢!

编辑:通常他们运行那么久。 服务器像往常一样响应。 我正在处理平均大小为2.5 MB的618个图像。 负载分布在几台服务器之间, top输出看起来非常相似。 我已经读过这个线程 ,我还没有testing。 在我看来,mogrify(或Imagemagick)“高估了”CPU。 因此,每个作业的CPU使用率为200 +%。

你正在做graphics处理。 这本质上是CPU密集型的。

解决办法是停止graphics处理,或者至less做更less的事情 – 更新任何调用mogrify所以它不能运行许多并行任务。 如果这不是一个选项拆分负载(添加另一台服务器,并发送一些工作)。


请注意,如果您的平均负载为130,并且您的系统仍然能够及时响应并执行您所需的任何操作,那么您没有任何问题,那么您就有一个“问题”(这看起来不太好,一目了然,任何系统pipe理员都会告诉你这可能是坏事,你应该看看上面描述的解决scheme,但是如果它没有损害任何东西,并且不会随着你的扩展而变得更糟糕,你可能会忽略它,为这个环境“)。

我find了解决办法 我跑了两个版本的ImageMagick – 6.5.1和6.5.7的testing。 旧版本带有Ubuntu Karmic 9.10,Ubuntu Lucid 10.04。 两个64位版本。 我注意到6.5.7版本比6.5.1更快,也不会加载太多的服务器。 它可以产生正常的单位数字负载。 对于这两个版本, mogrify都是multithreading的。

所以,现在我很满意。 如果我find一些空闲时间,将检查确切的区别是什么。