ulimit comando ou outras opções limitadoras de memória / cpu?

1

Eu tenho um processo de linha de comando que é executado pelo meu aplicativo ruby on rails para usar o comando 'convert' do ImageMagick para converter um PDF em múltiplos PNGs. O problema é que quando eu executo o comando ele pega toda a memória do meu VPS (512MB) e renderiza muitas outras funções quase inúteis (servidor web, ssh etc).

Meu comando de conversão é o seguinte:

convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png

Eu tentei usar o ulimit para limitar a memória que esse processo pode consumir para aproximadamente 15% de memória, que no meu VPS de 512MB é de aproximadamente 76.800 kbytes. Se eu executar o comando acima com ulimit, como visto abaixo, o processo inicialmente aumenta sem limite, ocupando até 80% da memória e torna inúteis outras funções do servidor devido ao atraso. Depois de um tempo, o processo cai para menos de 10% (geralmente 4-8% da memória), mas toda a funcionalidade do outro servidor ainda é lenta.

Observe que meus números sobre a quantidade de memória que o processo está consumindo estão vindo de cima.

bash -c 'ulimit -m 76800; convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png'

Alguém tem alguma idéia de como eu posso executar este comando sem consumir toda a minha memória?

Obrigado!

    
por bwizzy 11.11.2011 / 15:27

1 resposta

1

Confira os cgroups

link

link

    
por 11.11.2011 / 16:32