Apache-2.2

伺服器性能問題 - 找到罪魁禍首

  • July 18, 2012

我有一個帶有流式聊天的小網站。我們真的沒有太多流量和專用伺服器。但現在有些事情困擾著我。有時,伺服器響應請求最多需要 20 秒。雖然我高度懷疑 mySQL 是麻煩製造者(同時,像 munin 這樣的靜態 Html 頁面幾乎是立即提供的)。但很快它就按預期執行了。我檢查了日誌並查看了 croinjobs ……但沒有任何內容與減速相關或表明它們。

apache2 是帶有 mod_php5 和 xcache 的 prefork。所以我不認為 PHP 導致了減速。

我做了什麼來找出問題所在:我安裝了 munin,檢查了 iostats,mytop,htop,優化了我的查詢並更改了一個我之前懷疑延遲的頻繁呼叫的查詢,以及從表中刪除索引,因為它幾乎沒有被查詢但是經常寫給。

記憶體:

root@server ~ # free -m                                                          
            total       used       free     shared    buffers     cached       
Mem:          2002       1817        184          0        122       1051       
-/+ buffers/cache:        644       1357                                        
Swap:         2046          0       2046

所以 RAM 可以使用 1300 MB 空閒空間。

iostat:

root@server ~ # iostat -x 1 3
Linux 3.2.0-26-generic (server)  07/18/2012      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          5.24    1.72    1.43    2.15    0.00   89.47

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.20     2.56    1.35    4.20    26.19    74.90    36.41     0.12   21.17    3.12   26.99   6.29   3.49
md1               0.00     0.00    0.00    0.00     0.02     0.00     6.55     0.00    0.00    0.00    0.00   0.00   0.00
md2               0.00     0.00    2.83    6.10    49.23    72.25    27.22     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.02    0.05     0.08     0.20     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.19     2.56    1.11    4.20    23.18    74.90    36.94     0.13   23.88    3.34   29.32   6.30   3.35

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          2.02    0.00    1.01    0.00    0.00   96.97

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    3.03     0.00    12.12     8.00     0.03    9.33    0.00    9.33   9.33   2.83
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md2               0.00     0.00    0.00    1.01     0.00     4.04     8.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    3.03     0.00    12.12     8.00     0.02    6.67    0.00    6.67   6.67   2.02

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          0.00    0.00    0.00    8.08    0.00   91.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     5.05    0.00    6.06     0.00    44.44    14.67     0.12   19.33    0.00   19.33  19.33  11.72
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
md2               0.00     0.00    0.00    9.09     0.00    36.36     8.00     0.00    0.00    0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     5.05    0.00    6.06     0.00    44.44    14.67     0.11   18.00    0.00   18.00  18.00  10.91

平均負載:

load average: 0.36, 0.39, 0.45       

PS斧頭:

