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

分享

超實(shí)用分享|AIX性能問(wèn)題診斷及調(diào)優(yōu)秘籍

 allenhwl 2016-02-18

在AIX日常運(yùn)維中,性能問(wèn)題一直是一個(gè)很重要的問(wèn)題,,為了讓操作系統(tǒng)能正常平穩(wěn)高效的運(yùn)行,,便需要一些武功秘籍來(lái)進(jìn)行快速定準(zhǔn)并解決問(wèn)題,本次我們便來(lái)討論一下我們可以用到的武功秘籍,。

所謂性能問(wèn)題,,主要幾種在CPU、內(nèi)存,、I/O三個(gè)大類(lèi)別,,因此我們分類(lèi)進(jìn)行討論。

類(lèi)別一: CPU


檢查系統(tǒng)的三把斧頭一招便是topas,,這個(gè)是最常用也是最有效的一招,,通過(guò)topas的輸出可以看到CPU的使用情況。


從topas的輸出我們主要關(guān)注如下4個(gè)指標(biāo):

User% :主要是應(yīng)用程序消耗CPU的百分比

Kern% :主要是操作系統(tǒng)本身消耗CPU的百分比

Wait% :主要是有I/O問(wèn)題時(shí),,CPU等待I/O的百分比

Idle% :那么這個(gè)一定是空閑的CPU

那么判定系統(tǒng)忙不忙的一個(gè)指標(biāo)為Idle%,,正常情況下,Idle%的值如果低于10%,,則這個(gè)系統(tǒng)的CPU就需要注意了,,此時(shí)關(guān)注一下是User%高還是Kern%高,如果是User%高,,則說(shuō)明是應(yīng)用程序占用CPU較多,,反之則說(shuō)明操作系統(tǒng)本身占用CPU較高。(但是請(qǐng)注意:并不是所有Kern%高都是操作系統(tǒng)本身導(dǎo)致的,,也有可能是應(yīng)用程序調(diào)用了系統(tǒng)本身的函數(shù),,這樣也會(huì)把這部分消耗算在Kern%頭上)

在拍完第一板斧后,我們繼續(xù)向下分析,,拍第二板斧trpof,,這個(gè)可以理解為精簡(jiǎn)版的trace,,一般情況下執(zhí)行這個(gè)命令對(duì)系統(tǒng)負(fù)載影響不太大,因此可以用這個(gè)工具先粗略看一下相關(guān)的進(jìn)程,。

tprof -skeuj -x sleep 10

通過(guò)tprof可以看出占用CPU排名靠前的進(jìn)程,。


如果root cause還沒(méi)有找到,那么便使出大招,,收trace數(shù)據(jù),。在收集trace數(shù)據(jù)前請(qǐng)先注意以下原則:

①收集trace數(shù)據(jù)會(huì)對(duì)當(dāng)前系統(tǒng)的負(fù)載有影響,在CPU已經(jīng)達(dá)到99%時(shí),,再收集trace有可能把操作系統(tǒng)搞夯,。

②一定要等到問(wèn)題重現(xiàn)時(shí)收集trace,由于trace產(chǎn)生的數(shù)據(jù)量巨大,,因此要收集有效時(shí)間段的trace,。如果不確定問(wèn)題什么時(shí)候重現(xiàn),可以寫(xiě)個(gè)判斷腳本,,收集循環(huán)trace,。

③用root用戶(hù)進(jìn)行trace收集

④需要預(yù)估trace數(shù)據(jù)的大小,然后根據(jù)預(yù)估的空間,,在操作系統(tǒng)上找一個(gè)空間較大的地方存放數(shù)據(jù),。trace數(shù)據(jù)的大小可以用下列公式算出:

預(yù)估數(shù)據(jù)大小=邏輯CPU的個(gè)數(shù) * 10MB

(其中邏輯CPU的個(gè)數(shù)可以用vmstat | grep -i lcpu命令查看)

在了解上述原則后,我們開(kāi)始收集trace數(shù)據(jù),。

trace -anl -C all -T 20M -L 40M -o /bigFS/trace.raw

sleep 10

trcstop

在執(zhí)行完上述收集命令后,,會(huì)生成trace的raw文件。


下面對(duì)trace數(shù)據(jù)進(jìn)行轉(zhuǎn)換:

trcrpt -r -C all trace.raw>trace.r

再用curt進(jìn)行數(shù)據(jù)處理:

curt -i trace.r -o curt.out -pest

此時(shí)產(chǎn)生一個(gè)curt.out文件,,可以直接進(jìn)行閱讀,。首先可以從“System Summary”字段看到各種類(lèi)型的進(jìn)程分別占用CPU的比例。


然后從“Application Summary”可以看到應(yīng)用占用CPU的排名,。

也可以從“System Calls Summary”可以看到系統(tǒng)函數(shù)調(diào)用排名情況,。


