亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 高級(jí) Linux 命令精通指南,第 3 部分:資源管理 [打印本頁]

作者: 日月如堯    時(shí)間: 2009-06-16 17:57
標(biāo)題: 高級(jí) Linux 命令精通指南,第 3 部分:資源管理

在此部分中,了解用于監(jiān)視物理組件的高級(jí) Linux 命令
Linux 系統(tǒng)由若干主要物理組件組成,如 CPU、內(nèi)存、網(wǎng)卡和存儲(chǔ)設(shè)備。要有效地管理 Linux 環(huán)境,您應(yīng)該能夠以合理的精度測(cè)量這些資源的各種指標(biāo) — 每個(gè)組件處理多少資源、是否存在瓶頸等。
在本系列的其他部分中,您已經(jīng)學(xué)習(xí)了處于宏級(jí)別的用于測(cè)量指標(biāo)的一些命令。但在此部分中,您將了解專門用于監(jiān)視物理組件的高級(jí) Linux 命令。具體而言,您將了解以下類別的命令:
組件
命令
內(nèi)存
free、vmstat、mpstat、iostat、sar
CPU
vmstat、mpstat、iostat、sar
I/O
vmstat、mpstat、iostat、sar
進(jìn)程
ipcs、ipcrm
正如您所見,某些命令出現(xiàn)在多個(gè)類別中。這是由于這些命令可以執(zhí)行很多任務(wù)。某些命令比較適合于某些組件,例如 iostat 適合 I/O,但是您應(yīng)該了解它們工作的差別并使用您更熟悉的命令。
在多數(shù)情況下,單個(gè)命令可能對(duì)于了解實(shí)際發(fā)生的情況沒什么用。要獲取所需的信息,您應(yīng)該了解多個(gè)命令。
free
一個(gè)常見的問題是“我的應(yīng)用程序和各種服務(wù)器、用戶和系統(tǒng)進(jìn)程正在使用多少內(nèi)存?”或者“現(xiàn)在有多少內(nèi)存可用?”如果正在運(yùn)行的進(jìn)程使用的內(nèi)存大于可用 RAM,則需要將這些進(jìn)程移到交換區(qū)。因此,一個(gè)補(bǔ)充問題是“正在使用多少交換區(qū)空間?”
free 命令將回答所有這些問題。而且,一個(gè)非常有用的選項(xiàng) –m 可以顯示可用內(nèi)存(以 MB 為單位):
# free -m
             total       used       free     shared    buffers     cached
Mem:          1772       1654        117          0         18        618
-/+ buffers/cache:       1017        754
Swap:         1983       1065        918
以上輸出顯示系統(tǒng)具有 1,772 MB 的 RAM,已使用 1,654 MB,還有 117 MB 內(nèi)存可用。第二行顯示在物理內(nèi)存中緩沖區(qū)和緩存大小的更改。第三行顯示交換區(qū)利用情況。
要以 KB 或 GB 為單位顯示以上內(nèi)容,請(qǐng)將 -m 選項(xiàng)分別替換為 -k 或 -g。使用 –b 選項(xiàng)將以字節(jié)為單位。
# free -b
             total       used       free     shared    buffers     cached
Mem:    1858129920 1724039168  134090752          0   18640896  643194880
-/+ buffers/cache: 1062203392  795926528
Swap:   2080366592 1116721152  963645440
–t 選項(xiàng)在輸出底部顯示總數(shù)(物理內(nèi)存和交換區(qū)的總和):
# free -m -t
             total       used       free     shared    buffers     cached
