Aqui está um link para o perfil do seu código: StackOverflow: a maneira mais simples de criar o perfil de um script PHP
Desde hoje meu servidor web (nginx + php-fpm + mysql em um VPS) é muito lento.
htop diz:
1 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%] Tasks: 63 total, 13 running
2 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%] Load average: 11.67 10.95 6.95
3 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%] Uptime: 00:18:40
4 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
5 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
6 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
Mem[||||||||||| 137/1280MB]
Swp[ 0/0MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
6802 www 20 0 76232 12320 5716 R 27.0 0.9 0:06.48 php-fpm: pool www
7048 www 20 0 75200 12136 5700 R 52.0 0.9 0:03.64 php-fpm: pool www
6699 www 20 0 74176 11124 5700 R 27.0 0.8 0:07.36 php-fpm: pool www
7029 www 20 0 73668 10380 5676 R 42.0 0.8 0:03.52 php-fpm: pool www
6995 www 20 0 76228 12456 5644 R 42.0 1.0 0:03.98 php-fpm: pool www
6858 www 20 0 74172 10684 5620 R 35.0 0.8 0:05.52 php-fpm: pool www
6998 www 20 0 75200 12072 5620 R 37.0 0.9 0:03.95 php-fpm: pool www
7098 www 20 0 75200 12052 5616 R 42.0 0.9 0:02.33 php-fpm: pool www
7093 www 20 0 76228 12496 5612 R 37.0 1.0 0:03.02 php-fpm: pool www
7226 www 20 0 74692 11080 5588 R 32.0 0.8 0:00.66 php-fpm: pool www
CPU: (modelo cat / proc / cpuinfo | grep)
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
model : 44
model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
Eu acho que uma carga de 10 e 100% de uso da CPU não é normal ... Como posso corrigir isso?
Editar: Eu acho que poderia ser por causa do mysql. Aqui está a lista de processos do PhpMyAdmin:
Show Full Queries ID User Host Database Command Time Status SQL query
Kill 3567 bs localhost bs Sleep 2 --- ---
Kill 3575 bs localhost bs Sleep 1 --- ---
Kill 3576 bs localhost bs Sleep 1 --- ---
Kill 3578 bs localhost bs Sleep 0 --- ---
Kill 3579 bs localhost bs Sleep 0 --- ---
Kill 3580 bs localhost bs Query 0 Writing to net SELECT count( id )
FROM messages
WHERE uid_to =345
AND unread =1
Kill 3581 bs localhost bs Sleep 0 --- ---
Kill 3582 unauthenticated user connecting host None Connect login ---
Kill 3583 phpmyadmin localhost None Sleep 0 --- ---
Kill 3584 root localhost mysql Query 0 --- SHOW PROCESSLIST
Como você pode ver, há apenas um thread usado, mas o Google Analytics diz:
Right now
429
active visitors on site
Eu me conecto ao Mysql por PDO. Como posso obter mais tópicos?
Aqui está um link para o perfil do seu código: StackOverflow: a maneira mais simples de criar o perfil de um script PHP
A carga não deve ser maior que a quantidade de núcleos. Atualmente você tem 6, uma carga maior que isso produzirá respostas lentas.
Parece que seus scripts PHP estão consumindo todos os recursos da CPU. A criação de perfis seria uma boa ideia.
Você também pode aumentar o processamento do PHP com algum armazenamento em cache. Eu recomendaria tentar o eaccelerator, que deve ser fácil de ativar, e também dar uma olhada nas opções de cache do nginx.
Outro bom perfilador que usamos foi o xhprof: link , mas requer um pouco mais de leitura para usar.
boa sorte