由于今天我的networking服务器(VPS上的nginx + php-fpm + mysql)非常慢。
htop说:
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:(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
我认为一个10和100%的CPU使用率的负载是不正常的…我怎样才能解决这个问题?
编辑:我认为这可能是因为MySQL。 这是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
如您所见,只有一个线程可以使用,但Google Analytics(分析)说:
Right now 429 active visitors on site
我连接到每个PDO的Mysql。 我怎样才能获得更多的线程?
这是一个链接来分析你的代码: StackOverflow:简单的方法来分析一个PHP脚本
负载不应该高于核心的数量。 目前你有6个,比这更高的负载会产生缓慢的反应。
看起来你的PHP脚本正在消耗所有的CPU资源。 分析他们将是一个好主意。
你也可以用一些caching来增加PHP处理。 我会build议尝试eaccelerator应该很容易启用,也看看nginxcaching选项。
我们使用的另一个好的分析器是xhprof: https : //github.com/facebook/xhprof,但需要更多的阅读才能使用。
祝你好运