久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

AIX 5L 性能優(yōu)化,,第 2 部分: 監(jiān)視 CPU

 餑餑 2007-08-15

2007 年 4 月 24 日

確定哪些 AIX? 工具可用于監(jiān)視給定解決方案的中央處理器(Central Processing Unit,CPU),,并了解為何某些工具優(yōu)于其他工具,。本系列的第 1 部分討論了優(yōu)化方法和使用 CPU 性能優(yōu)化過程的重要性。另外還簡單介紹了一些在優(yōu)化存儲庫時可以使用的性能工具,,對 POWER CPU 進行了簡要介紹,,并討論了 POWER 芯片發(fā)展中的體系結(jié)構(gòu)提升如何為 System p? 產(chǎn)品系列的硬件提升做出貢獻。

關(guān)于本系列

本系列包含三個部分,,討論中央處理器 (CPU) 性能和監(jiān)視的各個方面,。本系列的第 1 部分簡單介紹了如何有效地監(jiān)視 CPU,討論了性能優(yōu)化的方法,,并給出了會對性能造成影響(正面影響或負面影響)的注意事項,。盡管本系列的第 1 部分已經(jīng)詳細說明了一些命令,但第 2 部分將更集中于實際 CPU 系統(tǒng)監(jiān)視的細節(jié),,以及趨勢分析和結(jié)果,。第 3 部分重點討論通過主動控制線程使用和其他方法來最大限度地優(yōu)化您的 CPU 性能。在整個系列文章中,我還將詳細說明 AIX? CPU 性能優(yōu)化和監(jiān)視方面的各種最佳實踐,。

引言

性能優(yōu)化顯然不只是運行一些命令然后觀察結(jié)果,。UNIX? 管理員需要知道將哪些工具用于何種目的,以及捕獲數(shù)據(jù)的最佳方法是什么,。有時候您可能沒有 30 天時間來通過系統(tǒng)地分析數(shù)據(jù)確定趨勢,,而有時候甚至都用不了 30 分鐘就能夠準確地判斷出您的瓶頸所在。不管怎么說,,這就是 CPU 監(jiān)視的主要目的——準確地確定瓶頸,。除非所搜集的數(shù)據(jù)清楚地表明 CPU 是瓶頸,否則并不希望進行 CPU 優(yōu)化,。事實上,,我們經(jīng)常會發(fā)現(xiàn)瓶頸與內(nèi)存或 I/O 相關(guān),而不是與 CPU 相關(guān)的問題,。

作為 AIX 管理員,,最重要的職責(zé)之一就是優(yōu)化您的系統(tǒng)。如果不首先監(jiān)視系統(tǒng)并分析結(jié)果,,就不能進行優(yōu)化。對于長期趨勢和短期(接下來數(shù)小時內(nèi)必須完成的工作)問題均是如此,。雖然可以使用特定工具僅對 CPU 進行分析,,但對于給定環(huán)境,可能要使用在系統(tǒng)上尋找所有可能瓶頸的工具,。正如您可能已經(jīng)知道的,,CPU 是系統(tǒng)中最快的組件。如果您的 CPU 是瓶頸,,將會對整個系統(tǒng)的性能造成影響,。在我介紹這些工具時,請您注意以下命令已在 AIX 5.3 中進行了增強,,允許工具使用 Advanced Power Virtualization 報告有關(guān)共享分區(qū)的準確統(tǒng)計數(shù)據(jù):mpstat,、sartopasvmstat,。此外,,還對以下基于跟蹤的工具進行了更新:Curt、filemon,、netpmon,、pprof 和 splat。

閑話少說,,接下來讓我們開始著手監(jiān)視系統(tǒng),。

UNIX 通用 CPU 監(jiān)視工具

接下來我們將討論在所有 UNIX 分發(fā)版本(Solaris 到 AIX)上可用的 UNIX 通用工具。雖然有些輸出內(nèi)容根據(jù)分發(fā)版本不同而有所變化,但大多數(shù)標志適用于所有 UNIX 系統(tǒng),。這些標志可幫助您動態(tài)地收集信息,,但我不會依賴其確定歷史趨勢和進行分析。

