aix系統(tǒng)性能管理及oracle案例分析_第1頁
aix系統(tǒng)性能管理及oracle案例分析_第2頁
aix系統(tǒng)性能管理及oracle案例分析_第3頁
aix系統(tǒng)性能管理及oracle案例分析_第4頁
aix系統(tǒng)性能管理及oracle案例分析_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目錄AIX5.3主機(jī)性能評估 2一、CPU性能評估 21、vmstat 22、sar 33、iostat 54、tprof 65、ps 86、解決CPU占用的懲罰機(jī)制nice和renice 97、小結(jié) 10二、Memory性能評估 111、VMM的管理簡介 112、使用vmstat確定內(nèi)存的使用情況 143、svmon命令 144、內(nèi)存的調(diào)整 15三、磁盤的I/O性能評估 161、iostat查看 172、sar–d查看 203、使用lslv–llvname來評估邏輯卷的碎片情況 214、lslv–p評估物理布局 225、使用vmstat命令評估調(diào)頁空間的I/O 236、使用filemon命令監(jiān)控系統(tǒng)I/O 247、監(jiān)視磁盤I/O的小結(jié) 268、案例 269、RAID10和RAID5的比較 28四、NETWORK性能評估 311、ping命令查看網(wǎng)絡(luò)的連通性 312、netstat–i檢查網(wǎng)絡(luò)的接口 313、netstat–r檢查主機(jī)的路由情況 324、netpmon 345、其他一些常用的命令 36五、補(bǔ)充:關(guān)于topas的使用說明 36六、主機(jī)日常檢查腳本 39AIX5.3主機(jī)性能評估對于AIX主機(jī)的性能評估,我們從下面的4個方面來逐一介紹:CPU、MEMORY、I/O系統(tǒng)和網(wǎng)絡(luò)這4個方面來描述。一、CPU性能評估首先,我們還是先來看一下CPU的性能評估。下面先主要介紹幾個看CPU性能的命令。1、vmstat使用vmstat來進(jìn)行性能評估,該命令可獲得關(guān)于系統(tǒng)各種資源之間的相關(guān)性能的簡要信息。當(dāng)然我們也主要用它來看CPU的一個負(fù)載情況。下面是我們調(diào)用vmstat命令的一個輸出結(jié)果:$vmstat12Systemconfiguration:lcpu=16mem=23552MBkthrmemorypagefaultscpurbavmfre repipofrsrcyinsycs ussyidwa003091988274115200000018492612949078188300309198927411510000002527320136561152776對上面的命令解釋如下:Kthr段顯示內(nèi)容r列表示可運(yùn)行的內(nèi)核線程平均數(shù)目,包括正在運(yùn)行的線程和等待CPU的線程。如果這個數(shù)字大于CPU的數(shù)目,則表明有線程需要等待CPU。b列表示處在非中斷睡眠狀態(tài)的進(jìn)程數(shù)。包括正在等待文件系統(tǒng)I/O的線程,或由于內(nèi)存裝入控制而被掛起的線程。Memory段顯示內(nèi)容avm列表示活動虛擬內(nèi)存的頁面數(shù),每頁一般4KBfre空閑的頁面數(shù),每頁一般4KBPage段顯示內(nèi)容re–該列無效pi從磁盤交換到內(nèi)存的交換頁(調(diào)頁空間)數(shù)量,4KB/頁。調(diào)頁空間是駐留在硬盤上的虛擬內(nèi)存的一部分。當(dāng)內(nèi)存使用過量時,會將溢出的工作組頁面存儲到調(diào)頁空間中(竊取頁)。當(dāng)進(jìn)程訪問一個竊取頁時,就產(chǎn)生了一個缺頁故障,而這一頁頁必須從調(diào)頁空間中讀入到內(nèi)存中。po從內(nèi)存交換到磁盤的交換頁數(shù)量,4KB/頁。如果竊取的工作也在調(diào)頁空間中不存在或者已經(jīng)作了修改,則寫入調(diào)頁空間中。如果不被再次訪問,它會留在調(diào)度空間中直到進(jìn)程終止或者放棄空間。fr根據(jù)頁面替換算法每秒釋放的頁數(shù)。當(dāng)VMM頁面替換例程掃描頁面幀表(PageFrameTable,PFT)時,它會根據(jù)一些條件選取需要竊取的頁面以補(bǔ)充空閑列表。該條件中包含工作頁面和計(jì)算頁面,釋放的頁面中,計(jì)算頁面不產(chǎn)生I/O,工作頁面如果數(shù)據(jù)沒有發(fā)生修改,也不需要寫回磁盤,也不會產(chǎn)生I/O。sr根據(jù)頁面替換算法每秒所檢查的頁數(shù)。sr值比fr值高的越多,說明替換算法要查找可以替換的頁面就越困難。cy每秒頁面替換代碼掃描了PFT多少次。因?yàn)樵黾涌臻e列表達(dá)到maxfree值,不一定需要完全掃描PFT表,而所有vmstat輸出都為整數(shù),所以通常cy列值為0。Faults段顯示內(nèi)容(其實(shí)這段內(nèi)容不需太多關(guān)注)in在該時間間隔中觀測到的每秒設(shè)備中斷數(shù)。sy在該時間間隔中觀測到的每秒系統(tǒng)調(diào)用次數(shù)。cs在該時間間隔中觀測到的每秒鐘上下文切換次數(shù)。Cpu段顯示內(nèi)容us列顯示了用戶模式所消耗的CPU時間。sy列詳細(xì)顯示了CPU在系統(tǒng)模式所消耗的CPU時間。id列顯示了沒有未決本地磁盤I/O時CPU空閑或等待時間的百分比。wa列詳細(xì)顯示了有未決本地磁盤I/O時CPU空閑的時間百分比。wa的值如果超過25%,就表明磁盤子系統(tǒng)可能沒有被正確平衡,或者這也可能是磁盤工作負(fù)荷很重的結(jié)果。 如果在一個單用戶系統(tǒng)中,us+sy時間不超過90%,我們就不認(rèn)為系統(tǒng)的CPU是受限制的。如果在一個多用戶系統(tǒng)中,us+sy時間超過80%,我們就認(rèn)為系統(tǒng)的CPU是受限的。其中的進(jìn)程將要花時間在運(yùn)行隊(duì)列中等待。響應(yīng)時間和吞吐量會受損害。檢查cpu,我們主要關(guān)注報(bào)告中的4個cpu列和2個kthr(內(nèi)核線程)列。在上面的示例中,我們可以觀察到以下幾個主要的信息:CPUIDLE比較高,比較空閑;r列為0,表明線程不存在等待;WA值不高,說明I/O壓力不大;free值比較大,pi,po為0,表明內(nèi)存非常富裕??臻e較多。2、sar第二個常用的是sar命令,但是sar會增加系統(tǒng)的開銷。當(dāng)然有些情況下,我們使用sar比較方便。sar的輸出結(jié)果與前面的基本類似,這里不再作詳細(xì)的介紹,關(guān)于命令的語法,也不再作詳細(xì)的介紹,我們常用的命令格式:#sar13AIXjsdxh_db023500C2C1EB4C00Systemconfiguration:lcpu=1617:52:26%usr%sys%wio%idlephysc17:52:271970758.0017:52:281960758.0117:52:291970758.02Average1970758.01在這里,sar命令輸出的是一個整體的cpu使用情況的一個統(tǒng)計(jì),統(tǒng)計(jì)分項(xiàng)目的內(nèi)容也比較直觀,通過名字就可以理解涵義。這里有一點(diǎn)比較方便的就是,在最后一行有一個匯總的average行,作為上述統(tǒng)計(jì)的一個平均。另外,補(bǔ)充說明一點(diǎn)的就是,一般來說,第一行統(tǒng)計(jì)信息包含了sar命令本身啟動的cpu消耗,所以往往是偏高的,所以導(dǎo)致average值也往往是偏高一點(diǎn)的。當(dāng)然,這不會對結(jié)果產(chǎn)生多大影響。當(dāng)我們有多個cpu的時候,而程序采用的是單線程,有時候會出現(xiàn)一種情況,我們檢查發(fā)現(xiàn),cpu總體的使用率不高,但是程序響應(yīng)卻比較慢。這里有可能就是單線程只使用了一個cpu,導(dǎo)致這個cpu100%占用,處理不過來,而其他的cpu卻閑置。這時可以對cpu分開查詢,統(tǒng)計(jì)每個cpu的使用情況。#sar-PALL12AIXjsdxh_db023500C2C1EB4C00Systemconfiguration:lcpu=1618:03:30cpu%usr%sys%wio%idlephysc18:03:3100690310.0015050001.0020001000.5230001000.484010990.5450001000.4660001000.5370001000.4780001000.5390001000.4710020980.54110001000.461211580310.00131000001.00140001000.53150001000.47-1970758.0118:03:3200710290.0015050001.0020001000.5230001000.484010990.5450001000.4760001000.5270001000.4780001000.5390001000.4710020980.54110001000.461239410200.00131000001.00140001000.52150001000.47-1970757.98Average00700300.0015050001.0020001000.5230001000.484010990.5450001000.4660001000.5370001000.4780001000.5390001000.4710020980.54110001000.461228480240.00131000001.00140001000.52150001000.47-1970758.00上面是分cpu統(tǒng)計(jì)的情況,結(jié)果應(yīng)該也比較直觀吧。Sar還有其他一些比較特殊的使用方法,比如:如果希望多個采樣和多個報(bào)告,可為sar命令指定一個輸出文件,這樣就方便多了。將sar命令的標(biāo)準(zhǔn)輸出數(shù)據(jù)定向到/dev/null,并將sar命令作為后臺進(jìn)程運(yùn)行。具體的命令格式為:sar-A-o/temp/sar_result.log5300>/dev/null&關(guān)于sar其他的一些使用方法,這里不再詳述。3、iostat第三個可以用來使用的命令是iostat.$iostat-t24tty:tintoutavg-cpu:%user%sys%idle%iowait0.00.00.00.199.80.10.081.00.00.199.90.00.040.50.00.0100.00.00.040.50.00.199.10.8TTY的兩列信息(tin和tou)顯示了由所有TTY設(shè)備讀寫的字符數(shù)CPU統(tǒng)計(jì)信息列(%user、%sys、%idle和%iowait)提供了CPU的使用情況。注意:第一份報(bào)告為系統(tǒng)啟動以來的一個累積值。4、tprof使用tprof命令用于統(tǒng)計(jì)每個進(jìn)程的CPU使用情況#tprof-xsleep30該命令的輸出結(jié)果可查看__prof.all文件。此命令運(yùn)行30秒鐘,在當(dāng)前目錄下創(chuàng)建一個名為_prof.all的文件。30秒鐘內(nèi),CPU被調(diào)度次數(shù)約為3000次。__prof.all文件中的字段Total為此進(jìn)程調(diào)度到的CPU次數(shù)。如果進(jìn)程所對應(yīng)的Total字段的值為1500,即表示該進(jìn)程在3000次CPU調(diào)度中占用了1500次,或理解為使用了一半的CPU時間。tprof的輸出準(zhǔn)確地顯示出哪個進(jìn)程在使用CPU時間。在我下面的這一份示例中,可以看到,大部分的cpu時間都是被wait所占用的。這里的wait實(shí)際上是idle進(jìn)程,可以表明這個系統(tǒng)是一個完全空閑的系統(tǒng)。$more__prof.allProcessPIDTIDTotalKernelUserSharedOther=======================================wait409704097129982998000wait327763277729942994000wait245822458329852985000wait163881638929802980000syncd2212541557073131000caiUxOs524540229401530030netm737467374711000hats_nim1671242122066510010snmpd64598258124529111000rpc.lockd639212172867911000tprof704622227743710010trclogio360524240862511000trace1523820252314510010clinfo1958102276094511000sh1572938228570911000=======================================Total1200011994060ProcessFREQTotalKernelUserSharedOther====================================wait41195711957000syncd13131000caiUxOs130030netm111000hats_nim110010snmpd64111000rpc.lockd111000tprof110010trclogio111000trace110010clinfo111000sh111000====================================Total151200011994060在這里,對wait進(jìn)程作一點(diǎn)補(bǔ)充說明。在AIX5L下,你用psaux會發(fā)現(xiàn)有一些root的wait進(jìn)程#psaux|head-20USERPID%CPU%MEMSZRSSTTYSTATSTIMETIMECOMMANDoracle2663545.70.05013627524-A15:40:350:32oracleora92(LOCroot172143.10.04040-AJul0424793:53waitroot169463.10.04040-AJul0424633:59waitroot166783.10.04040-AJul0424600:21waitroot532743.10.04040-AJul0424397:54waitroot2863.10.04040-AJul0424371:55waitroot81963.00.04040-AJul0424312:40waitroot8223.00.04040-AJul0424303:36waitroot5543.00.04040-AJul0424261:50waitroot207762.70.04040-AJul0421502:46waitroot573722.70.04040-AJul0421439:31waitroot491762.70.04040-AJul0421423:47waitroot210442.70.04040-AJul0421398:24waitroot128482.70.04040-AJul0421357:07waitroot213122.70.04040-AJul0421324:26waitroot125802.70.04040-AJul0421293:06waitroot131162.70.04040-AJul0421195:47waitoracle3446120.30.05758834976-AJul042663:08ora_j000_ora92oracle4304080.30.05590833296-AJul042220:57ora_j001_ora92wait就是CPU空閑的時候運(yùn)行的空閑進(jìn)程,AIX4上叫kproc。所以這個進(jìn)程占用越大,表示機(jī)器越空閑。Wait進(jìn)程的數(shù)量是由機(jī)器上的邏輯CPU的個數(shù)決定的,有幾個邏輯CPU,就有幾個wait進(jìn)程.5、ps這個命令使用本身也比較復(fù)雜,在這里只介紹如何查看cpu占用最高的進(jìn)程。使用舉例如下:#psaux|head-25USERPID%CPU%MEMSZRSSTTYSTATSTIMETIMECOMMANDroot172143.10.04040-AJul0425578:42waitroot169463.10.04040-AJul0425415:54waitroot166783.10.04040-AJul0425377:03waitroot532743.10.04040-AJul0425170:12waitroot2863.10.04040-AJul0425144:00waitroot81963.00.04040-AJul0425082:32waitroot8223.00.04040-AJul0425072:25waitroot5543.00.04040-AJul0425034:14waitroot207762.70.04040-AJul0422181:27waitroot573722.70.04040-AJul0422118:00waitroot491762.70.04040-AJul0422102:02waitroot210442.70.04040-AJul0422077:18waitroot128482.70.04040-AJul0422036:44waitroot213122.70.04040-AJul0421998:53waitroot125802.70.04040-AJul0421967:17waitroot131162.70.04040-AJul0421865:51waitoracle3446120.30.05637233852-AJul042707:30ora_j000_ora92oracle4304080.30.05591633396-AJul042266:20ora_j001_ora92oracle3650920.20.05618433664-AJul041765:58ora_j002_ora92oracle4424300.20.05609233572-AJul041426:40ora_j003_ora92oracle3856060.10.05598433464-AJul051159:17ora_j004_ora92oracle4138560.10.05052028000-AJul23543:31oracleora92(LOCoracle1436680.10.05052828008-AJul13833:21oracleora92(LOCoracle3692300.10.05660034080-AJul05806:36ora_j005_ora92在這個輸出結(jié)果中,排在前面的是16個root用戶的wait進(jìn)程,這其實(shí)是CPU空閑的時候運(yùn)行的空閑進(jìn)程,之前已作說明。所以CPU最高的幾個進(jìn)程其實(shí)是下面的ORACLE用戶的ora_j00*進(jìn)程,這是ORACLE的job進(jìn)程。在這里,這些進(jìn)程的開銷很小。如果ORACLE的進(jìn)程開銷比較大,我們可以用如下的方法來查詢具體的進(jìn)程在干什么事情,例如我們要查詢進(jìn)程ora_j000_ora92,PID=344612,可以使用下面的方法:$su–oracleSQL>sqlplus“/assysdba”SQL>oradebugsetospid344612SQL>oradebugevent10046tracenamecontextforever,level8SQL>oradebugtracefile_name–這個命令我們獲得輸出文件的絕對路徑和文件名SQL>oradebugevent10046tracenamecontextoff$tkprof/opt/oracle/app/oracle/admin/ora92/bdump/ora92_j000_344612.trctracepid.txt$moretracepid.txt在tracepid.txt中,我們就可以看到這個進(jìn)程中具體運(yùn)行的語句、過程等,以及所有的SQL的cpu消耗、物理讀、邏輯讀、執(zhí)行計(jì)劃等信息。另外,我們也可以執(zhí)行下面的語句查看進(jìn)程具體運(yùn)行的SQL語句的文本:SELECT/*+ORDERED*/sql_textFROMv$sqltextaWHERE(a.hash_value,a.address)IN(SELECTDECODE(sql_hash_value,0,prev_hash_value,sql_hash_value),DECODE(sql_hash_value,0,prev_sql_addr,sql_address)FROMv$sessionbWHEREb.paddr=(SELECTaddrFROMv$processcWHEREc.spid='&pid'))ORDERBYpieceASC6、解決CPU占用的懲罰機(jī)制nice和renice指定和修改命令的優(yōu)先級。系統(tǒng)中運(yùn)行的每個進(jìn)程都有一個優(yōu)先級,我們可以用ps命令看到,這個優(yōu)先級為PRI,PRI的值越小,優(yōu)先級越高,能占用更多的CPU時間片。系統(tǒng)默認(rèn)的PRI為60,我們可以通過nice命令和renice命令來改變一個進(jìn)程的優(yōu)先級,從而控制進(jìn)程對CPU時間片的占用。任何一個用戶都可以使用nice命令來使他的進(jìn)程以低于系統(tǒng)默認(rèn)的pri運(yùn)行。但是只有root用戶才可以使進(jìn)程以高于默認(rèn)的pri運(yùn)行。我們先來看一下nice命令的使用方法:#nice–n-5vmstat210>vmstat.out#ps-elFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD200001A0704738152372805515aee1400544f100009e63c23e30pts/10:00vmstat指定程序以nice值-5開始運(yùn)行。程序開始后,nice的值為15,PRI的值為55。nice命令可以指定的范圍為-20(最高優(yōu)先級)到20(最低優(yōu)先級)。在AIX5.3中,默認(rèn)的nice為20。#vmstat210>vmstat.out#ps-elFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD200001A070474015237280602032ec6400472f100009e63c23e30pts/10:00vmstat64可以看到默認(rèn)的情況下,系統(tǒng)使用的nice=20,pri=60。實(shí)際上,在使用nice指定的時候,我們也可以使用超出閉區(qū)間[-20,20]的值,比如:nice–n-33vmstat210>vmstat.out#ps-elFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD200001A03196521523728040082ef0400544f100009e63c23e30pts/10:00vmstat64上例中,我們指定的nice小于-20,得到最高的優(yōu)先級(pri=40)。反之,如果我們指定nice的值超過20,比如nice=21,我們將得到最低的優(yōu)先級值pri=100。renice不能在具有固定優(yōu)先級的進(jìn)程上使用。非root用戶可以在一個或多個運(yùn)行進(jìn)程的nice值上加一個指定的值,但不能從中減去指定的值。也就是只能降低進(jìn)程的優(yōu)先級,而不能增加優(yōu)先級。renice-n-10pidnumber,將指定的進(jìn)程nice值減小10。renice-n+5pidnumber,將指定的進(jìn)程nice值增加5。根據(jù)nice值的不同取值,這里renice的值可以取值的范圍是閉區(qū)間[-40,40]。為什么取值范圍是這個呢?我們可以這樣來理解,通過ps–l命令,我們可以看到NI的取值范圍是閉區(qū)間[0,40],我們使用renice需要改變的也就是整個值,考慮兩個極端的情況,假如現(xiàn)在為0,我們要把它改到40,就必須得renice–n40,如果現(xiàn)在是40,我們要把它改為0,則renice的值就得是-40了。當(dāng)然,跟nice一樣,在這里renice的值在命中使用的時候也可以超出這個閉區(qū)間,不會報(bào)錯,但有效的結(jié)果只落在這個閉區(qū)間內(nèi)。#psl1630282FSUIDPIDPPIDCPRINIADDRSZRSSWCHANTTYTIMECMD200001A01630282680062010040413e8400472484EVENTpts/10:00v#renice-n-301630282#psl1630282FSUIDPIDPPIDCPRINIADDRSZRSSWCHANTTYTIMECMD200001A0163028268006205010413e8400472484EVENTpts/10:00v我們可以總結(jié)一下,pri值的取值公式大概如下:優(yōu)先級值(PRI)=基本優(yōu)先級(60)+nice損失+基于最近CPU使用情況的CPU損失總的來說nice值越小,進(jìn)程的優(yōu)先級越高,能分配到更多的cpu時間片。反之,也成立。7、小結(jié)對于系統(tǒng)cpu的監(jiān)控,建議:1)使用vmstat進(jìn)行分析2)sar–PALL110分析,多個cpu間的負(fù)載是否平衡3)psaux查看4)tprof查看更詳細(xì)的信息二、Memory性能評估1、VMM的管理簡介首先,還是簡單講解一下內(nèi)存以及的VMM的一點(diǎn)工作原理。內(nèi)存和交換空間一般都是用頁面來進(jìn)行分配和管理的。在內(nèi)存中存在兩種類型的頁面:計(jì)算頁面(一般為可執(zhí)行文件段中的頁面)和文件頁面(存儲的數(shù)據(jù)文件的頁面)。當(dāng)我們執(zhí)行程序或者讀入數(shù)據(jù)的時候,內(nèi)存中的頁面就逐漸被占用。當(dāng)空閑的內(nèi)存只剩maxfree的時候,vmm的調(diào)頁就被喚醒,通過調(diào)頁算法,將內(nèi)存中的頁面轉(zhuǎn)移到交換空間中。一直到空閑內(nèi)存達(dá)到maxfree,才停止調(diào)頁。在這里,我們涉及到兩個參數(shù):Minfree:最小空閑頁鏈表尺寸。一旦低于該值,系統(tǒng)偷頁以填充頁鏈表,保證有足夠的內(nèi)存頁面。偷頁就是將不常用的頁面替換出去。Maxfree:最大空閑頁鏈表尺寸。一旦高于該值,系統(tǒng)停止偷頁。如果發(fā)現(xiàn)空閑列表不足,可以用下面的方法增加minfree參數(shù)#vmo-ominfree=1000-omaxfree=1008Settingmaxfreeto1008Settingminfreeto1000#vmo–ominfree=1000–omaxfree=1008–P#-P參數(shù)使修改永久生效一般情況下,minfree和maxfree通過下面的公式得到:maxfree=minmum(memory/128,128),minfree=maxfree-8注意:在AIX5.2之前的版本請使用/usr/samples/kernel/vmtune命令。#/usr/samples/kernel/vmtune–f1000–F1008另外,關(guān)于內(nèi)存的使用,我們還有兩個經(jīng)常碰到的參數(shù)需要關(guān)注:Minperm:用戶I/O文件訪問的最小緩沖區(qū)頁數(shù)Maxperm:用戶I/O文件訪問的最大緩沖區(qū)頁數(shù)Minperm和maxperm這兩個參數(shù)的默認(rèn)值分別為20%和80%。在這里主要與性能相關(guān)的是maxperm參數(shù)。maxperm參數(shù)指定了文件頁面可以占用內(nèi)存的上限,因?yàn)槲募撁娌恢鲃俞尫?,所以很容易造成?nèi)存的文件頁面過高的占用,導(dǎo)致其他的應(yīng)用內(nèi)存使用緊張。調(diào)整參數(shù)值的方法如下:#vmo-omaxperm%=80-ominperm%=20Settingminperm%to20Settingmaxperm%to80在AIX5.2之前的版本請使用/usr/samples/kernel/vmtune命令。#/usr/samples/kernel/vmtune-p20–P80將min和max的值分別設(shè)置為20%和80%。查看當(dāng)前的參數(shù)設(shè)置方法如下:1)vmo–a顯示當(dāng)前所有的參數(shù)設(shè)置在AIX5.2之前的版本請使用#/usr/samples/kernel/vmtune顯示當(dāng)前所有的參數(shù)設(shè)置#vmo-acpu_scale_memp=8data_stagger_interval=161defps=1force_relalias_lite=0framesets=2htabscale=n/akernel_heap_psize=4096large_page_heap_size=0lgpg_regions=0lgpg_size=0low_ps_handling=1lru_file_repage=1lru_poll_interval=10lrubucket=131072maxclient%=80maxfree=1088maxperm=4587812maxperm%=80maxpin=4881650maxpin%=80mbuf_heap_psize=4096memory_affinity=1memory_frames=6029312memplace_data=2memplace_mapped_file=2memplace_shm_anonymous=2memplace_shm_named=2memplace_stack=2memplace_text=2memplace_unmapped_file=2mempools=4minfree=960minperm=1146952minperm%=20nokilluid=0npskill=49152npsrpgmax=393216npsrpgmin=294912npsscrubmax=393216npsscrubmin=294912npswarn=196608num_spec_dataseg=0numpsblks=6291456page_steal_method=0pagecoloring=n/apinnable_frames=5601758pta_balance_threshold=n/arelalias_percentage=0rpgclean=0rpgcontrol=2scrub=0scrubclean=0soft_min_lgpgs_vmpool=0spec_dataseg_int=512strict_maxclient=1strict_maxperm=0v_pinshm=0vm_modlist_threshold=-1vmm_fork_policy=1vmm_mpsize_support=12)vmstat-v#vmstat-v6029312memorypages5734766lruablepages2801540freepages4memorypools406918pinnedpages80.0maxpinpercentage20.0minpermpercentage80.0maxpermpercentage2.3numpermpercentage135417filepages0.0compressedpercentage0compressedpages0.0numclientpercentage80.0maxclientpercentage0clientpages0remotepageoutsscheduled312417pendingdiskI/Osblockedwithnopbuf0pagingspaceI/Osblockedwithnopsbuf2878filesystemI/Osblockedwithnofsbuf0clientfilesystemI/Osblockedwithnofsbuf0externalpagerfilesystemI/Osblockedwithnofsbuf顯示minperm和maxperm和numperm的值。numperm值給出的是內(nèi)存中文件頁數(shù)。系統(tǒng)調(diào)頁的規(guī)則:如果numperm>maxperm,則只調(diào)出文件頁面。如果numperm<minperm,則同時調(diào)出文件頁面和計(jì)算頁面。如果minperm<numperm<maxperm,則只調(diào)出文件頁面,除非新調(diào)入的文件頁面大于計(jì)算頁面的總和。如果系統(tǒng)在向調(diào)頁空間調(diào)出頁面,可能使因?yàn)閮?nèi)存中的文件頁數(shù)低于maxperm,從而也調(diào)出了部分的計(jì)算頁面以達(dá)到maxfree的要求。在這種情況下,可以考慮把maxperm降低到低于numperm的某個值,從而阻止計(jì)算頁面的調(diào)出。在5.2ML4以后的版本中,為了防止計(jì)算頁面被調(diào)出,可以采用另外一個方法,就是設(shè)置參數(shù)lru_file_repage=0。將該參數(shù)設(shè)為0,則告訴vmm在進(jìn)行頁面替換的時候,優(yōu)先替換文件頁面。maxclient通常應(yīng)該設(shè)置為一個小于或者等于maxperm的值。增強(qiáng)JFS文件系統(tǒng)為它的緩沖區(qū)高速緩存使用客戶機(jī)文件,這不受maxperm和minperm的影響。為了在限制增強(qiáng)JFS文件系統(tǒng)使用高速緩存,可以指定maxclient的值,避免在它進(jìn)行頁面替換的時候,替換其他類型的頁。2、使用vmstat確定內(nèi)存的使用情況主要檢查vmstat輸出的memory和pages列和faults列。詳細(xì)的說明見前一節(jié)cpu評估說明。3、svmon命令#svmon-G-i22sizeinusefreepinvirtualmemory20971362368451860291152150194943pgspace1048576960workpersclntlpagepinuse1949604188500sizeinusefreepinvirtualmemory20971362368531860283152150194947pgspace1048576960workpersclntlpagepinuse1949644188900memory段size物理內(nèi)存總頁數(shù)。4KB/頁inuse物理內(nèi)存中正在使用的內(nèi)存頁面數(shù)。包含活動進(jìn)程和已經(jīng)終止的進(jìn)程的持久文件頁面。free空閑列表中的頁面數(shù)量pin鎖定在內(nèi)存中的頁面數(shù)量(鎖定的意思就是不能被替換出去)virtualpgspace段size調(diào)頁空間總大小inuse已經(jīng)分配頁的總數(shù),也就是已經(jīng)使用的調(diào)頁空間頁數(shù)pin段work物理內(nèi)存中的工作頁面數(shù)pers物理內(nèi)存中的持久頁面數(shù)clnt物理內(nèi)存中的客戶機(jī)頁面數(shù)(客戶機(jī)頁面就是一個遠(yuǎn)程文件頁面)inuse段work物理內(nèi)存中的工作頁面數(shù)pers物理內(nèi)存中的持久頁面數(shù)clnt物理內(nèi)存中的客戶機(jī)頁面數(shù)(客戶機(jī)頁面就是一個遠(yuǎn)程文件頁面)3、ps命令顯示當(dāng)前運(yùn)行的進(jìn)程狀態(tài)信息。運(yùn)行下列命令,顯示內(nèi)存占用前10位的進(jìn)程。#psgv|sort+6b-nr|head-102490538-A191:5601184032748xx45762209240.10.0ora_j002039970-A592:59111172832648xx45762209240.30.0ora_j002588922-A1118:31221171232632xx45762209240.60.0ora_j02523168-A305:0111168832608xx45762209240.20.0ora_j002474214-A0:0101158832512xx45762209240.10.0ora_j002007282-A0:0101038431308xx45762209240.00.0ora_j00508120-A32:58662934427164xx45762209240.00.0ora_dbw1351908-A0:021566826560xx45762209240.00.0oracleo3801250-A203:220564826556xx45762209240.10.0oracleo3915976-A0:000566426556xx45762209240.00.0oracleo如果是oracle的一些進(jìn)程占用了過度的內(nèi)存,我們也可以通過前面類似的進(jìn)程處理方法來分析。4、內(nèi)存的調(diào)整具體調(diào)整需要結(jié)合系統(tǒng)運(yùn)行的應(yīng)用程序?qū)ΠY下藥,如調(diào)整minperm/maxperm將改變內(nèi)存與PAGINGSPACE之間的交換算法,調(diào)整minpgahead/maxpgahead將改變內(nèi)存塊請求機(jī)制,調(diào)整minfree/maxfree將改變內(nèi)存緊張時的內(nèi)存清理刷新機(jī)制,等等。如果數(shù)據(jù)庫使用裸設(shè)備,并且沒有太多其他的應(yīng)用,因?yàn)槁阍O(shè)備不需要文件系統(tǒng)的緩存,所以可以降低minperm,maxperm,maxclient的默認(rèn)值,降低操作系統(tǒng)對內(nèi)存的不必要的占用。案例:計(jì)費(fèi)數(shù)據(jù)庫數(shù)據(jù)庫響應(yīng)變慢,內(nèi)存16G,裸設(shè)備,卻存在很多的PI,PO情況。在檢查與內(nèi)存相關(guān)的系統(tǒng)參數(shù),發(fā)現(xiàn)如下問題:minperm%=20,maxperm%=80,maxclient%=80說明:以上三個參數(shù)為系統(tǒng)缺省配置,其表示,使用文件系統(tǒng)時,最多可使用80%*16G=10.8G,用于緩存所訪問的文件。結(jié)論:由于以上參數(shù)采用系統(tǒng)缺省配置,文件系統(tǒng)緩存最大可以達(dá)到10.8G,在執(zhí)行大量的文件cp操作后,系統(tǒng)的可用內(nèi)存量迅速下降,在其后的計(jì)費(fèi)過程中,由于大量pagein/pageout操作引起系統(tǒng)嚴(yán)重性能瓶頸。優(yōu)化:將maxperm%=30,maxclient%=30#vmo–omaxperm%=30–P#vmo–omaxclient%=30–P5.2以前版本/usr/samples/kernel/vmtune–p20–P30/usr/samples/kernel/vmtune–t30三、磁盤的I/O性能評估對磁盤IO的性能考慮:將頻繁訪問的文件系統(tǒng)和裸設(shè)備應(yīng)盡可能放置在不同的磁盤上。在建立邏輯卷時盡可能使用mklv的命令開關(guān)給不同的文件系統(tǒng)和裸設(shè)備賦予不同的內(nèi)策略。使用磁盤設(shè)備驅(qū)動適配器的功能屬性構(gòu)建合適的RAID方式,以獲得更高的數(shù)據(jù)安全性和存取性能。一般考慮采用RAID5或者RAID10方式,對于寫要求比較高的系統(tǒng),一般建議采用RAID10方式;關(guān)于RAID10與RAID5的比較,可以見piner的文章,作為補(bǔ)充我會在后面貼出。盡可能利用內(nèi)存讀寫帶寬遠(yuǎn)比直接磁盤I/O操作性能優(yōu)越的特點(diǎn),使頻繁訪問的文件或數(shù)據(jù)置于內(nèi)存中進(jìn)行操作處理;在這里,順帶提一下裸設(shè)備以及文件系統(tǒng)的對比。裸設(shè)備的優(yōu)點(diǎn):由于旁路了文件系統(tǒng)緩沖器而進(jìn)行直接讀寫,從而具有更好的性能。對硬盤的直接讀寫就意味著取消了硬盤與文件系統(tǒng)的同步需求。這一點(diǎn)對于純OLTP系統(tǒng)非常有用,因?yàn)樵谶@種系統(tǒng)中,讀寫的隨機(jī)性非常大以至于一旦數(shù)據(jù)被讀寫之后,它們在今后較長的一段時間內(nèi)不會得到再次使用。除了OLTP,raw設(shè)備還能夠從以下幾個方面改善DSS應(yīng)用程序的性能:

