人。这是我的第一个问题,但这个社区已经帮助了我数百次,所以非常感谢。
现在谈谈我的问题。我知道类似的问题已经发布多次,但在 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
。