------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 907290
max total shared memory (kbytes) = 13115392
min seg size (bytes) = 1
如果您看到當(dāng)前值處于或接近限定值,則應(yīng)該考慮提高限定值。
可以使用 shmid 值獲取具體共享內(nèi)存段的詳細(xì)圖片。–i 選項(xiàng)可以完成該操作。下面是查看 shmid 3702792 詳細(xì)信息的方法:
# ipcs -m -i 3702792
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdaj 1.58 31.93 10.65 282355456 94172401
開始部分顯示的 CPU 指標(biāo)可能沒什么用處。要取消在輸出開始部分顯示的與 CPU 有關(guān)的統(tǒng)計(jì)信息,使用 -d 選項(xiàng)。
可以將可選參數(shù)放在結(jié)尾處,讓 iostat 以固定的時(shí)間間隔顯示設(shè)備統(tǒng)計(jì)信息。要每隔 5 秒獲取一次該設(shè)備的統(tǒng)計(jì)信息,共 10 次,執(zhí)行以下命令:
# iostat -d sdaj 5 10
You can display the stats in kilobytes instead of just bytes using the -k option:
# iostat -k -d sdaj
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
該信息可以幫助您查找“熱”磁盤,即進(jìn)行很多讀取或?qū)懭氲拇疟P。如果該磁盤的確“熱”,則應(yīng)確定“熱”的原因;可能是該磁盤上定義的某個(gè)文件系統(tǒng)正在進(jìn)行大量讀取操作。如果是這種情況,則應(yīng)考慮將該文件系統(tǒng)在多個(gè)磁盤之間進(jìn)行條帶化,以分發(fā)負(fù)載,從而最大程度地減小某個(gè)特定磁盤“熱”的可能性。
sar
通過前面的討論,我們發(fā)現(xiàn):獲取實(shí)時(shí)指標(biāo)并不是唯一重要的事情;歷史趨勢(shì)也同等重要。
此外,考慮這樣一種情況:有人多次報(bào)告某個(gè)性能問題,但當(dāng)您進(jìn)行調(diào)查時(shí)發(fā)現(xiàn)一切都回歸正常。如果沒有當(dāng)時(shí)的任何具體數(shù)據(jù),則很難診斷過去出現(xiàn)的性能問題。最后,您將希望檢查過去幾天的性能數(shù)據(jù),以決定某些設(shè)置或進(jìn)行調(diào)整。
sar 實(shí)用程序?qū)崿F(xiàn)了這個(gè)目標(biāo)。sar 代表 System Activity Recorder,它在一個(gè)特殊的位置(/var/log/sa 目錄)記錄 Linux 系統(tǒng)的主要組件(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)的指標(biāo)。每天的數(shù)據(jù)記錄在一個(gè)名為 sa 的文件中,其中 是每月中的第 nn 天(兩位數(shù)字)。例如,文件 sa27 包含該月第 27 日的數(shù)據(jù)。可以通過 sar 命令查詢?cè)摂?shù)據(jù)。
使用 sar 的最簡(jiǎn)單方法是不帶任何參數(shù)或選項(xiàng)。示例如下:
# sar
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
12:00:01 AM CPU %user %nice %system %iowait %idle
12:10:01 AM all 14.99 0.00 1.27 2.85 80.89
12:20:01 AM all 14.97 0.00 1.20 2.70 81.13
12:30:01 AM all 15.80 0.00 1.39 3.00 79.81
12:40:01 AM all 10.26 0.00 1.25 3.55 84.93
... and so on ...
輸出顯示在 10 分鐘的間隔內(nèi)收集的與 CPU 有關(guān)的指標(biāo)。這些列的含義如下:
CPU
CPU 標(biāo)識(shí)符;“all”表示所有 CPU
%user
用戶進(jìn)程使用的 CPU 百分比。Oracle 進(jìn)程屬于這一類。
%nice
在 nice 優(yōu)先級(jí)下執(zhí)行的 CPU 利用率百分比
%system
執(zhí)行系統(tǒng)進(jìn)程的 CPU 百分比
%iowait
等待進(jìn)行 I/O 操作的 CPU 百分比
%idle
等待工作的 CPU 空閑百分比
從以上輸出,您可能以為系統(tǒng)已經(jīng)得到了很好的平衡;但實(shí)際上是嚴(yán)重利用不足(從較高的空閑百分比可以看出)。進(jìn)一步查看輸出,我們看到以下內(nèi)容:
... continued from above ...
03:00:01 AM CPU %user %nice %system %iowait %idle
03:10:01 AM all 44.99 0.00 1.27 2.85 40.89
03:20:01 AM all 44.97 0.00 1.20 2.70 41.13
03:30:01 AM all 45.80 0.00 1.39 3.00 39.81
03:40:01 AM all 40.26 0.00 1.25 3.55 44.93
... and so on ...
這告訴我們另外一回事:在 3:00 和 3:40 之間某些用戶進(jìn)程加載了該系統(tǒng)?赡苁窃趫(zhí)行開銷比較大的查詢,也可能是正在運(yùn)行某個(gè) RMAN 作業(yè),從而消耗了這么多 CPU。這就是 sar 命令非常有用之處,該命令重放記錄的數(shù)據(jù),顯示從某個(gè)特定時(shí)間起而不是現(xiàn)在的數(shù)據(jù)。這樣您就完全實(shí)現(xiàn)了在該部分開頭所述的三個(gè)目標(biāo):獲取歷史數(shù)據(jù)、查找使用模式以及了解趨勢(shì)。
如果您想查看特定日期的 sar 數(shù)據(jù),只需使用下面所示的 -f 選項(xiàng)打開具有該文件名的 sar(打開第 26 日的數(shù)據(jù))
# sar -f /var/log/sa/sa26
與 vmstat 或 mpstat 一樣,該命令還可以顯示實(shí)時(shí)數(shù)據(jù)。要每隔 5 秒獲取一次數(shù)據(jù),共 10 次,請(qǐng)使用:
# sar 5 10
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
01:39:16 PM CPU %user %nice %system %iowait %idle
01:39:21 PM all 20.32 0.00 0.18 1.00 78.50
01:39:26 PM all 23.28 0.00 0.20 0.45 76.08
01:39:31 PM all 29.45 0.00 0.27 1.45 68.83
01:39:36 PM all 16.32 0.00 0.20 1.55 81.93
… and so on 10 times …
您注意到 CPU 下的“all”值了嗎?它意味著是所有 CPU 的總計(jì)統(tǒng)計(jì)信息。這比較適合單處理器系統(tǒng),但在多處理器系統(tǒng)中,您可能希望獲取各個(gè) CPU 的統(tǒng)計(jì)信息以及總計(jì)統(tǒng)計(jì)信息。-P ALL 選項(xiàng)可以實(shí)現(xiàn)該目標(biāo)。
#sar -P ALL 2 2
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s
12:10:01 AM 134.43 256.63 8716.33 0.00
12:20:01 AM 122.05 181.48 8652.17 0.00
12:30:01 AM 129.05 253.53 8347.93 0.00
... and so on ...
該列顯示當(dāng)時(shí) 而不是現(xiàn)在的指標(biāo)。
pgpgin/s
每秒從磁盤分到內(nèi)存中的頁面數(shù)
pgpgout/s
每秒從內(nèi)存分到磁盤的頁面數(shù)
fault/s
每秒的頁面故障數(shù)
majflt/s
每秒的主要頁面故障數(shù)
要獲得與交換有關(guān)活動(dòng)的類似輸出,可以使用 -W 選項(xiàng)。
# sar -W
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
12:00:01 AM pswpin/s pswpout/s
12:10:01 AM 0.00 0.00
12:20:01 AM 0.00 0.00
12:30:01 AM 0.00 0.00
12:40:01 AM 0.00 0.00
... and so on ...
盡管這些列可能無需加以說明,下面還是提供了每列的說明:
pswpin/s
每秒從磁盤交換回內(nèi)存的內(nèi)存頁數(shù)
pswpout/s
每秒從內(nèi)存交換到磁盤的內(nèi)存頁數(shù)
如果您看到交換很多,則表示可能有內(nèi)存不足問題。這不是定論,而是出現(xiàn)問題的可能性比較大。
要獲得磁盤設(shè)備的統(tǒng)計(jì),請(qǐng)使用 -d 選項(xiàng):
# sar -d
Linux 2.6.9-55.0.9.ELlargesmp (prolin3) 12/27/2008
12:00:01 AM DEV tps rd_sec/s wr_sec/s
12:10:01 AM dev1-0 0.00 0.00 0.00
12:10:01 AM dev1-1 5.12 0.00 219.61
12:10:01 AM dev1-2 3.04 42.47 22.20
12:10:01 AM dev1-3 0.18 1.68 1.41
12:10:01 AM dev1-4 1.67 18.94 15.19
... and so on ...
Average: dev8-48 4.48 100.64 22.15
Average: dev8-64 0.00 0.00 0.00
Average: dev8-80 2.00 47.82 5.37
Average: dev8-96 0.00 0.00 0.00
Average: dev8-112 2.22 49.22 12.08
下面是對(duì)各列的說明。同樣,它們也表示當(dāng)時(shí)的指標(biāo)。
tps
每秒進(jìn)行的傳輸數(shù)。傳輸數(shù)就是 I/O 操作數(shù)。注:這只是操作數(shù)量,每個(gè)操作可能很大,也可能很小。因此,單獨(dú)這個(gè)并不能說明全部問題。
rd_sec/s
每秒從磁盤讀取的扇區(qū)數(shù)
wr_sec/s
每秒寫入磁盤的扇區(qū)數(shù)
要獲得歷史網(wǎng)絡(luò)統(tǒng)計(jì)信息,使用 -n 選項(xiàng):
# sar -n DEV | more
Linux 2.6.9-42.0.3.ELlargesmp (prolin3) 12/27/2008
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
12:10:01 AM lo 4.54 4.54 782.08 782.08 0.00 0.00 0.00
12:10:01 AM eth0 2.70 0.00 243.24 0.00 0.00 0.00 0.99
12:10:01 AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM eth4 143.79 141.14 73032.72 38273.59 0.00 0.00 0.99
12:10:01 AM eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM eth6 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM eth7 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM bond0 146.49 141.14 73275.96 38273.59 0.00 0.00 1.98
… and so on …
Average: bond0 128.73 121.81 85529.98 27838.44 0.00 0.00 1.98
Average: eth8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth9 3.52 6.74 251.63 10179.83 0.00 0.00 0.00
Average: sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
總而言之,使用 sar 命令的這些選項(xiàng)可以獲得組件的指標(biāo): 使用該選項(xiàng) … … 獲得有關(guān)以下組件的統(tǒng)計(jì)信息:
-P
特定 CPU
-d
磁盤
-r
內(nèi)存
-B
分頁
-W
交換
-n
網(wǎng)絡(luò)
是否希望在一個(gè)輸出中獲得所有可用的統(tǒng)計(jì)信息?不必使用所有這些選項(xiàng)調(diào)用 sar,您可以改用 -A 選項(xiàng),該選項(xiàng)顯示存儲(chǔ)在 sar 文件中的所有統(tǒng)計(jì)信息。
結(jié)論
總之,使用這些有限的命令集,可以處理與 Linux 環(huán)境中的資源管理有關(guān)的大多數(shù)任務(wù)。建議在您的環(huán)境中練習(xí)這些方法,以使您自己熟悉這些命令以及此處所述的選項(xiàng)。
在接下來的部分中,您將了解如何監(jiān)視和管理網(wǎng)絡(luò)。還將了解幫助您管理 Linux 環(huán)境的各種命令:發(fā)現(xiàn)誰已經(jīng)登錄、設(shè)置 shell 配置文件、使用 cpio 和 tar 進(jìn)行備份等等。