Wie kann man die Speichernutzung des PHP-Prozesses optimieren?
Ich betreibe eine WordPress-Site und jeder PHP-Prozess verwendet ca. 200 MB bis 250 MB residente Speichergröße. Mit 16 GB RAM kann der Server nur etwa 70 Prozesse verarbeiten. Durch Erhöhen des virtuellen Speichers auf 16 GB kann es 140 verarbeiten. Danach steigt die Last weiter an. Wenn in 10 Minuten 200 Verbindungen bestehen, erreicht die Serverlast auf einem 3 GHz-Quad-Core-xeon-Prozessor 20!
Ich habe versucht, alle Plugins zu deaktivieren, aber dies reduziert nur die PHP-Speichernutzung jedes Prozesses um weniger als 10%. suPHP sagt mir, welcher Benutzer so viel Speicher verwendet, aber nicht welcher Teil des WordPress-Codes.
Irgendwelche Vorschläge zur Reduzierung des Speicherbedarfs? Oder kann ich nur auf 32 GB RAM upgraden?
<code>PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10585 nobody 16 0 2266m 237m 199m S 21.3 1.5 1:09.17 /usr/bin/php 10597 nobody 16 0 2257m 255m 226m S 15.3 1.6 0:17.56 /usr/bin/php </code>
Größte Ausgaben von pmap -d
<code>000000000e8b8000 27580 rw--- 000000000e8b8000 000:00000 [ anon ] 00002b3772850000 2097152 rw-s- 0000000000000000 000:00009 [ shmid=0x2d1b803a ] 00002b37f2a62000 55108 r---- 0000000000000000 0fd:00000 locale-archive mapped: 2320852K writeable/private: 30012K shared: 2097152K </code>
IPCS-Ausgabe
<code>------ Semaphore Arrays -------- key semid owner perms nsems 0x000000a7 0 root 600 1 0x00000000 162529281 nobody 600 1 0x00000000 162562050 nobody 600 1 0x00000000 162594819 nobody 600 1 0x00000000 162627588 nobody 600 1 ------ Message Queues -------- key msqid owner perms used-bytes messages` </code>