找出高负载的原因。检查了 CPU、内存/交换和 IO - 全部较低。在此 Ubuntu 12.04 机器上运行 Nginx、MySQL 和 PHP-FPM

找出高负载的原因。检查了 CPU、内存/交换和 IO - 全部较低。在此 Ubuntu 12.04 机器上运行 Nginx、MySQL 和 PHP-FPM

可能重复:
使用 Magento 执行 4 个或更多并发请求时 CPU 占用率为 100%

人。这是我的第一个问题,但这个社区已经帮助了我数百次,所以非常感谢。

现在谈谈我的问题。我知道类似的问题已经发布多次,但在 Google 和 shell 上搜索了几个小时后,我仍然无法解决这个问题。

这是在运行 Ubuntu 12.04 的 Web 服务器上,安装了 Magento,流量较低(每周页面浏览量约为 70K)。

服务器规格:

  • Ubuntu 12.04
  • 1 个核心
  • 2 GB 内存

软件版本

  • Nginx:1.1.19
  • PHP5-FPM:5.3.10-1ubuntu3.4(fpm-fcgi)
  • MySQL:5.5.28-0ubuntu0.12.04.2
  • 亚太经合组织:3.1.7
  • Memcached:1.4.13

据我所知,APC 和 Memcached 运行良好。

当服务器处理 10 - ten - 用户时,将生成以下输出 (基本上没什么)


顶部

top - 14:07:41 up 12 days,  3:45,  1 user,  load average: 1.37, 1.43, 1.48
Tasks:  90 total,   6 running,  84 sleeping,   0 stopped,   0 zombie
Cpu(s): 61.3%us,  6.0%sy,  0.0%ni, 30.3%id,  0.0%wa,  0.0%hi,  2.3%si,  0.0%st
Mem:   2051736k total,  1628388k used,   423348k free,   114516k buffers
Swap:  1998844k total,        0k used,  1998844k free,   370760k cached

虚拟机状态 5

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 6  0      0 433952 114672 371120    0    0     9    34    3   10 34  4 62  0
 0  0      0 434896 114680 371136    0    0     0    16  477  293 23  4 73  0
 0  0      0 434664 114688 371168    0    0     0    17  560  379 36  5 58  0
 5  0      0 424900 114696 371172    0    0     0    24  473  310 38  5 57  0
 0  0      0 434340 114700 371196    0    0     0    12  379  281 21  3 77  0
 1  0      0 429844 114712 371220    0    0     0    11  887  647 68  9 23  0
 5  0      0 420048 114720 371224    0    0     0    43  528  361 41  5 54  0
 0  0      0 435812 114720 371248    0    0     0     5  451  397 38  4 58  0

iotop: 几乎没有任何读/写流量

PHP-FPM 状态:

pool:                 www
process manager:      static
start time:           29/Nov/2012:12:59:42 +0100
start since:          4572
accepted conn:        4157
listen queue:         0
max listen queue:     1
listen queue len:     128
idle processes:       19
active processes:     1
total processes:      20
max active processes: 9
max children reached: 0

Nginx 状态:

Active connections: 13 
server accepts handled requests
 5781 5781 27611 
Reading: 0 Writing: 1 Waiting: 12 

相关 PHP-FPM 池配置


/etc/php5/fpm/pool.d/www.conf:

pm = static
pm.max_children = 20
pm.max_requests = 50

PHP 内存总使用量:1.18 GB
Nginx 内存总使用量:151 MB


我完全搞不懂为什么负载这么高,服务器又这么慢。任何意见都将不胜感激。甚至想知道到底是什么在我的服务器上排队,造成了这种负载。

编辑:


顶部空闲时:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                   
    1 root      20   0 24292 1944 1004 S  0.0  0.1   0:06.14 init                                                                                                                      
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.03 kthreadd                                                                                                                  
    3 root      20   0     0    0    0 S  0.0  0.0   1:27.71 ksoftirqd/0                                                                                                               
    5 root      20   0     0    0    0 S  0.0  0.0   0:00.27 kworker/u:0                                                                                                               
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                               
    7 root      RT   0     0    0    0 S  0.0  0.0   0:07.77 watchdog/0  

php5-fpm 突然爆发顶部

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                   
17533 www-data  20   0  786m  52m  25m R 19.8  2.6   0:11.21 php5-fpm                                                                                                                  
17534 www-data  20   0  786m  56m  30m R 19.8  2.8   0:10.58 php5-fpm                                                                                                                  
17539 www-data  20   0  786m  56m  30m R 19.8  2.8   0:09.49 php5-fpm                                                                                                                  
17544 www-data  20   0  786m  56m  30m R 19.8  2.8   0:09.98 php5-fpm                                                                                                                  
17671 www-data  20   0  786m  60m  34m R 19.8  3.0   0:08.10 php5-fpm                                                                                                                  
    1 root      20   0 24292 1944 1004 S  0.0  0.1   0:06.14 init    

答案1

您是否使用 htop 检查过哪个进程占用了过多的 CPU?而且pm.max_requests = 50似乎太低了(Magento 是否泄漏?)。我会选择pm.max_requests = 500

相关内容