我們首先討論 vmstat,。vmstat 報告關(guān)于進程,、內(nèi)存、分頁,、被阻塞的 I/O 及總體 CPU 活動的信息,。雖然這個工具與虛擬內(nèi)存相關(guān)(vmstat 中的 vm),但我發(fā)現(xiàn)在主機上運行 vmstat 可以讓我快速而準確地確定 AIX 服務(wù)器上發(fā)生的情況,。

使用 vmstat

您剛剛聽到了我們非常不愿意聽到的抱怨“為什么系統(tǒng)這么慢,?”,需要快速進行分析,,以確定可能的瓶頸位置,。vmstat 是開始進行此工作的最好工具。有關(guān)運行 vmstat 的示例,,請參見清單 1,。


清單 1. 運行 vmstat
                        # vmstat 1
                        System configuration: lcpu=2 mem=3920MB
                        kthr    memory                page              faults          cpu
                        -----  -----------    ------------------------ ------------  -----------
                        r  b    avm   fre    re  pi  po  fr   sr  cy  in   sy  cs   us sy id wa
                        0  0  229367 332745   0   0   0   0    0   0   3  198  69    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   3   33  66    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   2   33  68    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0  80  306 100    0  1 97  1
                        0  0  229367 332745   0   0   0   0    0   0   1   20  68    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   2   36  64    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   2   33  66    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   2   21  66    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   1  237  64    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   2   19  66    0  0 99  0
                        0  0  229367 332745   0   0   0   0    0   0   6   37  76    0  0 99  0
                        

此處要注意的最重要字段有:

  • r——在所選擇的任意采樣間隔期間的平均可運行內(nèi)核線程數(shù)。
  • b——采樣期間在虛擬內(nèi)存中等待隊列的平均內(nèi)核線程數(shù),。r 應(yīng)該始終高于 b,;如果不是,通常意味著遇到了 CPU 瓶頸,。
  • fre——可用內(nèi)存列表的大小,。如果此數(shù)量并不小,不要太過擔心,。更為重要的是,,在此數(shù)量小的情況下確定是否進行了任何分頁操作。
  • pi—— 從頁面空間讀取的頁面,。
  • po——寫入頁面空間的頁面,。
  • CPU 部分:
    • us
    • sy
    • id
    • wa

 

讓我們看看最后一個部分(在大部分其他 CUP 監(jiān)視工具中也提供此信息,不過使用的標題不同):

  • us——用戶時間
  • sy——系統(tǒng)時間
  • id——空閑時間
  • wa——等待 I/O

顯然,,此系統(tǒng)沒有瓶頸,。如何確定的呢?讓我們看一看 vmstat 輸出中要分析的更為重要的字段,。盡管此系統(tǒng)運行的是 AIX 5.3,,將不會看到物理處理器的數(shù)量或使用的可用容量的百分比,因為它不在微分區(qū)環(huán)境中運行,。如果在微分區(qū)環(huán)境中運行,,將看到這些額外的字段,,因為對 vmstat 進行了增強,可以在虛擬環(huán)境和微分區(qū)環(huán)境工作,。

如果您的 ussys 條目都平均高于 80%,,很可能遇到了 CPU 瓶頸。如果上升到了 100%,,您的系統(tǒng)就真的太繁忙,。如果這些數(shù)字很小,但 wa(等待 I/O)很高(通常大于 30),,這意味著系統(tǒng)上存在 I/O 問題,,從而導(dǎo)致 CPU 不能到達其最佳工作狀態(tài)。如果 sy 時間us 時間 長,,這意味著您的系統(tǒng)處理數(shù)字的時間比實際處理內(nèi)核數(shù)據(jù)的時間短,。這也不好。

