我正在尝试确定我的专用服务器应在哪些阈值内运行。该服务器是 Intel(R) Xeon(R)CPU L5420 @ 2.50GHz,配有 16GB RAM,运行 RedHat 和 Apache 2 和 MySQL。它上面有 16 个域,其中几个域每天有 3000 多个独立访问者。如果我运行“top”命令,我会看到以下内容:
top - 10:18:10 up 428 days, 18:20, 1 user, load average: 1.71, 1.44, 1.49
Tasks: 211 total, 3 running, 206 sleeping, 0 stopped, 2 zombie
Cpu(s): 23.5%us, 3.8%sy, 0.0%ni, 72.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16431252k total, 16119648k used, 311604k free, 613340k buffers
Swap: 2096472k total, 108096k used, 1988376k free, 9511536k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7440 apache 16 0 434m 111m 7096 S 59.8 0.7 2:56.17 httpd
8856 apache 17 0 438m 115m 7084 S 54.5 0.7 2:07.94 httpd
10441 apache 17 0 432m 107m 5696 R 35.9 0.7 0:08.18 httpd
5035 apache 16 0 444m 118m 7708 S 14.0 0.7 5:24.62 httpd
26931 mysql 15 0 2900m 2.6g 5480 S 1.7 16.3 43:56.03 mysqld
10486 root 15 0 12864 1184 828 R 0.7 0.0 0:00.03 top
742 root 10 -5 0 0 0 S 0.3 0.0 205:45.65 kjournald
9141 root 15 0 203m 136m 4988 S 0.3 0.9 2:39.58 savscand
9150 root 15 0 193m 136m 4924 S 0.3 0.9 2:40.54 savscand
1 root 15 0 10372 556 524 S 0.0 0.0 0:15.75 init
2 root RT -5 0 0 0 S 0.0 0.0 0:02.52 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.33 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root RT -5 0 0 0 S 0.0 0.0 0:01.99 migration/1
6 root 34 19 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/1
7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
8 root RT -5 0 0 0 S 0.0 0.0 0:01.87 migration/2
9 root 34 19 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/2
10 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/2
11 root RT -5 0 0 0 S 0.0 0.0 0:01.91 migration/3
12 root 34 19 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/3
13 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/3
14 root RT -5 0 0 0 S 0.0 0.0 0:12.35 migration/4
15 root 34 19 0 0 0 S 0.0 0.0 0:00.49 ksoftirqd/4
16 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/4
17 root RT -5 0 0 0 S 0.0 0.0 0:14.29 migration/5
18 root 34 19 0 0 0 S 0.0 0.0 0:00.42 ksoftirqd/5
19 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/5
20 root RT -5 0 0 0 S 0.0 0.0 0:13.40 migration/6
我的问题是,这些数字看起来正常吗?它们太高了吗?太低了吗?为什么 CPU 使用率会超过 100%?
非常感谢。
答案1
我的问题是,这些数字看起来正常吗?它们太高了吗?太低了吗?
没有“正常”的情况。CPU、内存、负载和 io 统计数据可以很好地表明性能如何受限制但它们无法准确反映服务器的运行情况。如果您想知道事务的性能,则需要测量事务的速度。如果您没有反向代理,并且您正在通过互联网提供内容,那么处理每个请求所需的时间应该受网络时间影响。解决此问题的一种方法是测量到达请求的第一个字节所用的时间(但如果编码是分块的,这显然会产生误导)。另一种解决方案是使用 Yahoo Boomerang 之类的工具,它可以测量页面性能而不是请求性能(因此更符合用户体验),但也可以捕获网络吞吐量信息。
(但我同意 Andrei 的观点,将负载保持在 CPU 数量以下是一个好主意)
CPU 使用率怎么会超过 100%?
因为你有多个 CPU。
答案2
您错过了重要的 LA(平均负载)参数:(顶部第一行)。一般规则是 - 让 LA 数字低于 CPU 核心数,尽管还有许多更重要的参数。