PID TTY      STAT   TIME COMMAND
   1 ?        Ss     0:00 /sbin/init
   2 ?        S      0:00 [kthreadd]
   3 ?        S      0:04 [ksoftirqd/0]
   5 ?        S      0:00 [kworker/u:0]
   6 ?        S      0:00 [migration/0]
   7 ?        S      0:00 [watchdog/0]
   8 ?        S<     0:00 [cpuset]
   9 ?        S<     0:00 [khelper]
  10 ?        S      0:00 [kdevtmpfs]
  11 ?        S<     0:00 [netns]
  12 ?        S      0:00 [sync_supers]
  13 ?        S      0:00 [bdi-default]
  14 ?        S<     0:00 [kintegrityd]
  15 ?        S<     0:00 [kblockd]
  16 ?        S<     0:00 [ata_sff]
  17 ?        S      0:00 [khubd]
  18 ?        S<     0:00 [md]
  22 ?        S      0:00 [khungtaskd]
  23 ?        S      0:00 [kswapd0]
  24 ?        SN     0:00 [ksmd]
  25 ?        SN     0:00 [khugepaged]
  26 ?        S      0:00 [fsnotify_mark]
  27 ?        S      0:00 [ecryptfs-kthrea]
  28 ?        S<     0:00 [crypto]
  36 ?        S<     0:00 [kthrotld]
  63 ?        S<     0:00 [devfreq_wq]
 137 ?        S      0:00 [scsi_eh_0]
 142 ?        S      0:00 [scsi_eh_1]
 207 ?        S      0:00 [scsi_eh_2]
 208 ?        S      0:00 [scsi_eh_3]
 209 ?        S      0:00 [kworker/u:3]
 223 ?        S      0:04 [kworker/0:2]
 236 ?        S      0:00 [md1_raid1]
 243 ?        S      0:08 [md2_raid1]
 250 ?        S      0:00 [md0_raid1]
 314 ?        S      0:01 [jbd2/md2-8]
 315 ?        S<     0:00 [ext4-dio-unwrit]
 377 ?        S      0:00 upstart-udev-bridge --daemon
 385 ?        Ss     0:00 /sbin/udevd --daemon
 485 ?        S      0:00 /sbin/udevd --daemon
 489 ?        S      0:00 /sbin/udevd --daemon
 551 ?        S<     0:00 [edac-poller]
 554 ?        S      0:04 [kworker/0:3]
 587 ?        S      0:00 [kjournald]
 638 ?        Sl     0:03 rsyslogd -c5
 673 ?        S      0:00 upstart-socket-bridge --daemon
 693 ?        Ss     0:00 dbus-daemon --system --fork --activation=upstart
 715 ?        Ss     0:00 /usr/sbin/sshd -D
 805 ?        Ss     0:01 /usr/sbin/munin-node
 836 tty4     Ss+    0:00 /sbin/getty -8 38400 tty4
 847 tty5     Ss+    0:00 /sbin/getty -8 38400 tty5
 864 tty2     Ss+    0:00 /sbin/getty -8 38400 tty2
 865 tty3     Ss+    0:00 /sbin/getty -8 38400 tty3
 868 tty6     Ss+    0:00 /sbin/getty -8 38400 tty6
 870 ?        Ss     0:00 acpid -c /etc/acpi/events -s /var/run/acpid.socket
 878 ?        Ss     0:00 cron
 879 ?        Ss     0:00 atd
 958 ?        S      0:01 [flush-9:2]
1350 ?        Ss     0:02 amavisd (master)
1392 ?        Ss     0:00 policyd-weight (master)
1393 ?        Ss     0:00 policyd-weight (cache)
1402 ?        Ss     0:00 /usr/sbin/postgrey --pidfile=/var/run/postgrey.pid --daemonize --inet=10023
1427 ?        S      0:00 /usr/sbin/courierlogger -pid=/var/run/courier/authdaemon/pid -start /usr/lib/courier/courier-authlib/authdaemond
1428 ?        S      0:00 /usr/lib/courier/courier-authlib/authdaemond
1451 ?        S      0:00 /usr/sbin/courierlogger -pid=/var/run/courier/imapd.pid -start -name=imapd /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=
1452 ?        S      0:00 /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 143 /usr/lib/courier/courier/imaplogin /usr/
1462 ?        S      0:00 /usr/lib/courier/courier-authlib/authdaemond
1463 ?        S      0:00 /usr/lib/courier/courier-authlib/authdaemond
1464 ?        S      0:00 /usr/lib/courier/courier-authlib/authdaemond
1476 ?        S      0:00 /usr/sbin/courierlogger -pid=/var/run/courier/pop3d.pid -start -name=pop3d /usr/sbin/couriertcpd -maxprocs=40 -maxperip=4 -nodnsloo
1477 ?        S      0:00 /usr/sbin/couriertcpd -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup -address=0 110 /usr/lib/courier/courier/courierpop3login
1649 ?        Ss     0:00 /usr/lib/postfix/master
1669 ?        S      0:00 qmgr -l -t fifo -u
2165 ?        S      0:07 amavisd (ch5-avail)
2170 ?        S      0:08 amavisd (ch5-avail)
2173 ?        S      0:01 amavisd (ch4-avail)
2294 ?        Ss     0:01 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 104:110
2330 ?        Ss     0:00 /sbin/mdadm --monitor --pid-file /var/run/mdadm/monitor.pid --daemonise --scan --syslog
2354 ?        Ss     0:00 proftpd: (accepting connections)
2477 ?        S      0:00 /var/www/ispcp/daemon/ispcp_daemon -p /var/run/ispcp_daemon.pid
2570 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
4781 ?        Ss     0:04 /usr/sbin/apache2 -k start
4785 ?        S      1:01 /usr/bin/perl /var/www/ispcp/engine/ispcp-apache-logger -t error
4786 ?        S      0:23 /usr/bin/perl /var/www/ispcp/engine/ispcp-apache-logger
4821 ?        Ssl    2:56 /usr/sbin/mysqld
5674 ?        S      0:29 /usr/bin/php -f /var/yacrp/yac.php
10494 ?        S      0:00 policyd-weight (child)
22572 ?        S      0:00 /usr/lib/gamin/gam_server
23944 ?        S      0:01 /usr/sbin/apache2 -k start
24025 ?        S      0:01 /usr/sbin/apache2 -k start
24571 ?        S      0:01 /usr/sbin/apache2 -k start
24572 ?        S      0:01 /usr/sbin/apache2 -k start
25166 ?        S      0:00 /usr/sbin/apache2 -k start
25167 ?        S      0:00 /usr/sbin/apache2 -k start
25174 ?        S      0:00 pickup -l -t fifo -u -c
25192 ?        S      0:01 /usr/sbin/apache2 -k start
25194 ?        S      0:01 /usr/sbin/apache2 -k start
25207 ?        S      0:00 /usr/sbin/apache2 -k start
25743 ?        S      0:00 /usr/sbin/apache2 -k start
25744 ?        Ss     0:00 sshd: root@pts/1
25760 pts/1    Ss     0:00 -bash
25816 ?        S      0:00 /usr/sbin/apache2 -k start
25817 ?        S      0:00 /usr/sbin/apache2 -k start
25819 ?        S      0:00 /usr/sbin/apache2 -k start
25821 ?        S      0:00 /usr/sbin/apache2 -k start
25827 ?        S      0:00 /usr/sbin/apache2 -k start
25829 ?        S      0:00 /usr/sbin/apache2 -k start
26483 pts/1    R+     0:00 ps ax