雖然 vmstat 命令更多地與內(nèi)存相關(guān),,但我發(fā)現(xiàn)可通過該命令最快而且最準確地確定瓶頸所在,。

那用戶為什么會對系統(tǒng)抱怨呢?因為系統(tǒng)真的讓用戶感覺到運行得很慢,。直到我確定了沒有系統(tǒng)問題,,而且相鄰的同事沒有出現(xiàn)問題,我才確定了問題的根源,。因此,,我讓他重新啟動 PC,從而獲得干凈的客戶機系統(tǒng),。顯然,某個正在運行的東西造成了 PC 客戶機故障,。

第二天我又接到另一個電話,,于是再次啟動 vmstat(請參見清單 2)。


清單 2. 再次運行 vmstat
                        # vmstat 1
                        System configuration: lcpu=2 mem=3920MB
                        kthr    memory              page              faults        cpu
                        ----- ----------- ------------------------ ------------  -----------
                        r  b   avm   fre   re  pi  po  fr   sr  cy  in  sy  cs   us sy id wa
                        9  0  4200  2746   0   0   0   0    0   0   3  198  69   70 30  0  0     0
                        4  7  4200  2746   0   0   0   0    0   0   3   33  66   67 31  2  0     0
                        2  6  4200  2746   0   0   0   0    0   0   2   33  68   65 34  1  0     0
                        3  9  4200  2746   0   0   0   0    0   0  80  306 100   80 20  0  1     0
                        2  7  4200  2746   0   0   0   0    0   0   1   20  68   80 20  0  0     0
                        

這又說明什么呢,?

顯然,,此系統(tǒng)處于 CPU Bound 狀態(tài)。沒有進行分頁,,也沒有任何 I/O 問題,。有大量可運行線程,但沒有足夠的 CPU 周期來處理需要完成的工作,。我得出這個結(jié)論花了多長時間,?僅僅五秒鐘。也可以嘗試使用其他實用工具來進行此工作,。

使用 sar

下一個命令 sar 是 UNIX System Activity Reporting 工具(屬于 bos.acct 文件集),。此命令似乎已經(jīng)成為了 UNIX 世界中永遠存在的一員,。此命令實際上就是將選擇作為其標志的積累活動的內(nèi)容寫入到標準輸出。例如,,以下命令使用 -u 標志報告 CPU 統(tǒng)計數(shù)據(jù),。對于 vmstat,如果在虛擬環(huán)境中使用共享分區(qū),,將會報告兩個其他信息列:physcentc,,這兩個列分別定義分區(qū)所使用的物理處理器的數(shù)量以及所使用的可用容量。

我在沒有用戶的情況下在系統(tǒng)上運行此命令(請參見清單 3),。除非有批處理作業(yè)在運行,,否則就不會看到大量的活動。


清單 3. 在沒有用戶的情況下運行 sar
                        # sar -u 1 5 (or sar 1 5)
                        AIX test01 3 5     03/18/07
                        System configuration: lcpu=2
                        17:36:53    %usr    %sys    %wio   %idle   physc
                        17:36:54       0       0       0     100    2.00
                        17:36:55       1       0       0     99     2.00
                        17:36:56       0       0       0     100    2.00
                        17:36:57       0       0       0     100    2.00
                        17:36:58       0       0       0     100    2.00
                        Average        0       0       0     100    2.00
                        

顯然,,此系統(tǒng)也沒有 CPU 瓶頸,。

上面所使用的列與 vmstat 條目輸出類似。下表將 sar 與 vmstat 描述內(nèi)容進行關(guān)聯(lián)(請參見表 1),。


表 1. sar 輸出字段和對應(yīng)的 vmstat 字段
sar vmstat
%usr us
%sys sy
%wio wa
%idle id

