这就是 whm apache status 所说的:
Current Time: Sunday, 23-Dec-2012 05:13:40 CST
Restart Time: Saturday, 22-Dec-2012 13:38:12 CST
Parent Server Generation: 9
Server uptime: 15 hours 35 minutes 28 seconds
Total accesses: 3444470 - Total Traffic: 2.1 GB
CPU Usage: u40.86 s113.4 cu748.01 cs0 - 1.61% CPU load
61.4 requests/sec - 38.9 kB/second - 649 B/request
110 requests currently being processed, 0 idle workers
我已将 whm 中的最大连接数和最大服务器数分别增加到 1500 和 3000。
服务器大量使用硬盘进行缓存。它只有 10 mbps 连接。但是,我懒得增加它,因为它只有 38.9 kB/秒。
如果瓶颈确实是 IO,我可以检查吗?
服务器还大量卷曲其他站点并缓存结果。
服务器响应速度很快,但有一点延迟。
IO 似乎是问题所在:iostat -xdk 1 20
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 1.81 413.86 8.63 201.33 190.15 2463.45 25.28 46.85 223.00 3.79 79.68
sdb 0.00 0.00 0.00 0.00 0.02 0.00 8.07 0.00 0.68 0.68 0.00
sdd 0.00 0.00 0.00 0.00 0.02 0.00 8.07 0.00 0.73 0.72 0.00
sdc 0.00 0.00 0.00 0.00 0.02 0.00 8.07 0.00 0.78 0.78 0.00
dm-0 0.00 0.00 1.94 140.75 49.18 562.97 8.58 23.97 168.00 3.88 55.35
dm-1 0.00 0.00 0.00 0.00 0.02 0.00 8.00 0.00 6.65 2.25 0.00
dm-2 0.00 0.00 8.52 475.11 140.85 1900.43 8.44 47.55 98.32 1.63 78.97
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 292.00 6.00 131.00 244.00 1668.00 27.91 5.14 6.53 2.24 30.70
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 165.00 0.00 660.00 8.00 5.14 3.37 0.21 3.40
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 5.00 394.00 236.00 1576.00 9.08 1.55 3.92 0.67 26.70
%util 通常会达到 100%。所以这似乎是瓶颈。
Vmstat 似乎不是问题所在:
root@host [/var/log]# vmstat 1 20
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
12 21 0 1148732 1160660 25192080 0 0 12 155 12 16 24 17 33 26 0
15 0 0 1281500 1160680 25193120 0 0 44 4568 15117 5501 31 19 24 27 0
12 3 0 1313904 1160684 25193728 0 0 104 1576 15960 5996 32 22 45 1 0
7 10 0 1322328 1160692 25194140 0 0 16 3024 14354 5274 28 19 20 33 0
6 12 0 1251420 1160704 25194848 0 0 96 452 13551 5208 24 19 32 26 0
20 0 0 1312052 1160708 25195592 0 0 76 4092 14885 5727 28 19 50 3 0
3 0 0 1341072 1160728 25196652 0 0 456 3888 13056 5113 24 15 57 4 0
6 1 0 1302052 1160728 25197448 0 0 188 936 11235 4372 20 15 66 0 0
11 9 0 1267768 1160744 25197872 0 0 16 2388 14423 5160 26 20 34 21 0
5 0 0 1355152 1160748 25198496 0 0 36 504 12269 5302 19 14 52 15 0
8 0 0 1323712 1160752 25199456 0 0 52 4032 12713 4779 22 16 61 0 0
7 0 0 1350484 1160760 25199872 0 0 72 2788 13692 5086 25 17 54 4 0
6 3 0 1334872 1160760 25200320 0 0 8 1088 12882 5193 23 17 60 0 0
6 10 0 1266724 1160772 25200724 0 0 24 1940 13067 4705 25 19 39 17 0
6 0 0 1315404 1160776 25201176 0 0 28 1428 11883 4914 19 14 46 21 0
11 0 0 1309244 1160784 25201724 0 0 0 2612 13001 4905 25 17 58 0 0
4 0 0 1349536 1160796 25202204 0 0 12 2240 13124 4900 24 17 58 2 0
12 1 0 1322520 1160800 25202964 0 0 464 1268 13991 5733 26 19 54 0 0
5 12 0 1301112 1160804 25203492 0 0 36 2172 13427 4956 25 17 38 20 0
3 1 0 1374288 1160808 25203780 0 0 96 772 13360 5692 24 16 35 25 0
mpstat 似乎没问题
root@host [/var/log]# mpstat -P ALL
Linux 2.6.32-279.19.1.el6.x86_64 (host.buildingsuperteams.com) 12/23/2012 _x86_64_ (16 CPU)
06:17:20 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
06:17:20 AM all 24.23 0.10 16.48 25.59 0.01 0.31 0.00 0.00 33.29
06:17:20 AM 0 24.18 0.09 17.00 34.98 0.00 0.16 0.00 0.00 23.59
06:17:20 AM 1 34.84 0.02 28.32 17.70 0.00 3.39 0.00 0.00 15.74
06:17:20 AM 2 26.35 0.04 20.08 26.29 0.00 0.01 0.00 0.00 27.22
06:17:20 AM 3 19.17 0.03 15.51 29.01 0.00 0.05 0.00 0.00 36.22
06:17:20 AM 4 17.64 0.28 9.33 35.08 0.00 0.26 0.00 0.00 37.42
06:17:20 AM 5 31.61 0.08 24.72 17.62 0.00 0.05 0.00 0.00 25.91
06:17:20 AM 6 24.38 0.07 19.06 20.42 0.00 0.03 0.00 0.00 36.04
06:17:20 AM 7 19.59 0.04 12.55 22.29 0.00 0.02 0.00 0.00 45.50
06:17:20 AM 8 14.21 0.12 8.60 38.27 0.00 0.44 0.00 0.00 38.36
06:17:20 AM 9 34.76 0.20 22.08 23.52 0.19 0.27 0.00 0.00 18.98
06:17:20 AM 10 26.13 0.06 16.03 22.77 0.00 0.01 0.00 0.00 35.00
06:17:20 AM 11 20.32 0.08 10.69 24.18 0.00 0.01 0.00 0.00 44.72
06:17:20 AM 12 16.99 0.21 8.50 35.72 0.00 0.17 0.00 0.00 38.40
06:17:20 AM 13 31.21 0.08 23.08 18.30 0.00 0.01 0.00 0.00 27.32
06:17:20 AM 14 25.72 0.06 16.95 21.02 0.00 0.01 0.00 0.00 36.25
06:17:20 AM 15 20.60 0.09 11.18 22.40 0.00 0.01 0.00 0.00 45.73
iotop
是一个很好的工具,可以了解您机器中的 IO 使用情况以及所有进程正在做什么。在 rhel/centos flavors 中安装
对于像 Ubuntu 这样的风格:
您永远不应该使用 apachectl 来衡量系统的性能。这是从 apache 的角度来看的,就操作系统的其余部分的执行方式而言,这可能是完全错误的。
iostat,sysstat 包的一部分,可以测量 io 性能。如果您想找出哪个特定进程占用了 io,您还可以使用 iotop(可通过 EPEL 存储库获得——不过,我猜它会说“apache”)。在 iostat 中,您希望尽可能低,
util%
这反过来会给您一个非常低的await
值。您的 mpstat 似乎没有问题。同样,您显示出高 IO 使用率 (
%iowait
)。对于一般的网站,您希望 iowaits 低于 1% 以便响应良好。对于典型的 apache 环境,您还使用了相当高的基于系统的使用率。但目前没有足够的数据来弄清楚原因。虽然不是所问内容的一部分,但您应该熟悉使用
top
作为系统最基本的诊断工具,因为它将全面了解系统的各个方面。top 输出中最重要的部分实际上位于输出的顶部(具有讽刺意味的是,您将其遗漏在了 pastebin 中)。最后,如果您通过 apache 的“最大服务器”设置来表示 maxclients。3000 对于世界上的任何系统来说都太高了。我认为即使是那些价值 50 万美元的系统也无法处理那么多的 apache 进程。如果 apach 出于任何原因决定增加服务器数量,您将陷入困境。然而,理想的数字只能通过在特定机器下测试特定应用程序来衡量。基本上,您的最大服务器 * 每个服务器使用的内存量应该等于您可用的总内存(不包括交换,因为您不想一直点击交换,也总计可用于 apache,即在操作系统之后,其他服务等)。
...
正如彼得所说,这里有相当多的 IO - 但我认为这不是唯一的问题。为什么您的服务器没有很多空闲工作人员?16 核?这是一个糟糕的设置。使用大铁进行网络服务是没有意义的。将 serverlimit 设置为远高于 maxclients 没有多大意义。看起来有些东西限制了 apache 线程的数量 - 我们需要从 httpd.conf 查看您的核心设置
我怀疑 irqbalancing 不是最优的。看起来应用程序工作负载分布均匀。
但是您没有提供任何负载指标。
正如彼得所说,您应该从顶部开始。
那么是由于远程访问造成的延迟吗?还有别的吗?
你是说这里有问题 - 但不知道你要解决的问题是什么,很难给出任何建议。当然,有很多写入正在进行,数据模式表明有很多非常小的数据块(同样,您的 HTTP 流量看起来很奇怪),但如果不了解更多关于这里发生的事情,就无法提供建议。
我在 cpanel 提交了一张票。
那里的主管告诉我问题是 kjournald 每次写入 5-10MB 文件。
我不太确定为什么要写这么多。
我搬到了 SSD,它有点管用。
基本上我需要运行
iostat -o -a
并查看 kjournald 是罪魁祸首。它导致如此多的 IO 写入,因此磁盘利用率始终为 100%。