虛擬機統計:

root@server ~ # vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
1  1    172 119388 129544 1142364    0    0    51    78   77  304  7  1 89  2

iotop:

root@server ~ # iotop -b -n1
Total DISK READ:       0.00 B/s | Total DISK WRITE:       0.00 B/s
 TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
   1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
   2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
   3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
   5 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u:0]
   6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
   7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
   8 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cpuset]
   9 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
  10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
  11 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
  12 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [sync_supers]
  13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bdi-default]
  14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd]
  15 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kblockd]
  16 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ata_sff]
  17 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khubd]
  18 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [md]
27667 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
  22 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khungtaskd]
  23 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kswapd0]
  24 be/5 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksmd]
  25 be/7 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khugepaged]
  26 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [fsnotify_mark]
  27 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ecryptfs-kthrea]
  28 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [crypto]
  36 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthrotld]
 551 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [edac-poller]
 554 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:3]
22572 be/4 vmail       0.00 B/s    0.00 B/s  0.00 %  0.00 % gam_server
4786 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % perl /var/www/ispcp/engine/ispcp-apache-logger
27656 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
27706 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % -bash
2570 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty1
  63 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [devfreq_wq]
27659 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 587 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kjournald]
25166 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
25167 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
26552 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
27690 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % sshd: root@pts/1
25174 be/4 postfix     0.00 B/s    0.00 B/s  0.00 %  0.00 % pickup -l -t fifo -u -c
1649 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % master
2165 be/4 amavis      0.00 B/s    0.00 B/s  0.00 %  0.00 % amavisd (ch5-avail)
2170 be/4 amavis      0.00 B/s    0.00 B/s  0.00 %  0.00 % amavisd (ch5-avail)
2173 be/4 amavis      0.00 B/s    0.00 B/s  0.00 %  0.00 % amavisd (ch5-avail)
 638 be/4 syslog      0.00 B/s    0.00 B/s  0.00 %  0.00 % rsyslogd -c5
1669 be/4 postfix     0.00 B/s    0.00 B/s  0.00 %  0.00 % qmgr -l -t fifo -u
 137 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [scsi_eh_0]
27671 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 142 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [scsi_eh_1]
27658 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 673 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % upstart-socket-bridge --daemon
4781 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
4785 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % perl /var/www/ispcp/engine/ispcp-apache-logger -t error
 690 be/4 syslog      0.00 B/s    0.00 B/s  0.00 %  0.00 % rsyslogd -c5
 691 be/4 syslog      0.00 B/s    0.00 B/s  0.00 %  0.00 % rsyslogd -c5
 692 be/4 syslog      0.00 B/s    0.00 B/s  0.00 %  0.00 % rsyslogd -c5
 693 be/4 messageb    0.00 B/s    0.00 B/s  0.00 %  0.00 % dbus-daemon --system --fork --activation=upstart
 715 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % sshd -D
 207 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [scsi_eh_2]
 208 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [scsi_eh_3]
 209 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u:3]
4821 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
25816 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
27866 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
25819 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
25821 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 223 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:2]
4833 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4834 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4835 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4836 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4837 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4838 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4839 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4840 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4841 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4842 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
 236 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [md1_raid1]