我更喜歡使用 vmstat 而不是 sar 的一個原因是,,它可提供 CPU 使用率信息,并能提供有關(guān)內(nèi)存和 I/O 的總體監(jiān)視信息,。對于 sar,,您需要運行獨立的命令才能提取信息。sar 的一個優(yōu)勢是,,它允許捕獲日常信息和運行關(guān)于此信息的報告(不用自己撰寫腳本來進行此工作),。它通過使用名為 System Activity Data Collector 的進程實現(xiàn)此工作,此進程實際是 sar 命令的一個后端進程,。在已啟用的情況下,,它通常通過 cron(在缺省 AIX 分區(qū)上,通常會發(fā)現(xiàn)將其注釋掉了)以二進制格式定期收集數(shù)據(jù),。

AIX 特定的 CPU 監(jiān)視工具

接下來我們討論特定于 AIX 的命令,。編寫這些命令的目的是為了讓管理員在分區(qū)環(huán)境中監(jiān)視系統(tǒng)。這些命令在使用 Advanced POWER Virtualization 功能(如共享處理器和微分區(qū))時尤為有用,。

使用 lparstat

當用戶首次報告系統(tǒng)運行緩慢時,,我決定啟動 lparstat。lparstat 命令用于報告邏輯分區(qū)(Logical Partition,,LPAR)信息和相關(guān)統(tǒng)計數(shù)據(jù),。在 AIX 5L V5.3 中,lparstat 命令將顯示關(guān)于很多 POWER Hypervisor 調(diào)用的 Hypervisor 統(tǒng)計數(shù)據(jù),。lparstat 命令是一個相對較新的命令,,通常用于在共享處理器分區(qū)環(huán)境中提供幫助。

因為我還希望看到 POWER Hypervisor 統(tǒng)計數(shù)據(jù),,因此使用了 -h 標志(如清單 4 中所示),。


清單 4. lparstat 命令的 -h 標志
                        # lparstat -h 1 5
                        System configuration: type=Dedicated mode=Capped smt=On lcpu=4 mem=3920
                        %user  %sys  %wait  %idle  %hypv hcalls
                        -----  ----  -----  -----  ----- ------
                        0.0   0.7    0.0   99.3   44.4 5933918
                        0.4   0.3    0.0   99.3   44.9 5898086
                        0.0   0.1    0.0   99.9   45.1 5930473
                        0.0   0.1    0.0   99.9   44.6 5931287
                        0.0   0.1    0.0   99.9   44.6 5931274
                        

正如您看到的,,從某種程度而言,上面所生成的輸出與 sar 命令相似,。請注意,,對于在專用環(huán)境或共享 Capped 環(huán)境中運行 AIX 5.2 或 AIX 5.3 的分區(qū),總體 CPU 使用率基于 user,、sys,、waitidle 值。在采用 Uncapped 模式運行的 AIX 5.3 分區(qū)中,,使用率應(yīng)該基于可用容量百分比,。

mpstat

我經(jīng)常使用的另一個命令是 mpstat 命令(請參見清單 5),該命令屬于 bos.acct 文件集,。這是專門為 AIX 5.3 創(chuàng)建的工具(與 lparstat 不同),,用于顯示分區(qū)系統(tǒng)上所有邏輯 CUP 的總體性能值。運行 mpstat 命令時,,將顯示兩個部分的統(tǒng)計數(shù)據(jù),。第一部分顯示系統(tǒng)配置,在該命令開始執(zhí)行以及對系統(tǒng)配置進行了修改時,,將顯示這部分信息,。第二部分顯示使用率統(tǒng)計數(shù)據(jù),此數(shù)據(jù)將以用戶指定的時間為間隔顯示,。


清單 5. 運行 mpstat
                        # mpstat 1 1
                        System configuration: lcpu=2 ent=2.0
                        cpu min maj mpc int cs ics rq mig lpa sysc           us sy wa id  pc  %ec   lcs
                        0    0   0   0  164 83 40   0 1   100  17             0  0 0 100 0.17 8.3   113
                        1    0   0   0  102  1  1   1 0   100 3830453 66 34   0  0 0 100  .83 41.6
                        

