我们试图解释一些在自定义 Web 服务器上看起来不合时宜的虚拟内存编号的含义(Apache 使用经过修改的特定于任务的代码编译)。
服务器是双 6 核 Xeon,16GB RAM,运行 CentOS 6.3。交换空间为 7GB。
这是我们所看到的:
sar -B 报告大约 250,000 的高故障/秒和 450 的 pgpgout/s,但 pgpgin/s 仅为 0 到 1.7。pgfree/s 也很高——大约 85,000。
这是 sar 输出的几行:
01:25:01 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
01:25:31 PM 1.75 465.82 251459.20 0.03 79299.33 0.00 0.00 0.00 0.00
01:26:01 PM 0.00 459.65 253919.76 0.00 77851.65 0.00 0.00 0.00 0.00
01:26:31 PM 0.00 452.16 272236.57 0.00 82255.95 0.00 0.00 0.00 0.00
vmstat 报告没有换入或换出。使用的交换空间非常少(112k)和大量的可用 RAM:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 112 3960132 252488 9516780 0 0 9 66 8 4 16 7 77 0 0
3 0 112 3958768 252488 9517068 0 0 0 0 10951 19238 9 1 90 0 0
3 0 112 3957396 252496 9517336 0 0 0 68 10947 18291 8 1 90 0 0
2 0 112 3953720 252544 9517660 0 0 0 692 13714 20606 9 3 87 1 0
系统负载低(1 到 2),服务器似乎运行良好,但页面输出和页面错误的数量似乎令人担忧。有 Linux 虚拟内存专家吗?