OK,到此我們便把這三把斧拍完了,,那么我們來(lái)討論一個(gè)真實(shí)的案例,,來(lái)從中看看這三把斧是怎么拍的。

故障描述:

生產(chǎn)環(huán)境CPU使用率高,,導(dǎo)致應(yīng)用程序運(yùn)行緩慢,,批量程序無(wú)法按時(shí)完成。

系統(tǒng)環(huán)境:

AIX 6100-07-05

處理過(guò)程:

Step1,,使用topas查看,,發(fā)現(xiàn)CPU使用率很高,其中大部分為Kern%占用

Step2,,收集tprof數(shù)據(jù),,tprof -skeuj -x sleep 10,找到占用CPU最高的兩個(gè)進(jìn)程,。

/cd41/cdunix4100/ndm/bin/ndmsmgr

/cd41/cdunix4100/ndm/bin/cdpmgr

Step3,,收集trace數(shù)據(jù),并進(jìn)行分析,,發(fā)現(xiàn)絕大多數(shù)是系統(tǒng)調(diào)用,。當(dāng)時(shí)以為是操作系統(tǒng)的BUG或者操作系統(tǒng)本身導(dǎo)致的,初步判斷和應(yīng)用程序沒(méi)有關(guān)系,,但后來(lái)證明當(dāng)時(shí)這個(gè)想法是錯(cuò)誤的,這也說(shuō)明并不是所有kernel高是由于系統(tǒng)本身造成的,,如果應(yīng)用程序調(diào)用系統(tǒng)本身函數(shù),,也算在kernel頭上。

Step4,,通過(guò)curt文件輸出,,看到占用kernel最高的是paged_ds_start函數(shù)。

Step5,,分析調(diào)用paged_ds_start函數(shù)的進(jìn)程為ndmsmgr,,這是一個(gè)應(yīng)用的進(jìn)程!

Step6,那么分析ndmsmgr為什么會(huì)調(diào)用較高的kernel運(yùn)算,。使用truss命令跟蹤這個(gè)進(jìn)程,。經(jīng)分析這個(gè)進(jìn)程在對(duì)文件進(jìn)行操作完成后對(duì)文件執(zhí)行close操作時(shí)有報(bào)錯(cuò),返回值為ERR#9 EBADF,,該報(bào)錯(cuò)表述有無(wú)效的文件描述符,,經(jīng)查發(fā)現(xiàn)這進(jìn)程會(huì)調(diào)用close函數(shù),把文件描述符從0到65533的文件全部關(guān)閉一遍,。也就是說(shuō)應(yīng)用進(jìn)程在調(diào)用大量的close()函數(shù)導(dǎo)致系統(tǒng)kernel使用率飆升!這也就把耗資源的賬偽造到了kernel頭上,。

最終升級(jí)應(yīng)用程序解決了該問(wèn)題。



類(lèi)別二:內(nèi)存


下面我們來(lái)討論內(nèi)存的使用情況,,首先也可以使用topas命令進(jìn)行內(nèi)存使用情況的查看,。

從topas的輸出中可以看到物理內(nèi)存共有64GB,paging space共有16個(gè)GB,。其中物理內(nèi)存部分:計(jì)算內(nèi)存使用了27%,,文件系統(tǒng)緩存使用了9%。那么問(wèn)題來(lái)了,,真正用于運(yùn)算的內(nèi)存是多少呢,?答案是物理內(nèi)存的27%。切記一定不要把文件系統(tǒng)緩存的使用當(dāng)成內(nèi)存的真實(shí)消耗。因此當(dāng)有新的內(nèi)存申請(qǐng)時(shí),,文件系統(tǒng)的緩存是可以被換出來(lái)的,。那么一般來(lái)看,當(dāng)計(jì)算內(nèi)存達(dá)到90%時(shí),,則系統(tǒng)就會(huì)有性能問(wèn)題,;當(dāng)達(dá)到95%以上,一般就會(huì)產(chǎn)生內(nèi)存換頁(yè),,這時(shí)就會(huì)把物理內(nèi)存中的數(shù)據(jù)換到了paging space中,,而如果短時(shí)間內(nèi)有大量的換頁(yè)產(chǎn)生,就很有可能引起操作系統(tǒng)夯,,而如果在有HACMP或者oracle RAC集群環(huán)境中,,就有可能導(dǎo)致集群強(qiáng)制把操作系統(tǒng)重啟。因此對(duì)計(jì)算內(nèi)存的監(jiān)控非常重要,。


說(shuō)到內(nèi)存,,不得不說(shuō)的是svmon這個(gè)命令,這個(gè)命令可以查看更細(xì)的內(nèi)存使用情況,,例如每個(gè)進(jìn)程占用多少內(nèi)存等等信息,。