Mem:          1772       1644        127          0         16        613
-/+ buffers/cache:       1014        757
Swap:         1983       1065        918
Total:        3756       2709       1046
盡管 free 不顯示百分比,但是我們可以提取并格式化輸出的特定部分,將已使用的內(nèi)存僅顯示為總數(shù)的百分比:
# free -m | grep Mem | awk '{print ($3 / $2)*100}'
98.7077
這在具體數(shù)據(jù)非常重要的 shell 腳本中非常方便。例如,您可能希望在可用內(nèi)存的百分比低于特定閾值時(shí)觸發(fā)一個(gè)警報(bào)。
同樣,要發(fā)現(xiàn)已使用交換區(qū)空間的百分比,您可以發(fā)出:
free -m | grep -i Swap | awk '{print ($3 / $2)*100}'
可以使用 free 查看應(yīng)用程序施加的內(nèi)存負(fù)載。例如,啟動(dòng)備份應(yīng)用程序之前檢查可用內(nèi)存,啟動(dòng)之后立即檢查可用內(nèi)存。兩者之差就是備份應(yīng)用程序消耗的內(nèi)存。
針對(duì) Oracle 用戶的用法
那么,您如何使用該命令管理運(yùn)行 Oracle 環(huán)境的 Linux 服務(wù)器呢?性能問題的一個(gè)最常見原因是內(nèi)存不足,從而導(dǎo)致系統(tǒng)臨時(shí)將內(nèi)存區(qū)域“交換”到磁盤中。某種程度的交換可能是必然的,但是交換過多則表示可用內(nèi)存不足。
而現(xiàn)在,您可以使用 free 獲得可用內(nèi)存信息,緊接著使用 sar 命令(稍后介紹)檢查內(nèi)存和交換區(qū)消耗的歷史趨勢(shì)。如果交換區(qū)的使用是暫時(shí)的,則可能出現(xiàn)一次高峰,但是如果明確要經(jīng)過一段時(shí)間,則應(yīng)注意。持續(xù)的內(nèi)存過載可能有幾個(gè)明顯且可能的疑點(diǎn):
  • 較大的 SGA 高于可用內(nèi)存
  • 在 PGA 上分配了大量?jī)?nèi)存
  • 某些進(jìn)程出現(xiàn)泄露內(nèi)存的錯(cuò)誤
    對(duì)于第一種情況,應(yīng)確保 SGA 低于可用內(nèi)存。根據(jù)經(jīng)驗(yàn),對(duì) SGA 使用大約物理內(nèi)存的 40%,當(dāng)然,應(yīng)根據(jù)具體情況定義該參數(shù)。對(duì)于第二種情況,應(yīng)嘗試減少查詢中的大量緩沖區(qū)分配。對(duì)于第三種情況,應(yīng)使用 ps 命令(在本系列的之前部分中介紹過)確定可能泄露內(nèi)存的具體進(jìn)程。
    ipcs
    當(dāng)某個(gè)進(jìn)程運(yùn)行時(shí),它會(huì)奪取“共享內(nèi)存”。該進(jìn)程可能擁有一個(gè)或很多個(gè)共享內(nèi)存段。進(jìn)程之間彼此(“進(jìn)程間通信”或 IPC)發(fā)送消息并使用信號(hào)。要顯示有關(guān)共享內(nèi)存段、IPC 消息隊(duì)列以及信號(hào)的信息,可以使用一個(gè)命令:ipcs。
    –m 選項(xiàng)非常受歡迎;它顯示共享內(nèi)存段。
    # ipcs -m

    ------ Shared Memory Segments --------
    key        shmid      owner      perms      bytes      nattch     status      
    0xc4145514 2031618    oracle    660        4096       0                       
    0x00000000 3670019    oracle    660        8388608    108                     
    0x00000000 327684     oracle    600        196608     2          dest         
    0x00000000 360453     oracle    600        196608     2          dest         
    0x00000000 393222     oracle    600        196608     2          dest         
    0x00000000 425991     oracle    600        196608     2          dest         
    0x00000000 3702792    oracle    660        926941184  108                     
    0x00000000 491529     oracle    600        196608     2          dest         
    0x49d1a288 3735562    oracle    660        140509184  108                     
    0x00000000 557067     oracle    600        196608     2          dest         
    0x00000000 1081356    oracle    600        196608     2          dest         
    0x00000000 983053     oracle    600        196608     2          dest         
    0x00000000 1835023    oracle    600        196608     2          dest         
    該輸出表明服務(wù)器正在運(yùn)行 Oracle 軟件,顯示了各種共享內(nèi)存段。每個(gè)共享內(nèi)存段由顯示在“shmid”列下面的共享內(nèi)存 ID 唯一標(biāo)識(shí)。(稍后,您將看到如何使用該列值。)顯然,“owner”顯示內(nèi)存段的所有者,“perms”列顯示權(quán)限(與 unix 權(quán)限相同),“bytes”顯示字節(jié)大小。
    -u 選項(xiàng)顯示一個(gè)非?焖俚恼
    # ipcs -mu
    ------ Shared Memory Status --------
    segments allocated 25
    pages allocated 264305
    pages resident  101682
    pages swapped   100667
    Swap performance: 0 attempts     0 successes
    –l 選項(xiàng)顯示限定值(相對(duì)于當(dāng)前值):
    # ipcs -ml

    ------ 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

    Shared memory Segment shmid=3702792
    uid=500 gid=502 cuid=500        cgid=502
    mode=0660       access_perms=0660
    bytes=926941184 lpid=12225      cpid=27169      nattch=113
    att_time=Fri Dec 19 23:34:10 2008  
    det_time=Fri Dec 19 23:34:10 2008  
    change_time=Sun Dec  7 05:03:10 2008   
    稍后,本文將采用一個(gè)示例向您介紹如何解釋以上輸出。
    -s 顯示系統(tǒng)中的信號(hào):
    # ipcs -s

    ------ Semaphore Arrays --------
    key        semid      owner      perms      nsems     
    0x313f2eb8 1146880    oracle    660        104      
    0x0b776504 2326529    oracle    660        154     
    … and so on …  
    它顯示一些有價(jià)值的數(shù)據(jù)。它顯示 ID 為 1146880 的信號(hào)數(shù)組具有 104 個(gè)信號(hào),另一個(gè)數(shù)組具有 154 個(gè)信號(hào)。如果您增加信號(hào),則總值必須低于內(nèi)核參數(shù) (semmax) 定義的上限。安裝 Oracle 數(shù)據(jù)庫軟件時(shí),預(yù)安裝的檢查程序?qū)z查 semmax 的設(shè)置。之后,當(dāng)系統(tǒng)達(dá)到穩(wěn)定狀態(tài)時(shí),您可以檢查實(shí)際的利用情況,然后相應(yīng)地調(diào)整內(nèi)核值。
    針對(duì) Oracle 用戶的用法
    如何查看 Oracle 數(shù)據(jù)庫實(shí)例使用的共享內(nèi)存段?為此,請(qǐng)使用 oradebug 命令。首先以 sysdba 身份連接到數(shù)據(jù)庫:
    # sqlplus / as sysdba
    在 SQL 中,使用 oradebug 命令,如下所示:
    SQL> oradebug setmypid
    Statement processed.
    SQL> oradebug ipc
    Information written to trace file.
    要查找跟蹤文件的名稱,執(zhí)行以下命令:
    SQL> oradebug TRACEFILE_NAME
    /opt/oracle/diag/rdbms/odba112/ODBA112/trace/ODBA112_ora_22544.trc
    現(xiàn)在,如果打開該跟蹤文件,將會(huì)看到共享內(nèi)存 ID。下面是該文件的節(jié)選:
    Area #0 `Fixed Size' containing Subareas 0-0
      Total size 000000000014613c Minimum Subarea size 00000000
       Area  Subarea    Shmid      Stable Addr      Actual Addr
          0        0 17235970 0x00000020000000 0x00000020000000
                                  Subarea size     Segment size
                              0000000000147000 000000002c600000
    Area #1 `Variable Size' containing Subareas 4-4
      Total size 000000002bc00000 Minimum Subarea size 00400000
       Area  Subarea    Shmid      Stable Addr      Actual Addr
          1        4 17235970 0x00000020800000 0x00000020800000
                                  Subarea size     Segment size
                              000000002bc00000 000000002c600000
    Area #2 `Redo Buffers' containing Subareas 1-1
      Total size 0000000000522000 Minimum Subarea size 00000000
       Area  Subarea    Shmid      Stable Addr      Actual Addr
          2        1 17235970 0x00000020147000 0x00000020147000
                                  Subarea size     Segment size
                              0000000000522000 000000002c600000
    ... and so on ...
    共享內(nèi)存 id 以紅色粗體顯示?梢允褂迷摴蚕韮(nèi)存 ID 來獲取共享內(nèi)存的詳細(xì)信息:
    # ipcs -m -i 17235970
    另一個(gè)有用的觀察是 lpid 的值 — 最后一個(gè)接觸共享內(nèi)存段的進(jìn)程的進(jìn)程 ID。要展示該屬性的值,使用 SQL*Plus 從另一個(gè)會(huì)話連接到該實(shí)例。
    # sqlplus / as sysdba
    在該會(huì)話中,查找服務(wù)器進(jìn)程的 PID:
    SQL> select spid from v$process
      2  where addr = (select paddr from v$session
      3     where sid =
      4        (select sid from v$mystat where rownum
    現(xiàn)在,針對(duì)同一共享內(nèi)存段再次執(zhí)行 ipcs 命令:
    # ipcs -m -i 17235970

    Shared memory Segment shmid=17235970
    uid=500 gid=502 cuid=500        cgid=502
    mode=0660       access_perms=0660
    bytes=140509184 lpid=13224      cpid=27169      nattch=113
    att_time=Fri Dec 19 23:38:09 2008  
    det_time=Fri Dec 19 23:38:09 2008  
    change_time=Sun Dec  7 05:03:10 2008
    注意,lpid 的值已經(jīng)從原來的值 12225 更改為 13224。lpid 顯示最后一個(gè)接觸共享內(nèi)存段的進(jìn)程的 PID。
    該命令自身的價(jià)值不大。下一個(gè)命令 ipcrm 允許您基于輸出采取操作,正如您將在下一部分所見。
    ipcrm
    既然您已經(jīng)標(biāo)識(shí)了共享內(nèi)存和其他 IPC 指標(biāo),那么使用它們做什么呢?之前您看到過一些用法,如標(biāo)識(shí) Oracle 使用的共享內(nèi)存、確保為共享內(nèi)存設(shè)置了內(nèi)核參數(shù)等等。另一個(gè)常見的應(yīng)用是刪除共享內(nèi)存、IPC 消息隊(duì)列或信號(hào)數(shù)組。
    要?jiǎng)h除某個(gè)共享內(nèi)存段,注意 ipcs 命令輸出中它的 shmid。然后使用 –m 選項(xiàng)刪除該段。要?jiǎng)h除 ID 為 3735562 的段,使用:
    # ipcrm –m 3735562
    這將刪除該共享內(nèi)存。還可以使用該命令刪除信號(hào)和 IPC 消息隊(duì)列(使用 –s 和 –q 參數(shù))。
    針對(duì) Oracle 用戶的用法
    有時(shí)當(dāng)您關(guān)閉數(shù)據(jù)庫實(shí)例時(shí),Linux 內(nèi)核可能未完全清除共享內(nèi)存段。留下的共享內(nèi)存沒有什么用處,但它會(huì)占用系統(tǒng)資源,從而使可用于其他進(jìn)程的內(nèi)存更少。這種情況下,可以檢查“oracle”用戶所擁有的任何延遲共享內(nèi)存段,然后刪除它們,如果有這樣的段,使用 ipcrm 命令。
    vmstat
    vmstat 是最早用于顯示所有與內(nèi)存和進(jìn)程相關(guān)信息的命令,調(diào)用時(shí),該命令會(huì)持續(xù)運(yùn)行并發(fā)布其信息。它有兩個(gè)參數(shù):
    # vmstat  
    是兩次運(yùn)行之間的時(shí)間間隔,以秒為單位。 是 vmstat 重復(fù)的次數(shù)。下面是當(dāng)我們希望 vmstat 每隔 5 秒運(yùn)行一次并在第 10 次運(yùn)行后停止時(shí)的示例。每 5 秒之后都會(huì)輸出一行并顯示此時(shí)的統(tǒng)計(jì)信息。
    # vmstat 5 10
    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
    r  b    swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
    0  0 1087032 132500  15260 622488   89   19     9     3    0     0  4 10 82  5
    0  0 1087032 132500  15284 622464    0    0   230   151 1095   858  1  0 98  1
    0  0 1087032 132484  15300 622448    0    0   317    79 1088   905  1  0 98  0
    … shows up to 10 times.
    該輸出顯示有關(guān)系統(tǒng)資源的大量信息。我們來詳細(xì)介紹它們:
    procs
    顯示進(jìn)程數(shù)
    r
    等待運(yùn)行的進(jìn)程。系統(tǒng)上的負(fù)載越多,等待運(yùn)行 CPU 周期的進(jìn)程數(shù)量越多。
    b
    不可中斷睡眠的進(jìn)程,也稱為“被阻塞”的進(jìn)程。這些進(jìn)程最有可能等待 I/O,但也可能等待其他事情。
    有時(shí),還存在另外一列,該列位于標(biāo)題“w”下,顯示可以運(yùn)行但已經(jīng)交換到交換區(qū)域中的進(jìn)程數(shù)。
    “b”下的數(shù)值應(yīng)接近于 0。如果“w”下的數(shù)值很高,可能需要更多內(nèi)存。
    下表顯示了內(nèi)存指標(biāo):
    swpd
    虛擬內(nèi)存或交換內(nèi)存的數(shù)量(以 KB 為單位)
    free
    可用物理內(nèi)存的數(shù)量(以 KB 為單位)
    buff
    用作緩沖區(qū)的內(nèi)存數(shù)量(以 KB 為單位)
    cache
    用作緩存的物理內(nèi)存數(shù)量(以 KB 為單位)
    緩沖區(qū)內(nèi)存用來存儲(chǔ)文件元數(shù)據(jù)(如 i-nodes)以及原始?jí)K設(shè)備中的數(shù)據(jù)。緩存內(nèi)存用于文件數(shù)據(jù)本身。
    下表顯示了交換活動(dòng):
    si
    將內(nèi)存從磁盤交換回物理 RAM 的速率(以 KB/秒為單位)
    so
    將內(nèi)存從物理 RAM 交換到磁盤的速率(以 KB/秒為單位)
    下表顯示了 I/O 活動(dòng):
    bi
    系統(tǒng)向塊設(shè)備發(fā)送數(shù)據(jù)的速率(以塊/秒為單位)
    bo
    系統(tǒng)從塊設(shè)備中讀取數(shù)據(jù)的速率(以塊/秒為單位)
    下表顯示了系統(tǒng)相關(guān)活動(dòng):
    in
    系統(tǒng)每秒接收到的中斷數(shù)
    cs
    在進(jìn)程空間中切換上下文的速率(以數(shù)量/秒為單位)
    最后這張表可能用得最多 — 有關(guān) CPU 負(fù)載的信息:
    us
    顯示花費(fèi)在用戶進(jìn)程中的 CPU 百分比。Oracle 進(jìn)程屬于這一類。
    sy
    系統(tǒng)進(jìn)程(如所有根進(jìn)程)使用的 CPU 百分比
    id
    可用 CPU 百分比
    wa
    花費(fèi)在“等待 I/O”上的百分比
    讓我們看一看如何解釋這些值。輸出的第一行是自從系統(tǒng)重新啟動(dòng)以來所有指標(biāo)的平均值。因此,忽略該行,因?yàn)樗⒉伙@示當(dāng)前狀態(tài)。其他行顯示實(shí)時(shí)指標(biāo)。
    理想情況下,等待或阻塞的進(jìn)程數(shù)量(位于“procs”標(biāo)題下)應(yīng)該為 0 或接近于 0。如果數(shù)值較高,則表示系統(tǒng)沒有足夠的資源(如 CPU、內(nèi)存或 I/O)。診斷性能問題時(shí)該信息非常有用。
    “swap”下的數(shù)據(jù)表明交換是否過多。如果交換過多,則表明物理內(nèi)存可能不足。應(yīng)該減少內(nèi)存需求或增加物理 RAM。
    io”下的數(shù)據(jù)表示往返于磁盤的數(shù)據(jù)流。這表明正在進(jìn)行的磁盤活動(dòng)量,這并不一定表明存在問題。如果您看到“proc”和“b”列(正在阻塞的進(jìn)程)下有較大的數(shù)值和較高的 I/O,則可能出現(xiàn)了嚴(yán)重的 I/O 爭(zhēng)用問題。
    cpu”標(biāo)題下是最有用的信息。“id”列顯示空閑 CPU。如果用 100 減去該數(shù)值,則會(huì)得到繁忙 CPU 的百分比。還記得本系列的另一個(gè)部分中描述的 top 命令嗎?該命令還顯示 CPU 的空閑百分比數(shù)值。區(qū)別是:top 顯示每個(gè) CPU 的空閑百分比,而 vmstat 顯示所有 CPU 的空閑百分比。
    vmstat 命令還顯示 CPU 使用情況的劃分:Linux 系統(tǒng)使用多少、用戶進(jìn)程使用多少以及等待 I/O 使用多少。通過該劃分,您可以確定 CPU 消耗的組成。如果系統(tǒng) CPU 負(fù)載較高,能表明正在運(yùn)行某個(gè)根進(jìn)程(如備份)嗎?
    一段時(shí)間內(nèi)的系統(tǒng)負(fù)載應(yīng)該一致。如果系統(tǒng)顯示較高的數(shù)值,請(qǐng)使用 top 命令確定占有 CPU 的系統(tǒng)進(jìn)程。
    針對(duì) Oracle 用戶的用法
    Oracle 進(jìn)程(后臺(tái)進(jìn)程和服務(wù)器進(jìn)程)和用戶進(jìn)程(sqlplus、apache 等)位于“us”下。如果該數(shù)值較高,則使用 top 來確定進(jìn)程。如果“wa”列顯示較高的數(shù)值,則表明 I/O 系統(tǒng)無法跟上讀取或?qū)懭氲臄?shù)量。有時(shí)這可能是因?yàn)樵跀?shù)據(jù)庫中進(jìn)行大量更新,從而導(dǎo)致日志切換以及后續(xù)的大量存檔進(jìn)程。但是,如果它持續(xù)顯示一個(gè)較大的數(shù)值,則表明可能存在 I/O 瓶頸。
    Oracle 數(shù)據(jù)庫中的 I/O 瓶頸可能會(huì)造成嚴(yán)重的問題。與性能問題不同,慢速 I/O 可能導(dǎo)致控制文件寫入速度緩慢,這會(huì)導(dǎo)致等待獲取控制文件的進(jìn)程加入隊(duì)列。如果等待超過 900 秒且等待者是關(guān)鍵進(jìn)程(如 LGWR),則會(huì)關(guān)閉數(shù)據(jù)庫實(shí)例。
    如果您看到很多交換,可能是 SGA 的太大,以至于物理內(nèi)存容納不下。應(yīng)該減小 SGA 大小或增加物理內(nèi)存。
    mpstat
    另一個(gè)用于獲取 CPU 相關(guān)統(tǒng)計(jì)信息的有用的命令是 mpstat。下面是一個(gè)示例輸出:
    # mpstat -P ALL 5 2
    Linux 2.6.9-67.ELsmp (oraclerac1)       12/20/2008

    10:42:38 PM  CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
    10:42:43 PM  all    6.89    0.00   44.76    0.10    0.10    0.10   48.05   1121.60
    10:42:43 PM    0    9.20    0.00   49.00    0.00    0.00    0.20   41.60    413.00
    10:42:43 PM    1    4.60    0.00   40.60    0.00    0.20    0.20   54.60    708.40

    10:42:43 PM  CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
    10:42:48 PM  all    7.60    0.00   45.30    0.30    0.00    0.10   46.70   1195.01
    10:42:48 PM    0    4.19    0.00    2.20    0.40    0.00    0.00   93.21   1034.53
    10:42:48 PM    1   10.78    0.00   88.22    0.40    0.00    0.00    0.20    160.48

    Average:     CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
    Average:     all    7.25    0.00   45.03    0.20    0.05    0.10   47.38   1158.34
    Average:       0    6.69    0.00   25.57    0.20    0.00    0.10   67.43    724.08
    Average:       1    7.69    0.00   64.44    0.20    0.10    0.10   27.37    434.17
    它顯示了系統(tǒng)中 CPU 的各種統(tǒng)計(jì)信息。–P ALL 選項(xiàng)指示該命令顯示所有 CPU 的統(tǒng)計(jì)信息,而不只是特定 CPU 的統(tǒng)計(jì)信息。參數(shù) 5 2 指示該命令每隔 5 秒運(yùn)行一次,共運(yùn)行 2 次。以上輸出首先顯示了所有 CPU 的合計(jì)指標(biāo),然后顯示了每個(gè) CPU 各自的指標(biāo)。最后,在結(jié)尾處顯示所有 CPU 的平均值。
    讓我們看一看這些列值的含義:
    %user
    表示處理用戶進(jìn)程所使用 CPU 的百分比。用戶進(jìn)程是用于應(yīng)用程序(如 Oracle 數(shù)據(jù)庫)的非內(nèi)核進(jìn)程。在本示例輸出中,用戶 CPU 百分比非常低。


    %nice
    表示使用 nice 命令對(duì)進(jìn)程進(jìn)行降級(jí)時(shí) CPU 的百分比。在之前的部分中已經(jīng)對(duì) nice 命令進(jìn)行了介紹。簡(jiǎn)單來說,nice 命令更改進(jìn)程的優(yōu)先級(jí)。


    %system
    表示內(nèi)核進(jìn)程使用的 CPU 百分比


    %iowait
    表示等待進(jìn)行 I/O 所使用的 CPU 時(shí)間百分比


    %irq
    表示用于處理系統(tǒng)中斷的 CPU 百分比


    %soft
    表示用于軟件中斷的 CPU 百分比


    %idle
    顯示 CPU 的空閑時(shí)間


    %intr/s
    顯示每秒 CPU 接收的中斷總數(shù)
    當(dāng)您擁有前面所述的 vmstat 時(shí),您可能想知道 mpstat 命令的作用。差別很大:mpstat 可以顯示每個(gè)處理器的統(tǒng)計(jì),而 vmstat 顯示所有處理器的統(tǒng)計(jì)。因此,編寫糟糕的應(yīng)用程序(不使用多線程體系結(jié)構(gòu))可能會(huì)運(yùn)行在一個(gè)多處理器機(jī)器上,而不使用所有處理器。從而導(dǎo)致一個(gè) CPU 過載,而其他 CPU 卻很空閑。通過 mpstat 可以輕松診斷這些類型的問題。
    針對(duì) Oracle 用戶的用法
    與 vmstat 相似,mpstat 命令還產(chǎn)生與 CPU 有關(guān)的統(tǒng)計(jì)信息,因此所有與 CPU 問題有關(guān)的討論也都適用于 mpstat。當(dāng)您看到較低的 %idle 數(shù)字時(shí),您知道出現(xiàn)了 CPU 不足的問題。當(dāng)您看到較高的 %iowait 數(shù)字時(shí),您知道在當(dāng)前負(fù)載下 I/O 子系統(tǒng)出現(xiàn)了某些問題。該信息對(duì)于解決 Oracle 數(shù)據(jù)庫性能問題非常方便。
    iostat
    性能評(píng)估的一個(gè)主要部分就是磁盤性能。iostat 命令提供了存儲(chǔ)接口的性能指標(biāo)。
    # iostat
    Linux 2.6.9-55.0.9.ELlargesmp (prolin3)     12/27/2008

    avg-cpu:  %user   %nice    %sys %iowait   %idle
              15.71    0.00    1.07    3.30   79.91

    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    cciss/c0d0        4.85        34.82       130.69  307949274 1155708619
    cciss/c0d0p1      0.08         0.21         0.00    1897036       3659
    cciss/c0d0p2     18.11        34.61       130.69  306051650 1155700792
    cciss/c0d1        0.96        13.32        19.75  117780303  174676304
    cciss/c0d1p1      2.67        13.32        19.75  117780007  174676288
    sda               0.00         0.00         0.00        184          0
    sdb               1.03         5.94        18.84   52490104  166623534
    sdc               0.00         0.00         0.00        184          0
    sdd               1.74        38.19        11.49  337697496  101649200
    sde               0.00         0.00         0.00        184          0
    sdf               1.51        34.90         6.80  308638992   60159368
    sdg               0.00         0.00         0.00        184          0
    ... and so on ...
    輸出的開始部分顯示了可用 CPU 和 I/O 等待時(shí)間等指標(biāo),與您在 mpstat 命令中看到的相同。
    輸出的下一部分顯示對(duì)系統(tǒng)上每個(gè)磁盤設(shè)備非常重要的指標(biāo)。讓我們看一看這些列的含義:
    Device
    設(shè)備名稱
    tps   
    每秒的傳輸數(shù)量,例如,每秒的 I/O 操作數(shù)。注:這只是 I/O 操作的數(shù)量;每個(gè)操作可能非常大,也可能非常小。
    Blk_read/s   
    每秒從該設(shè)備讀取的塊數(shù)。通常,塊的大小為 512 字節(jié)。這是一個(gè)磁盤利用率較好的值。
    Blk_wrtn/s   
    每秒寫入該設(shè)備的塊數(shù)
    Blk_read   
    到目前為止從該設(shè)備讀取的塊數(shù)。注意,這并不是正在發(fā)生的情況。很多塊已經(jīng)從該設(shè)備讀取。可能現(xiàn)在什么也沒有讀取。觀察一段時(shí)間,看是否有變化。
    Blk_wrtn
    寫入該設(shè)備的塊數(shù)。
    在一個(gè)擁有很多設(shè)備的系統(tǒng)中,輸出可能需要通過屏幕多次滾動(dòng) — 這使得某些內(nèi)容較難檢查,尤其當(dāng)您查找特定設(shè)備時(shí)更是如此?梢酝ㄟ^將該設(shè)備作為參數(shù)傳遞只獲得特定設(shè)備的指標(biāo)。
    # iostat sdaj   
    Linux 2.6.9-55.0.9.ELlargesmp (prolin3)     12/27/2008

    avg-cpu:  %user   %nice    %sys %iowait   %idle
              15.71    0.00    1.07    3.30   79.91

    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

    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sdaj              1.58        15.96         5.32  141176880   47085232
    盡管以上輸出可能非常有幫助,但很多信息并不容易顯示。例如,磁盤問題的一個(gè)主要原因是磁盤服務(wù)時(shí)間,即,磁盤將數(shù)據(jù)送達(dá)請(qǐng)求該數(shù)據(jù)的進(jìn)程的時(shí)間。要獲得該級(jí)別的指標(biāo),我們需要使用 -x 選項(xiàng)獲得磁盤的“擴(kuò)展”統(tǒng)計(jì)信息。
    # iostat -x sdaj
    Linux 2.6.9-55.0.9.ELlargesmp (prolin3)     12/27/2008

    avg-cpu:  %user   %nice    %sys %iowait   %idle
              15.71    0.00    1.07    3.30   79.91

    Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sdaj         0.00   0.00  1.07  0.51   31.93   10.65    15.96     5.32    27.01     0.01    6.26   6.00   0.95
    讓我們看一看這些列的含義:
    Device
    設(shè)備名稱
    rrqm/s
    每秒合并的讀請(qǐng)求數(shù)。磁盤請(qǐng)求排成隊(duì)列。只要可能,內(nèi)核就會(huì)嘗試將多個(gè)請(qǐng)求合并成一個(gè)請(qǐng)求。該指標(biāo)測(cè)量讀取傳輸?shù)暮喜⒄?qǐng)求數(shù)。
    wrqm/s   
    與讀取類似,這是合并的寫請(qǐng)求數(shù)。
    r/s   
    每秒向該設(shè)備發(fā)出的讀請(qǐng)求數(shù)
    w/s  
    同樣,它是每秒向該設(shè)備發(fā)出的寫請(qǐng)求數(shù)
    rsec/s  
    每秒從該設(shè)備讀取的扇區(qū)數(shù)
    wsec/s   
    每秒寫入該設(shè)備的扇區(qū)數(shù)
    rkB/s   
    每秒從該設(shè)備讀取的數(shù)據(jù),以 KB/秒為單位
    wkB/s
    寫入該設(shè)備的數(shù)據(jù),以 kb/s 為單位
    avgrq-sz
    讀請(qǐng)求的平均大小(扇區(qū)數(shù))
    avgqu-sz   
    該設(shè)備的請(qǐng)求隊(duì)列的平均長度
    await  
    設(shè)備發(fā)出 I/O 請(qǐng)求經(jīng)過的平均時(shí)間,以毫秒為單位。這是服務(wù)時(shí)間與隊(duì)列中的等待時(shí)間的總和。
    svctm  
    設(shè)備的平均服務(wù)時(shí)間,以毫秒為單位
    %util
    設(shè)備的帶寬利用率。如果該值接近于 100%,則表明該設(shè)備已飽和。
    它包含大量信息,如何有效地使用這些信息是一個(gè)挑戰(zhàn)。下一部分介紹如何使用輸出。
    用法
    可以使用這些命令的組合從輸出中獲取一些有意義的信息。記住,在從進(jìn)程獲取請(qǐng)求時(shí)磁盤速度可能很慢。磁盤中的數(shù)據(jù)到達(dá)隊(duì)列所花費(fèi)的時(shí)間稱為服務(wù)時(shí)間。如果您想找出服務(wù)時(shí)間最長的磁盤,執(zhí)行以下命令:
    # iostat -x | sort -nrk13
    sdat         0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00    18.80     0.00   64.06  64.05   0.00
    sdv          0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00    17.16     0.00   18.03  17.64   0.00
    sdak         0.00   0.00  0.00  0.14    0.00    1.11     0.00     0.55     8.02     0.00   17.00  17.00   0.24
    sdm          0.00   0.00  0.00  0.19    0.01    1.52     0.01     0.76     8.06     0.00   16.78  16.78   0.32
    ... and so on ...
    這表明磁盤 sdat 的服務(wù)時(shí)間最長(64.05 毫秒)。為什么時(shí)間這么長呢?可能性很多,但最可能的原因有三個(gè):
  • 該磁盤獲取了大量請(qǐng)求,以至于平均服務(wù)時(shí)間長。
  • 該磁盤利用已移到可能的最大帶寬。
  • 該磁盤原本速度就很慢。
    查看輸出,我們看到讀取數(shù)/秒和寫入數(shù)/秒為 0.00(幾乎沒有發(fā)生任何事件),因此我們可以排除第一種可能性。利用率也為 0.00%(最后一列),因此我們可以排除第二種可能性。這就剩下了第三種可能性。但得出該磁盤原本速度慢的結(jié)論之前,我們需要更加仔細(xì)地觀察該磁盤。我們可以只檢查該磁盤,每隔 5 秒 檢查一次,共 10 次。
    # iostat -x sdat 5 10
    如果輸出顯示相同的平均服務(wù)時(shí)間、讀取速率和利用率,則可以斷定最有可能是第三種情況。如果這些數(shù)值發(fā)生了變化,我們可以獲取更詳細(xì)的線索來了解該設(shè)備服務(wù)時(shí)間較長的原因。
    同樣,可以對(duì)讀取速率列進(jìn)行排序,以顯示處于恒定讀取速率下的磁盤。
    # iostat -x | sort -nrk6
    sdj          0.00   0.00  1.86  0.61   56.78   12.80    28.39     6.40    28.22     0.03   10.69   9.99   2.46
    sdah         0.00   0.00  1.66  0.52   50.54   10.94    25.27     5.47    28.17     0.02   10.69  10.00   2.18
    sdd          0.00   0.00  1.26  0.48   38.18   11.49    19.09     5.75    28.48     0.01    3.57   3.52   0.61
    ... and so on ...
       
    該信息可以幫助您查找“熱”磁盤,即進(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

    01:45:12 PM       CPU     %user     %nice   %system   %iowait     %idle
    01:45:14 PM       all     22.31      0.00     10.19      0.69     66.81
    01:45:14 PM         0      8.00      0.00     24.00      0.00     68.00
    01:45:14 PM         1     99.00      0.00      1.00      0.00      0.00
    01:45:14 PM         2      6.03      0.00     18.59      0.50     74.87
    01:45:14 PM         3      3.50      0.00      8.50      0.00     88.00
    01:45:14 PM         4      4.50      0.00     14.00      0.00     81.50
    01:45:14 PM         5     54.50      0.00      6.00      0.00     39.50
    01:45:14 PM         6      2.96      0.00      7.39      2.96     86.70
    01:45:14 PM         7      0.50      0.00      2.00      2.00     95.50

    01:45:14 PM       CPU     %user     %nice   %system   %iowait     %idle
    01:45:16 PM       all     18.98      0.00      7.05      0.19     73.78
    01:45:16 PM         0      1.00      0.00     31.00      0.00     68.00
    01:45:16 PM         1     37.00      0.00      5.50      0.00     57.50
    01:45:16 PM         2     13.50      0.00     19.00      0.00     67.50
    01:45:16 PM         3      0.00      0.00      0.00      0.00    100.00
    01:45:16 PM         4      0.00      0.00      0.50      0.00     99.50
    01:45:16 PM         5     99.00      0.00      1.00      0.00      0.00
    01:45:16 PM         6      0.50      0.00      0.00      0.00     99.50
    01:45:16 PM         7      0.00      0.00      0.00      1.49     98.51

    Average:          CPU     %user     %nice   %system   %iowait     %idle
    Average:          all     20.64      0.00      8.62      0.44     70.30
    Average:            0      4.50      0.00     27.50      0.00     68.00
    Average:            1     68.00      0.00      3.25      0.00     28.75
    Average:            2      9.77      0.00     18.80      0.25     71.18
    Average:            3      1.75      0.00      4.25      0.00     94.00
    Average:            4      2.25      0.00      7.25      0.00     90.50
    Average:            5     76.81      0.00      3.49      0.00     19.70
    Average:            6      1.74      0.00      3.73      1.49     93.03
    Average:            7      0.25      0.00      1.00      1.75     97.01
    這表示 CPU 標(biāo)識(shí)符(以 0 開頭)以及每個(gè) CPU 的統(tǒng)計(jì)信息。在輸出的結(jié)尾處,您將看到每個(gè) CPU 的平均運(yùn)行情況。
    命令 sar 不僅用于獲取與 CPU 有關(guān)的統(tǒng)計(jì)信息。對(duì)于獲取與內(nèi)存有關(guān)的統(tǒng)計(jì)信息也非常有用。-r 選項(xiàng)顯示大量利用內(nèi)存的情況。
    # sar -r
    Linux 2.6.9-55.0.9.ELlargesmp (prolin3)     12/27/2008

    12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
    12:10:01 AM    712264  32178920     97.83   2923884  25430452  16681300     95908      0.57       380
    12:20:01 AM    659088  32232096     98.00   2923884  25430968  16681300     95908      0.57       380
    12:30:01 AM    651416  32239768     98.02   2923920  25431448  16681300     95908      0.57       380
    12:40:01 AM    651840  32239344     98.02   2923920  25430416  16681300     95908      0.57       380
    12:50:01 AM    700696  32190488     97.87   2923920  25430416  16681300     95908      0.57       380
    讓我們看一看每個(gè)列的含義:
    kbmemfree
    此時(shí)可用內(nèi)存的數(shù)量,以 KB 為單位
    kbmemused  
    此時(shí)已使用的內(nèi)存數(shù)量,以 KB 為單位
    %memused
    已使用內(nèi)存的百分比
    kbbuffers  
    用作緩沖區(qū)的內(nèi)存百分比
    kbcached
    用作緩存的內(nèi)存百分比
    kbswpfree
    此時(shí)可用交換區(qū)空間的大小,以 KB 為單位
    kbswpused  
    此時(shí)已使用的交換空間大小,以 KB 為單位
    %swpused  
    此時(shí)已使用交換區(qū)的百分比
    kbswpcad
    此時(shí)緩存的交換區(qū)大小,以 KB 為單位
    在輸出的結(jié)尾處,您將看到該時(shí)間段內(nèi)的平均數(shù)字。
    還可以獲取與特定內(nèi)存有關(guān)的統(tǒng)計(jì)信息。-B 選項(xiàng)顯示與分頁有關(guān)的活動(dòng)。
    # sar -B
    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)行備份等等。


    本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/26329/showart_1966291.html




    歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2