Solaris-10

解釋 Solaris 10 上的平均負載

  • March 22, 2017

我了解 Linux 上的平均負載,但我對執行我的應用程序的舊 Solaris 10 機器上的平均負載感到有些困惑。平均負載似乎高得不可思議。這是輸出。

[netcool1 (root)/]$ uptime
11:49am  up 580 day(s), 10:51,  3 users,  load average: 35.50, 38.54, 39.03
[netcool1 (root)/]$ uname -a
SunOS netcool1 5.10 Generic_139555-08 sun4u sparc SUNW,Sun-Fire-V245
[netcool1 (root)/]$ psrinfo -v
Status of virtual processor 0 as of: 01/11/2012 11:52:52
 on-line since 06/10/2010 01:58:29.
 The sparcv9 processor operates at 1504 MHz,
       and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 01/11/2012 11:52:52
 on-line since 06/10/2010 01:58:27.
 The sparcv9 processor operates at 1504 MHz,
       and has a sparcv9 floating point processor.
[netcool1 (root)/]$ 

我不明白如何在雙處理器系統上獲得 35 的平均負載。這對我來說似乎非常高。當我用 top 查看程序時,系統大約有 60-70% 空閒。有人可以幫忙解釋一下嗎?

vmstat 10 6

kthr      memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr rm s0 s2 --   in   sy   cs us sy id
3 0 0 8747008 5562704 865 1866 188 63 63 0 0 -0 9 40 0 762 8588 1495 26  8 66
0 0 0 7715256 5068016 73 23 5 17 17  0  0  0 110 66 0 1135 3888 9855 59 12 30
0 0 0 7717936 5069128 0  5  0  6  6  0  0  0 100 4  0 1071 3273 4191 62  6 32
0 0 0 7717952 5027912 0 11649 0 5 5  0  0  0 115 21 0 1017 26370 3260 32 15 53
102 1 0 7717952 4979088 0 1 0  0  0  0  0  0 112 4  0  900 3464 7683 15  9 76
0 0 0 7717952 4978936 0  1  0  0  0  0  0  0 105 4  0  886 3379 8698 19  9 72

“負載”通常是vmstat(列r,執行隊列)第一列的平均值。第一次載入平均超過 1 分鐘,第二次超過 5 分鐘,最後一次超過 15 分鐘。如您所見,在您的系統中,vmstat 曾報告不少於 102 個執行緒被喚醒以使用處理器(可能是一些大規模多執行緒應用程序)。

但是不用擔心,因為肯定已經處理了這種突發的工作負載,並且執行隊列在下一次探測時回到零並繼續。V245有兩個處理器,每個都是單核和單執行緒,所以它可以同時執行兩個執行緒(即r=2表示不需要執行緒等待處理器時間)。

從統計上看,這可以轉化為平均 35,但正如您所看到的,這個值對實際系統使用情況幾乎沒有影響。格言說“謊言分為三種:謊言、該死的謊言和統計數字”,我認為這很適合作為結論。

引用自:https://serverfault.com/questions/348933