可以用svmon -G命令查看內(nèi)存的整體使用情況。那么問(wèn)題又來(lái)了,,這個(gè)輸出應(yīng)該怎么看,?圖中virtual字段是真實(shí)消耗的計(jì)算內(nèi)存的業(yè)面數(shù),size是物理內(nèi)存的業(yè)面數(shù),,因此計(jì)算內(nèi)存的比值=4406839/16777216=27%,。

那么如何查看每個(gè)進(jìn)程所使用的內(nèi)存量呢?可以用svmon -P 來(lái)進(jìn)行查看,。在下圖中這個(gè)例子中可以看到計(jì)算內(nèi)存的使用量共有11804個(gè)4K頁(yè)面+185910個(gè)64KB頁(yè)面,。換算為4KB頁(yè)面共有2986364個(gè)。但注意:這些內(nèi)存有些是這個(gè)進(jìn)程獨(dú)享的,,有些是多個(gè)進(jìn)程共享的,,因此在進(jìn)行總和分析時(shí)不能簡(jiǎn)單的把所有內(nèi)存值相加。


下面我們來(lái)看看占有內(nèi)存的排名情況,,我們要按占用內(nèi)存的量由多到少進(jìn)行排列,,這個(gè)可以按如下方式進(jìn)行(注意:最后一列已經(jīng)換算成MB):


那么對(duì)于目前AIX 6.1和AIX 7.1版本,常見(jiàn)的幾個(gè)建議調(diào)優(yōu)的參數(shù)如下:

- minperm% = 3

- maxperm% = 90

- maxclient% = 90

- lru_file_repage=0

- default from AIX 6.1. lru_file_repage set to 0 makes repage rates to be ignored when

determining what kind of page to steal, means filecache will be steal when above minperm.

- strict_maxperm%=0

另外,,perfPMR也是收集性能數(shù)據(jù)常用的工具,,下載網(wǎng)址如下:

ftp://ftp.software.ibm.com/aix/tools/perftools/perfpmr

可以用perfPMR提供的腳本進(jìn)行memdetails.sh進(jìn)行更詳細(xì)的內(nèi)存數(shù)據(jù)收集。

也可以使用nmon對(duì)內(nèi)存進(jìn)行分析,,可以看到一天內(nèi)的內(nèi)存整體使用情況,。其中深紅色的為計(jì)算內(nèi)存,,淡藍(lán)色的為文件系統(tǒng)緩存,黃色的為文件系統(tǒng)緩存,。


也可以按進(jìn)程看到占用內(nèi)存的情況,。



類(lèi)別三: I/O


談起I/O不可避免的要首先了解LVM相關(guān)的一些技巧。

我們先談?wù)刲v的mapping關(guān)系,,這個(gè)東西說(shuō)起來(lái)很簡(jiǎn)單,,但實(shí)際上它和I/O的性能和LV誤刪后的恢復(fù)有密切的關(guān)系,因此了解清楚LV映射對(duì)于系統(tǒng)運(yùn)維有很大的幫助,。

可以通過(guò)lslv -m 看到lv的分布情況,。這個(gè)排序是按著LP的編號(hào)進(jìn)行的,這個(gè)順序很重要,,如果lv被誤刪后,,可以根據(jù)這個(gè)排序把lv重建回來(lái)。


通過(guò)fileplace命令也可以看到詳細(xì)的分布信息,。

通過(guò)readvgda可以通過(guò)磁盤(pán)讀取到VGDA的信息,,這里邊包含了所有LV的mapping信息。因此經(jīng)常備份vgda信息對(duì)于災(zāi)難恢復(fù)很有必要,。


  通過(guò)getlvcb命令可以得到LVCB的信息。

  在了解完了LV的分布后,,我們回到性能監(jiān)控上,,iostat是一個(gè)很好用的命令。

  通過(guò)這個(gè)命令可以看到每個(gè)磁盤(pán)的繁忙程度,、響應(yīng)時(shí)間,、是否有I/O排隊(duì)等信息。

topas -D也可以看到磁盤(pán)的相關(guān)信息,。但在topas輸出中一定注意CPU中的idle%是否較高,,由于idle%說(shuō)明CPU在等待I/O,因此如果有idle%數(shù)值時(shí),,一定檢查一下存儲(chǔ)盤(pán)是否有問(wèn)題,。

  如果要抓取I/O的詳細(xì)信息,可以用filemon命令進(jìn)行數(shù)據(jù)抓取,。

filemon -O all -o filemon.out;

sleep 30;

trcstop



結(jié)束語(yǔ)

本文從AIX CPU,、內(nèi)存、I/O三個(gè)方面探討了相關(guān)的問(wèn)題診斷及調(diào)整,,可以當(dāng)作拋磚引玉,,供大家進(jìn)行討論參考。


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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多