4845 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4846 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
4847 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
 243 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [md2_raid1]
2294 be/4 ntp         0.00 B/s    0.00 B/s  0.00 %  0.00 % ntpd -p /var/run/ntpd.pid -g -u 104:110
4856 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
 250 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [md0_raid1]
5674 be/4 vu2004      0.00 B/s    0.00 B/s  0.00 %  0.00 % php -f /var/yacrp/yac.php
10494 be/4 polw        0.00 B/s    0.00 B/s  0.00 %  0.00 % policyd-weight (child)
29057 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
2330 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % mdadm --monitor --pid-file /var/run/mdadm/monitor.pid --daemonise --scan --syslog
 805 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % munin-node
2354 be/4 nobody      0.00 B/s    0.00 B/s  0.00 %  0.00 % proftpd: (accepting connections)
29065 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
28473 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
 314 be/3 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [jbd2/md2-8]
 315 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ext4-dio-unwrit]
 836 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty4
1350 be/4 amavis      0.00 B/s    0.00 B/s  0.00 %  0.00 % amavisd (master)
26539 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 847 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty5
28474 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
 864 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty2
 865 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty3
 868 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % getty -8 38400 tty6
 870 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % acpid -c /etc/acpi/events -s /var/run/acpid.socket
 878 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % cron
 879 be/4 daemon      0.00 B/s    0.00 B/s  0.00 %  0.00 % atd
1392 be/4 polw        0.00 B/s    0.00 B/s  0.00 %  0.00 % policyd-weight (master)
1393 be/4 polw        0.00 B/s    0.00 B/s  0.00 %  0.00 % policyd-weight (cache)
 377 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % upstart-udev-bridge --daemon
1402 be/4 postgrey    0.00 B/s    0.00 B/s  0.00 %  0.00 % postgrey.pid --daemonize --inet=10023
29053 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
29054 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
 385 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % udevd --daemon
29058 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
29059 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
29060 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
29061 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
4844 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
29066 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
1427 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % courierlogger -pid=/var/run/courier/authdaemon/pid -start /usr/lib/courier/courier-authlib/authdaemond
1428 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % authdaemond
27650 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
26538 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
1451 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % courierlogger -pid=/var/run/courier/imapd.pid -start -name=imapd /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 143 /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
1452 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 143 /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
2477 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % ispcp_daemon -p /var/run/ispcp_daemon.pid
5552 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
18866 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld
1462 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % authdaemond
1463 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % authdaemond
1464 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % authdaemond
 958 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [flush-9:2]
1476 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % courierlogger -pid=/var/run/courier/pop3d.pid -start -name=pop3d /usr/sbin/couriertcpd -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup -address=0 110 /usr/lib/courier/courier/courierpop3login /usr/lib/courier/courier/courierpop3d Maildir
1477 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % couriertcpd -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup -address=0 110 /usr/lib/courier/courier/courierpop3login /usr/lib/courier/courier/courierpop3d Maildir
29140 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % python /usr/sbin/iotop -b -n1
 485 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % udevd --daemon
 489 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % udevd --daemon
24571 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start

所以雖然我從來沒有處理過性能問題,我可能只是看不到它……我認為所有這些看起來都還不錯。我將永遠感激任何我可以嘗試的輸入或指出我可能忽略的東西。

提前致謝。

我建議檢查相關係統的外部連接,尤其是 DNS。眾所周知,無法解釋的延遲通常是由遲到或不響應的名稱伺服器引起的。帶有 dns 查詢過濾器的 tcpdump 以及檢查 /etc/hosts 和 /etc/resolv.conf 文件可能會有所幫助。

由於負載數字相對較低,我懷疑 I/O 等待或鎖定問題是罪魁禍首。

一種明確的分析方法是使用 -ttt 標誌跟踪所有 Apache/PHP 程序:

strace -f -o /tmp/strace.log -Tttt -p <PID_of_main_Apache_process>

這樣,您將擁有每個系統呼叫的時間戳。但是,這可能會生成大量數據,尤其是在問題只是隨機出現的情況下。

一個可能的捷徑是檢查你的 mysql 伺服器的慢查詢日誌來尋找麻煩製造者。如果您發現查詢緩慢,請使用“解釋”功能查看是否缺少索引。如果這沒有產生任何結果,請將計時測量添加到您的 PHP 程式碼並將它們記錄到單獨的文件中。

引用自:https://serverfault.com/questions/408772