Jak zoptymalizować wykorzystanie pamięci procesowej php?
Używam witryny Wordpress, a każde użycie procesu PHP zajmuje od 200 do 250 MB pamięci rezydentnej. Z 16 GB pamięci RAM serwer może obsłużyć tylko około 70 procesów. Poprzez zwiększenie pamięci wirtualnej do 16 GB może obsłużyć 140. Następnie obciążenie rośnie. Jeśli w ciągu 10 minut jest 200 połączeń, obciążenie serwera osiągnie 20 w czterordzeniowym procesorze xeon 3Ghz!
Próbowałem dezaktywować wszystkie wtyczki, ale to tylko zmniejsza wykorzystanie pamięci PHP w każdym procesie o mniej niż 10%. suPHP mówi mi, który użytkownik używa tak dużo pamięci, ale nie jaką część kodu wordpress.
Wszelkie sugestie dotyczące zmniejszenia wykorzystania pamięci? Czy jest moją jedyną opcją uaktualnienia do 32 GB pamięci RAM?
<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>
Największe wyjścia z 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>
wyjście ipcs
<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>