我喜歡使用 mpstat 命令,,因為它會采用非常清晰的格式報告所收集的分區(qū)上的每個邏輯 CPU 的信息。通過使用 -s 選項,,甚至還能夠看到同步多線程(Simultaneous MultiThreading,,SMT)線程使用率。lparstatmpstat 命令的缺點在于,,二者都需要編寫腳本和其他工具來處理數(shù)據(jù)格式和圖形輸出,。實際上,您需要編寫自己的 shell 腳本,。盡管大部分管理員喜歡使用腳本,但他們卻不愿意做重復(fù)工作,。如果已經(jīng)有了相應(yīng)的工具來幫助您分析歷史數(shù)據(jù),,編寫自己的實用工具就不太明智了。

GUI 工具

接下來我們將了解一些實用工具,,通過這些工具能以圖形查看分析,,還能對歷史數(shù)據(jù)進行分析。盡管完全了解這些工具需要一定的時間,,但這些工具比我們已經(jīng)了解的命令行工具要更為靈活,。

procmon

接下來我們討論 procmon(請參見圖 1),。此實用工具(在 AIX 5.3 中發(fā)布)不僅提供總體性能統(tǒng)計數(shù)據(jù),還允許對實際運行的處理器進行操作,。它允許管理員動態(tài)地結(jié)束進程或恢復(fù)進程,。還可以將 procmon 數(shù)據(jù)導(dǎo)出到文件中,這就使其成為了一個不錯的數(shù)據(jù)收集工具,。procmon 實際上作為性能 Workbench 的插件運行,,此 Workbench 可通過使用 perfwb(位于 /usr/bin 中)命令(屬于 bos.perf.gtools.perfwb 文件集)啟動。


圖 1. procmon 輸出
procmon 輸出

我之所以喜歡 procmon,,是因為它允許對進程進行操作,,而這可以提高系統(tǒng)的性能。雖然這個工具也有局限性,,但我強烈建議您下載并使用此工具(我發(fā)現(xiàn)大多數(shù)管理員都不習(xí)慣使用此工具),。

topas

應(yīng)該注意的另一個工具是 topas。老實說,,盡管在 AIX 5.3 中有了大幅度提升,,但我從來沒有遇到過太多的 topas(屬于 bos.perf.tools 文件集)迷。在進行這些更改前,,它并不能捕獲歷史數(shù)據(jù),,也未針對在共享分區(qū)環(huán)境中使用而進行增強。通過這些更改,,您可以從多個分區(qū)收集性能數(shù)據(jù),,切實地簡化了 topas 作為性能管理和容量規(guī)劃工具的功能。topas 的外觀(請參見圖 2)與 top 和 monitor(在其他 UNIX 變體中使用)非常相似,。topas 是在屏幕上以基于文本的 GUI 格式顯示所有信息的一款實用工具,。采用其缺省模式時,會顯示主機名,、刷新間隔和 CPU,、內(nèi)存及 I/O 信息的綜合情況。


圖 2. topas 顯示
topas 顯示

有些新功能還包括允許在虛擬 I/O 服務(wù)器(Virtual I/O Server,,VIO Server)上運行 topas,。為此,請使用以下命令:

# topas -cecdisp
                        

在 LPAR 上,,要運行:

topas -C
                        

考慮到在 5.3 TL 4 中引入了性能監(jiān)視功能,,topas 使用了從 inittab 自動啟動的守護進程 xmwlm。在 AIX 5.3 的 TL_5 中,,缺省會保留七天的數(shù)據(jù),,并會記錄幾乎所有的 topas 數(shù)據(jù),除進程和工作負載管理器(Workload Manager,,WLM)信息外,,其中的其他數(shù)據(jù)會以交互方式顯示,。它使用 topasout 命令來生成基于文本的報告。topas 在處理其不足方面進行了大量的工作,,但大多數(shù)管理員可能希望使用其他實用工具——如 nmon,。

nmon

