版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2009年6月21日,Linux服務(wù)器性能評估與優(yōu)化,影響Linux性能的因素 系統(tǒng)性能評估標(biāo)準(zhǔn) 系統(tǒng)性能分析工具 性能評估與優(yōu)化過程 Oracle在Linux下的性能優(yōu)化,Linux服務(wù)器性能管理與優(yōu)化,CPU 內(nèi)存 磁盤I/O帶寬 網(wǎng)絡(luò)I/O帶寬,一 影響Linux服務(wù)器性能的因素,操作系統(tǒng)級,程序應(yīng)用級,二 系統(tǒng)性能評估標(biāo)準(zhǔn),4,其中: %user:表示CPU處在用戶模式下的時間百分比。 %sys:表示CPU處在系統(tǒng)模式下的時間百分比。 %iowait:表示CPU等待輸入輸出完成時間的百分比。 swap in:即si,表示虛擬內(nèi)存的頁導(dǎo)入,即從SWAP DISK交換到RAM swap o
2、ut:即so,表示虛擬內(nèi)存的頁導(dǎo)出,即從RAM交換到SWAP DISK。,三 系統(tǒng)性能分析工具,Vmstat、sar、iostat、netstat、free、ps、top等,常用系統(tǒng)命令,常用組合方式,用vmstat、sar、iostat檢測是否是CPU瓶頸 用free、vmstat檢測是否是內(nèi)存瓶頸 用iostat檢測是否是磁盤I/O瓶頸 用netstat檢測是否是網(wǎng)絡(luò)帶寬瓶頸,6,四 Linux性能評估與優(yōu)化,1:系統(tǒng)整體性能評估(uptime命令),rootweb1 # uptime 16:38:00 up 118 days, 3:01, 5 users, load average: 1
3、.22, 1.02, 0.91 這里需要注意的是:load average這個輸出值,這三個值的大小一般不能大于系統(tǒng)CPU的個數(shù),例如,本輸出中系統(tǒng)有8個CPU,如果load average的三個值長期大于8時,說明CPU很繁忙,負(fù)載很高,可能會影響系統(tǒng)性能,但是偶爾大于8時,倒不用擔(dān)心,一般不會影響系統(tǒng)性能。相反,如果load average的輸出值小于CPU的個數(shù),則表示CPU還有空閑的時間片,比如本例中的輸出,CPU是非??臻e的。,(1)利用vmstat命令監(jiān)控系統(tǒng)CPU 該命令可以顯示關(guān)于系統(tǒng)各種資源之間相關(guān)性能的簡要信息,這里我們主要用它來看CPU一個負(fù)載情況。 下面是vmstat命
4、令在某個系統(tǒng)的輸出結(jié)果: rootnode1 # vmstat 2 3 procs -memory- -swap- -io- -system- -cpu- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 0 0 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 0 0 0 0 162240 8304 67032 0 0 1 1 1009 18 0 1 99 0 0 Procs r列
5、表示運(yùn)行和等待cpu時間片的進(jìn)程數(shù),這個值如果長期大于系統(tǒng)CPU的個數(shù),說明CPU不足,需要增加CPU。 b列表示在等待資源的進(jìn)程數(shù),比如正在等待I/O、或者內(nèi)存交換等。 Cpu us列顯示了用戶進(jìn)程消耗的CPU 時間百分比。us的值比較高時,說明用戶進(jìn)程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優(yōu)化程序或算法。 sy列顯示了內(nèi)核進(jìn)程消耗的CPU時間百分比。Sy的值較高時,說明內(nèi)核消耗的CPU資源很多。 根據(jù)經(jīng)驗,us+sy的參考值為80%,如果us+sy大于 80%說明可能存在CPU資源不足。,2:cpu性能評估,(2) 利用sar命令監(jiān)控系統(tǒng)CPU,sar功能很強(qiáng)大,可以對系統(tǒng)
6、的每個方面進(jìn)行單獨的統(tǒng)計,但是使用sar命令會增加系統(tǒng)開銷,不過這些開銷是可以評估的,對系統(tǒng)的統(tǒng)計結(jié)果不會有很大影響。 下面是sar命令對某個系統(tǒng)的CPU統(tǒng)計輸出: rootwebserver # sar -u 3 5 Linux 2.6.9-42.ELsmp (webserver) 11/28/2008 _i686_ (8 CPU) 11:41:24 AM CPU %user %nice %system %iowait %steal %idle 11:41:27 AM all 0.88 0.00 0.29 0.00 0.00 98.83 11:41:30 AM all 0.13 0.00 0
7、.17 0.21 0.00 99.50 11:41:33 AM all 0.04 0.00 0.04 0.00 0.00 99.92 11:41:36 AM all 90.08 0.00 0.13 0.16 0.00 9.63 11:41:39 AM all 0.38 0.00 0.17 0.04 0.00 99.41 Average: all 0.34 0.00 0.16 0.05 0.00 99.45 對上面每項的輸出解釋如下: %user列顯示了用戶進(jìn)程消耗的CPU 時間百分比。 %nice列顯示了運(yùn)行正常進(jìn)程所消耗的CPU 時間百分比。 %system列顯示了系統(tǒng)進(jìn)程消耗的CPU時間百
8、分比。 %iowait列顯示了IO等待所占用的CPU時間百分比 %steal列顯示了在內(nèi)存相對緊張的環(huán)境下pagein強(qiáng)制對不同的頁面進(jìn)行的steal操作。 %idle列顯示了CPU處在空閑狀態(tài)的時間百分比。,你是否遇到過系統(tǒng)CPU整體利用率不高,而應(yīng)用緩慢的現(xiàn)象? 在一個多CPU的系統(tǒng)中,如果程序使用了單線程,會出現(xiàn)這么一個現(xiàn)象,CPU的整體使用率不高,但是系統(tǒng)應(yīng)用卻響應(yīng)緩慢,這可能是由于程序使用單線程的原因,單線程只使用一個CPU,導(dǎo)致這個CPU占用率為100%,無法處理其它請求,而其它的CPU卻閑置,這就導(dǎo)致了整體CPU使用率不高,而應(yīng)用緩慢現(xiàn)象的發(fā)生。,問題?,(1)利用free指令監(jiān)
9、控內(nèi)存 free是監(jiān)控linux內(nèi)存使用狀況最常用的指令,看下面的一個輸出: rootwebserver # free -m total used free shared buffers cached Mem: 8111 7185 926 0 243 6299 -/+ buffers/cache: 643 7468 Swap: 8189 0 8189 一般有這樣一個經(jīng)驗公式:應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存70%時,表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能,應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存20%時,表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存,20%應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存70%時,表示系統(tǒng)內(nèi)存資
10、源基本能滿足應(yīng)用需求,暫時不影響系統(tǒng)性能。,3:內(nèi)存性能評估,(2) 利用vmstat命令監(jiān)控內(nèi)存,rootnode1 # vmstat 2 3 procs -memory- -swap- -io- -system- -cpu- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 162240 8304 67032 0 0 13 21 1007 23 0 1 98 0 0 0 0 0 162240 8304 67032 0 0 1 0 1010 20 0 1 100 0 0 0 0 0 162240 8304 6703
11、2 0 0 1 1 1009 18 0 1 99 0 0 memory swpd列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以k為單位)。如果swpd的值不為0,或者比較大,只要si、so的值長期為0,這種情況下一般不用擔(dān)心,不會影響系統(tǒng)性能。 free列表示當(dāng)前空閑的物理內(nèi)存數(shù)量(以k為單位) buff列表示buffers cache的內(nèi)存數(shù)量,一般對塊設(shè)備的讀寫才需要緩沖。 cache列表示page cached的內(nèi)存數(shù)量,一般作為文件系統(tǒng)cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件數(shù)較多,如果此時IO中bi比較小,說明文件系統(tǒng)效率比較好。 swap
12、si列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進(jìn)入內(nèi)存交換區(qū)的數(shù)量。 so列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進(jìn)入內(nèi)存的數(shù)量。 一般情況下,si、so的值都為0,如果si、so的值長期不為0,則表示系統(tǒng)內(nèi)存不足。需要增加系統(tǒng)內(nèi)存。,(1)磁盤存儲基礎(chǔ) 熟悉RAID存儲方式,可以根據(jù)應(yīng)用的不同,選擇不同的RAID方式。 盡可能用內(nèi)存的讀寫代替直接磁盤I/O,使頻繁訪問的文件或數(shù)據(jù)放入內(nèi)存中進(jìn)行操作處理,因為內(nèi)存讀寫操作比直接磁盤讀寫的效率要高千倍。 將經(jīng)常進(jìn)行讀寫的文件與長期不變的文件獨立出來,分別放置到不同的磁盤設(shè)備上。 對于寫操作頻繁的數(shù)據(jù),可以考慮使用裸設(shè)備代替文件系統(tǒng)。 使用裸設(shè)備的優(yōu)點有: 數(shù)
13、據(jù)可以直接讀寫,不需要經(jīng)過操作系統(tǒng)級的緩存,節(jié)省了內(nèi)存資源,避免了內(nèi)存資源爭用。 避免了文件系統(tǒng)級的維護(hù)開銷,比如文件系統(tǒng)需要維護(hù)超級塊、I-node等。 避免了操作系統(tǒng)的cache預(yù)讀功能,減少了I/O請求。 使用裸設(shè)備的缺點是: 數(shù)據(jù)管理、空間管理不靈活,需要很專業(yè)的人來操作。,4:磁盤I/O性能評估,13,(2)利用iostat評估磁盤性能 rootwebserver # iostat -d 2 3 Linux 2.6.9-42.ELsmp (webserver) 12/01/2008 _i686_ (8 CPU) Device: tps Blk_read/s Blk_wrtn/s Bl
14、k_read Blk_wrtn sda 1.87 2.58 114.12 6479462 286537372 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 0 0 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.00 0.00 12.00 0 24 對上面每項的輸出解釋如下: Blk_read/s表示每秒讀取的數(shù)據(jù)塊數(shù)。 Blk_wrtn/s表示每秒寫入的數(shù)據(jù)塊數(shù)。 Blk_read表示讀取的所有塊數(shù)。 Blk_wrtn表示寫入的所
15、有塊數(shù)。 可以通過Blk_read/s和Blk_wrtn/s的值對磁盤的讀寫性能有一個基本的了解,如果Blk_wrtn/s值很大,表示磁盤的寫操作很頻繁,可以考慮優(yōu)化磁盤或者優(yōu)化程序,如果Blk_read/s值很大,表示磁盤直接讀取操作很多,可以將讀取的數(shù)據(jù)放入內(nèi)存中進(jìn)行操作。 對于這兩個選項的值沒有一個固定的大小,根據(jù)系統(tǒng)應(yīng)用的不同,會有不同的值,但是有一個規(guī)則還是可以遵循的:長期的、超大的數(shù)據(jù)讀寫,肯定是不正常的,這種情況一定會影響系統(tǒng)性能。,14,(3)利用sar評估磁盤性能 通過“sar d”組合,可以對系統(tǒng)的磁盤IO做一個基本的統(tǒng)計,請看下面的一個輸出: rootwebserver
16、# sar -d 2 3 Linux 2.6.9-42.ELsmp (webserver) 11/30/2008 _i686_ (8 CPU) 11:09:33 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11:09:35 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 11:09:37 PM dev8-0 1.
17、00 0.00 12.00 12.00 0.00 0.00 0.00 0.00 11:09:37 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: dev8-0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0
18、.02 需要關(guān)注的幾個參數(shù)含義: await表示平均每次設(shè)備I/O操作的等待時間(以毫秒為單位)。 svctm表示平均每次設(shè)備I/O操作的服務(wù)時間(以毫秒為單位)。 %util表示一秒中有百分之幾的時間用于I/O操作。,15,(3)利用sar評估磁盤性能 對以磁盤IO性能,一般有如下評判標(biāo)準(zhǔn): 正常情況下svctm應(yīng)該是小于await值的,而svctm的大小和磁盤性能有關(guān),CPU、內(nèi)存的負(fù)荷也會對svctm值造成影響,過多的請求也會間接的導(dǎo)致svctm值的增加。 await值的大小一般取決與svctm的值和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/
19、O等待,磁盤性能很好,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?,此時可以通過更換更快的硬盤來解決問題。 %util項的值也是衡量磁盤I/O的一個重要指標(biāo),如果%util接近100%,表示磁盤產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷的在工作,該磁盤可能存在瓶頸。長期下去,勢必影響系統(tǒng)的性能,可以通過優(yōu)化程序或者通過更換更高、更快的磁盤來解決此問題。,5:網(wǎng)絡(luò)性能評估,(1)通過ping命令檢測網(wǎng)絡(luò)的連通性 (2)通過netstat i組合檢測網(wǎng)絡(luò)接口狀況 (3)通過netstat r組合檢測系統(tǒng)的路由表信息 (4)通過sar n組合顯示系統(tǒng)的
20、網(wǎng)絡(luò)運(yùn)行狀態(tài),五 Oracle在Linux下的性能優(yōu)化,Oracle數(shù)據(jù)庫內(nèi)存參數(shù)的優(yōu)化 與oracle相關(guān)的系統(tǒng)內(nèi)核參數(shù) SGA、PGA參數(shù)設(shè)置 Oracle下磁盤存儲性能優(yōu)化 文件系統(tǒng)的選擇(ext2/ext3、xfs、ocfs2) Oracle ASM存儲,1)物理內(nèi)存多大 2)操作系統(tǒng)估計需要使用多少內(nèi)存 3)數(shù)據(jù)庫是使用文件系統(tǒng)還是裸設(shè)備 4)有多少并發(fā)連接 5)應(yīng)用是OLTP 類型還是OLAP 類型,1:優(yōu)化oracle參數(shù)之前需要了解的情況,2:Oracle數(shù)據(jù)庫內(nèi)存參數(shù)的優(yōu)化,(1)系統(tǒng)內(nèi)核參數(shù) 修改 /etc/sysctl.conf 這個文件,加入以下的語句: kernel.
21、shmmax = 2147483648 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 參數(shù)依次為: Kernel.shmmax:共享內(nèi)存段的最大尺寸(以字節(jié)為單位)。 Kernel.shmmni:系統(tǒng)中共享內(nèi)存段的最大數(shù)量。 Kernel.shmall:共享內(nèi)存總量,以頁為單位。 fs.file-max:文件句柄數(shù),表示在Linux系統(tǒng)中可以打開的文件數(shù)量。 net.
22、ipv4.ip_local_port_range:應(yīng)用程序可使用的IPv4端口范圍。,需要注意的幾個參數(shù),關(guān)于Kernel.shmmax Oracle SGA 由共享內(nèi)存組成,如果錯誤設(shè)置 SHMMAX可能會限制SGA 的大小,SHMMAX設(shè)置不足可能會導(dǎo)致以下問題:ORA-27123:unable to attach to shared memory segment,如果該參數(shù)設(shè)置小于Oracle SGA設(shè)置,那么SGA就會被分配多個共享內(nèi)存段。這在繁忙的系統(tǒng)中可能成為性能負(fù)擔(dān),帶來系統(tǒng)問題。 Oracle建議Kernel.shmmax最好大于sga,以讓oracle共享內(nèi)存區(qū)SGA在一個共
23、享內(nèi)存段中,從而提高性能。 關(guān)于Kernel.shmall 表示系統(tǒng)共享內(nèi)存總大小,以頁為單位。 一個32位的Linux系統(tǒng),8G的內(nèi)存,可以設(shè)置kernel.shmall = 2097152,即為: 2097152*4k/1024/1024 = 8G 就是說可用共享內(nèi)存一共 8G,這里的4K是32位操作系統(tǒng)一頁的大小,即4096字節(jié)。 關(guān)于Kernel.shmmni 表示系統(tǒng)中共享內(nèi)存段的最大數(shù)量。系統(tǒng)默認(rèn)是4096,一般無需修改,在SUN OS下還有Kernel.shmmin參數(shù),表示共享內(nèi)存段最小尺寸,勿要混肴!,(2)SGA、PAG參數(shù)設(shè)置,Oracle在內(nèi)存管理方面的改進(jìn) Oracl
24、e 9i通過參數(shù)PGA_AGGREGATE_TARGET參數(shù)實現(xiàn)PGA自動管理Oracle 10g通過參數(shù)SGA_TARGET參數(shù)實現(xiàn)了SGA的自動管理, Oracle 11g實現(xiàn)了數(shù)據(jù)庫所有內(nèi)存塊的全自動化管理,使得動態(tài)管理SGA和PGA成為現(xiàn)實。 自動內(nèi)存管理的兩個參數(shù): MEMORY_TARGET:表示整個ORACLE實例所能使用的內(nèi)存大小,包括PGA和SGA的整體大小,即這個參數(shù)是動態(tài)的,可以動態(tài)控制SGA和PGA的大小。 MEMORY_MAX_TARGET:這個參數(shù)定義了MEMORY_TARGET最大可以達(dá)到而不用重啟實例的值,如果沒有設(shè)置MEMORY_MAX_TARGET值,默認(rèn)等
25、于MEMORY_TARGET的值。 使用動態(tài)內(nèi)存管理時,SGA_TARGET和PGA_AGGREGATE_TARGET代表它們各自內(nèi)存區(qū)域的最小設(shè)置,要讓Oracle完全控制內(nèi)存管理,這兩個參數(shù)應(yīng)該設(shè)置為0。,B.Oracle五種內(nèi)存管理方式,自動內(nèi)存管理,即AMM (Automatic Memory Management) 自動共享內(nèi)存管理,即ASMM(Automatic Shared Memory Management) 手動共享內(nèi)存管理 自動PGA管理 手動PGA管理,自動內(nèi)存管理(AMM),默認(rèn)安裝oracle11g的實例就是AMM方式。通過如下查看: 示例如下: SQL show p
26、arameters target NAME TYPE VALUE- - - - archive_lag_target integer 0db_flashback_retention_target integer 1860fast_start_io_target integer 0fast_start_mttr_target integer 0memory_max_target big integer 1400Mmemory_target big integer 1400Mpga_aggregate_target big integer 0sga_target big integer 0 注意:如果初始化參數(shù) LOCK_SGA true ,則 AMM 是不可用的。,自動共享內(nèi)存管理,自動共享內(nèi)存管理是oracle10g引進(jìn)的,如果要使用自動共享內(nèi)存管理,只需設(shè)置MEMORY_TARGET=0,然后顯式指定SGA_TARGET即可。 示例如下: SQL alter system set memory_target=0 scope=both;Sys
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版城市綜合體安保服務(wù)合同書范本3篇
- 2025版新能源車輛定期維護(hù)合同3篇
- 2025版無利息教育培訓(xùn)機(jī)構(gòu)設(shè)備購置貸款合同示范文本3篇
- 2025年度個人裝修工程售后服務(wù)合同
- 二零二五年度車棚租賃與智能交通系統(tǒng)融合合同4篇
- 二零二五年度林業(yè)資產(chǎn)評估與交易合同3篇
- 2025版文山凍干三七種植基地農(nóng)業(yè)生態(tài)循環(huán)經(jīng)濟(jì)合作合同3篇
- 2024門窗安裝工程節(jié)能環(huán)保驗收合同3篇
- 二零二五年度汽車玻璃更換與售后服務(wù)協(xié)議范本3篇
- 2025版無房產(chǎn)證房屋買賣合同標(biāo)準(zhǔn)范本精裝3篇
- 高中物理競賽真題分類匯編 4 光學(xué) (學(xué)生版+解析版50題)
- 西方經(jīng)濟(jì)學(xué)-高鴻業(yè)-筆記
- 幼兒園美術(shù)教育研究策略國內(nèi)外
- 高中英語選擇性必修一單詞表
- 物業(yè)公司介紹
- 2024屆河南省五市高三第一次聯(lián)考英語試題及答案
- 【永輝超市公司員工招聘問題及優(yōu)化(12000字論文)】
- 孕婦學(xué)校品管圈課件
- 《愿望的實現(xiàn)》交流ppt課件2
- 中國直銷發(fā)展四個階段解析
- 2024屆浙江省寧波市鎮(zhèn)海區(qū)鎮(zhèn)海中學(xué)高一物理第一學(xué)期期末質(zhì)量檢測試題含解析
評論
0/150
提交評論