Estou implantando um aplicativo que usa o ImageMagick no servidor VPS. Eu testei em dois sistemas operacionais diferentes: Centos6 e Ubuntu Server 12.04.
No Centos6, o aplicativo está funcionando corretamente e ao acessar o script do ImageMagick, o uso da memória pode ficar acima de 90% (FYI, tanto o sistema operacional quanto o VPS estão usando um pacote de memória de 512 MB). No entanto, quando eu tentei o mesmo script, nunca vai acima de 5-6,2%.
top
result no servidor ubuntu:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1816 userx 20 0 341m 24m 5260 D 40.8 5.0 0:13.85 apache2
top
result no servidor centos:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15798 ariefbay 20 0 183m 155m 5684 R 99.8 31.2 0:05.96 httpd
Esta limitação de memória resultou em um processo muito longo. Eu preciso que seja rápido e, como este será um servidor de uso limitado, não me importo se consumir toda a memória.
Eu tentei o seguinte passo:
adicionando o RLimitMEM ao /etc/apache2/apache2.conf
RLimitMEM max max
ulimit -l unlimited
adicionando a configuração em /etc/security/limits.conf
:
userx - rtprio 99
userx - memlock unlimited
userx - nice -10
apache2
process está sendo executado como userx
. isso está funcionando bem, como comprovado por ulimit -a
:
userx@do:/etc/apache2$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 30
file size (blocks, -f) unlimited
pending signals (-i) 3861
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 99
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3861
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Também posso ver que as configurações de memória estão funcionando bem, observando / proc / pic / limits:
userx@do:/etc/apache2$ cat /proc/1811/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 3861 3861 processes
Max open files 8192 8192 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 3861 3861 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 30 30
Max realtime priority 99 99
Max realtime timeout unlimited unlimited us
Eu fiz algo errado? O que devo fazer para resolver este problema no Ubuntu?