所有性能工具中,我最喜歡 nmon(不是 IBM“正式”支持的工具),。從 nmon 收集的數(shù)據(jù)(請參見圖 3)可從屏幕查看,,也可以通過通常從 cron 運行的報告查看。按照其創(chuàng)建者 Nigel Griffiths 的說法,,“如果一個免費工具能夠提供所需要的所有東西,,為什么還要使用五個或六個工具?”


圖 3. nmon 示例輸出
nmon 示例輸出

務(wù)必注意,,與已經(jīng)討論的一些其他工具不同,,nmon 也可以在 Linux? 上使用,這可切實地幫助 Linux 贏得遇到性能問題的 POWER 用戶群,。nmon 最吸引管理員的是,,不僅擁有非常高效的前端監(jiān)視器(如圖 3 中所示,管理員可以動態(tài)調(diào)用),,而且提供了將數(shù)據(jù)捕獲到文本文件進行圖形報告的功能,,因為輸出是 .csv(電子表格)格式(請參見圖 4)。事實上,,運行 nmon 會話一段時間之后,,可以實際看到以 Excel 電子表格形式良好呈現(xiàn)的表格,可以將此表格提交給高層管理人員或其他技術(shù)團隊以進行分析,。而且,,與 topas 不同,我從來沒有看到與此實用工具關(guān)聯(lián)的任何性能類型開銷,。

接下來讓我們看一個簡單的任務(wù),。首先讓我們告知 nmon 創(chuàng)建文件,對運行進行命名,,并在 180 個時間間隔內(nèi)每 30 秒進行一次數(shù)據(jù)收集(共計 1.5 個小時):

# nmon -f -t -r test2 -s 30 -c 180
                        

完成此工作,,對文件進行排序,如清單 6 中所示,。


清單 6. 對文件進行排序
                        # sort -A testsystem_yymmd_hhmm.nmon > testsystem_yymmdd.hhmm.csv
                        

完成后,,將 .csv 文件通過 FTP 上傳到工作站,啟動 nmon 分析器電子表格(確保啟用了宏),,然后單擊 analyze nmon data(請參見圖 4)。


圖 4. nmon 分析器輸出
nmon 分析器輸出

nmon 分析器是一個非常不錯的工具,,是由 Stephen Atkins 編寫的,,能從 Excel 電子表格以圖形表示數(shù)據(jù)(CPU,、內(nèi)存、網(wǎng)絡(luò)或 I/O),?;蛟S使其不能成為企業(yè)類型的工具的唯一缺陷就是,它缺乏同時在大量 LPAR 上收集統(tǒng)計數(shù)據(jù)的能力,,因為它不是數(shù)據(jù)庫(其設(shè)計也沒有考慮成為數(shù)據(jù)庫),。而這正是 Ganglia(請參見參考資料中提供的鏈接)能提供幫助的地方,該工具的設(shè)計思想實際上得益于 Nigel Griffiths,,因為此工具能夠集成 nmon 分析,。

總結(jié)

本系列的第 2 部分對很多工具和實用程序進行了深入分析,可以將這些工具和實用程序用于捕獲和分析運行 AIX 的 System p 服務(wù)器的性能數(shù)據(jù),。其中一些命令從 UNIX 推出之時就有了,。其中很多命令用于 AIX,其他的則是不受支持的 IBM 實用工具,,但大多數(shù) AIX 管理員都在使用所有這些工具,。無論最喜歡哪個工具,都需要使用其中一個來即時查看性能活動,,而使用另一個工具來捕獲用于進行基于歷史的性能優(yōu)化和趨勢及容量規(guī)劃分析的數(shù)據(jù),。有些工具能夠同時進行這兩項工作(如 nmon),但大部分都更為適合進行其中某一項工作,。我建議您要對這些工具進行試驗,,不僅要找到最適合您的工具,還要找到能夠為其他人員(不是能夠理解無休止的 vmstat 顯示信息的系統(tǒng)管理員)提供有價值信息的工具,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多