尝试了解我的服务器的正确操作级别

尝试了解我的服务器的正确操作级别

我正在尝试确定我的专用服务器应在哪些阈值内运行。该服务器是 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 核心数,尽管还有许多更重要的参数。

相关内容