
我正在嘗試確定我的專用伺服器應該在什麼閾值下運行。它有 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 核心數量以下。