排序:對于DSS環(huán)境中大量存在的排序需求,raw設(shè)備所提供的直接寫功能也非常有用,因?yàn)閷εR時表空間的寫動作速度更快。

序列化訪問:raw設(shè)備非常適合于序列化I/O動作。同樣地,DSS中常見的序列化I/O(表/索引的完全掃描)使得raw設(shè)備更加適用于這種應(yīng)用程序。直接讀寫,不需要經(jīng)過OS級的緩存。節(jié)約了內(nèi)存資源,在一定程度上避免了內(nèi)存的爭用。避免了操作系統(tǒng)的cache預(yù)讀功能,減少了I/O。采用裸設(shè)備避免了文件系統(tǒng)的開銷。比如維護(hù)I-node,空閑塊等。裸設(shè)備的缺點(diǎn):1、裸設(shè)備的空間大小管理不靈活。在放置裸設(shè)備的時候,需要預(yù)先規(guī)劃好裸設(shè)備上的空間使用。還應(yīng)當(dāng)保留一部分裸設(shè)備以應(yīng)付突發(fā)情況。這也是對空間的浪費(fèi)。2、很多備份工具軟件對裸設(shè)備的支持不足,導(dǎo)致備份等的操作和方法比較原始、麻煩。接下來,對于磁盤I/O的性能性能評估的方法。1、iostat查看#iostat13Systemconfiguration:lcpu=16drives=11paths=4vdisks=0tty:tintoutavg-cpu:%user%sys%idle%iowait0.059.730.417.025.627.1Disks:%tm_actKbpstpsKb_readKb_wrtnhdisk11.04.01.004hdisk00.04.01.004hdisk20.00.00.000hdisk30.00.00.000dac00.014477.71513.4307211469dac0-utm0.00.00.000dac10.00.00.000dac1-utm0.00.00.000hdisk474.74968.3440.117283262hdisk599.69508.41073.313448206cd00.00.00.000tty:tintoutavg-cpu:%user%sys%idle%iowait0.0904.029.310.628.931.1Disks:%tm_actKbpstpsKb_readKb_wrtnhdisk10.00.00.000hdisk00.00.00.000hdisk20.00.00.000hdisk30.00.00.000dac00.05956.0492.018324124dac0-utm0.00.00.000dac10.00.00.000dac1-utm0.00.00.000hdisk449.02840.0221.05122328hdisk5100.03116.0271.013201796cd00.00.00.000tty:tintoutavg-cpu:%user%sys%idle%iowait0.0898.241.68.921.228.3Disks:%tm_actKbpstpsKb_readKb_wrtnhdisk10.00.00.000hdisk00.00.00.000hdisk20.00.00.000hdisk30.00.00.000dac00.025695.72306.8234423432dac0-utm0.00.00.000dac10.00.00.000dac1-utm0.00.00.000hdisk467.87908.3542.37127221hdisk599.717787.41764.5163216211cd00.00.00.000注意:第一個報(bào)告代表自系統(tǒng)啟動以來所有的活動。下面對輸出的結(jié)果說明如下:ttyTTY的兩列信息(tin和tou)顯示了由所有TTY設(shè)備讀寫的字符數(shù)。avg-cpuCPU統(tǒng)計(jì)信息列(%user、%sys、%idle和%iowait)提供了CPU的使用故障。如果iostat命令表明CPU受限的情況不存在,并且%iowait時間大于20%,則可能出現(xiàn)I/O或磁盤受限情況。這一情況可能在缺少實(shí)內(nèi)存的情況下由過多調(diào)頁產(chǎn)生。也有可能是由于不平衡的磁盤負(fù)載、碎片數(shù)據(jù)或應(yīng)用模式而產(chǎn)生。%tm_act指示物理磁盤活動所占總時間的百分比(磁盤的帶寬利用率),或者換句話說,磁盤請求的總時間未達(dá)到。驅(qū)動器在數(shù)據(jù)傳送和處理命令時是活動的,例如尋道至新的位置。“磁盤活動時間”百分比正比于資源爭用,反比于性能。當(dāng)磁盤使用率增加時,性能就下降并且響應(yīng)時間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論