Imagemagick mogrify jacks acima da média de carregamento do servidor linux

1

AFAIK, a teoria diz que multiplicar fator de 1 por núcleo da CPU para descobrir sua média de carga ideal. Assim, o servidor com 8 núcleos de CPU a média de carga ideal seria 8, 16 núcleos = 16 e assim por diante. No entanto, ao usar o mgrify do Imagemagick, consigo ver números médios de carga enorme:

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

Como fica claro em top - sem problemas com o servidor. Esse comportamento ocorre somente quando a chamada mogrify .

Por que isso acontece? Como eu posso consertar ou pelo menos diminuir um pouco?

Obrigado!

Edit: Geralmente eles correm tanto tempo. O servidor responde como de costume. Estou processando 618 imagens em tamanho médio de 2.5 MB. A carga é distribuída entre poucos servidores, que top outputs são muito idênticos. Li este tópico que ainda estou para testar. Parece-me que mogrify (ou Imagemagick) "superestima" os processadores. Daí o uso de mais de 200% da CPU por trabalho.

    
por grs 16.09.2011 / 20:10

2 respostas

0

Eu encontrei o que a solução é. Fiz testes em duas versões de ImageMagick - 6.5.1 e 6.5.7. A versão antiga vem com o Ubuntu Karmic 9.10, o mais recente com o Ubuntu Lucid 10.04. Ambas as versões de 64 bits. Eu notei que a versão 6.5.7 é mais rápida que a 6.5.1 e também não carrega muito o servidor. Produzia uma carga normal de dígito único, como se poderia esperar. Para ambas as versões mogrify foi multithreaded.

Então, agora estou satisfeito. Se eu encontrar algum tempo livre, verifique qual é a diferença exata.

    
por 19.09.2011 / 22:54
2

Você está fazendo o processamento de gráficos. Isso é inerentemente intenso para a CPU.

A solução é parar de fazer o processamento de gráficos ou, pelo menos, fazer menos - atualize o que estiver chamando mogrify para que não seja possível executar tantas tarefas paralelas. Se isso não for uma opção, divida a carga (adicione outro servidor e envie um pouco do trabalho para lá).

Observe que, se sua média de carga for 130 e seu sistema ainda estiver respondendo e fazendo tudo que você precisa para fazê-lo em tempo hábil, você não tem um problema, você tem um "problema" (não parece bom , de relance qualquer sysadmin lhe dirá que provavelmente é algo ruim e você deveria olhar para soluções como o que eu descrevi acima, mas se não está prejudicando nada e não fica substancialmente pior como você escala você pode poder o ignorar como "normal para este ambiente").

    
por 16.09.2011 / 20:18