您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“CentOS系統(tǒng)中跟蹤高IO等待的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“CentOS系統(tǒng)中跟蹤高IO等待的示例分析”這篇文章吧。
高IO等待問題的第一個(gè)征兆通常是系統(tǒng)平均負(fù)載。負(fù)載均衡的計(jì)算都是基于CPU利用率的,即使用或等待CPU的進(jìn)程數(shù)目,當(dāng)然,在Linux平臺(tái)上,進(jìn)程 幾乎都處于不可中斷的睡眠狀態(tài)。負(fù)載均衡的基線可以解釋為,在一個(gè)CPU核的機(jī)器上上,該CPU得到充分利用。因此,對(duì)于4核機(jī)器中,如果系統(tǒng)平均復(fù)雜為 4,表示該機(jī)器有足夠的資源來處理它需要做的工作,當(dāng)然只是勉強(qiáng)。在相同的4核系統(tǒng),如果平均復(fù)雜是8,那么以為這將意味著服務(wù)器系統(tǒng)需要8個(gè)core才 能處理所要做的工作,但現(xiàn)在只有4個(gè)核,所以已經(jīng)超載。
如果系統(tǒng)顯示平均負(fù)載較高,但是CPU的系統(tǒng)(system)和用戶(user)利用率較低,那么就需要觀察IO 等待(即IO wait)。在linuc系統(tǒng)上,IO wait對(duì)系統(tǒng)負(fù)載有較大的影響,主要因?yàn)橐粋€(gè)或多個(gè)核都可能被磁盤IO或網(wǎng)絡(luò)
發(fā)現(xiàn)進(jìn)程在等待IO完成是一回事,驗(yàn)證高IO wait的原因是另一回事。使用”iostat –x 1”能夠顯示正在使用的物理存儲(chǔ)設(shè)備的IO情況:
[username@server~]$ iostat -x 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
cciss/c0d0 0.08 5.94 1.28 2.75 17.34 69.52 21.60 0.11 26.82 4.12 1.66
cciss/c0d0p1 0.00 0.00 0.00 0.00 0.00 0.00 5.30 0.00 8.76 5.98 0.00
cciss/c0d0p2 0.00 0.00 0.00 0.00 0.00 0.00 58.45 0.00 7.79 3.21 0.00
cciss/c0d0p3 0.08 5.94 1.28 2.75 17.34 69.52 21.60 0.11 26.82 4.12 1.66
由上可知,很明顯,設(shè)備/dev/cciss/c0d0p3的等待時(shí)間很長(zhǎng)。然而,我們并沒有掛載找個(gè)設(shè)備,實(shí)際上,它是個(gè)LVM設(shè)備。如果您使用的是 LVM作為存儲(chǔ),那么,您應(yīng)該發(fā)現(xiàn)iostat應(yīng)該有那么一點(diǎn)混亂。LVM使用device mapper子系統(tǒng)將文件系統(tǒng)映射到物理設(shè)備,因此,iostat可能顯示多個(gè)設(shè)備,比如/ dev/dm-0和/ dev/dm-1。而”df –h”的輸出卻不會(huì)顯示device mapper路徑,而是打印了LVM路徑。最簡(jiǎn)單的方法是在iostat參數(shù)中添加選項(xiàng)”-N”。
[username@server~]$ iostat -xN 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
vg1-root 0.00 0.00 0.09 3.01 0.85 24.08 8.05 0.08 24.69 1.79 0.55
vg1-home 0.00 0.00 0.05 1.46 0.97 11.69 8.36 0.03 19.89 3.76 0.57
vg1-opt 0.00 0.00 0.03 1.56 0.46 12.48 8.12 0.05 29.89 3.53 0.56
vg1-tmp 0.00 0.00 0.00 0.06 0.00 0.45 8.00 0.00 24.85 4.90 0.03
vg1-usr 0.00 0.00 0.63 1.41 5.85 11.28 8.38 0.07 32.48 3.11 0.63
vg1-var 0.00 0.00 0.55 1.19 9.21 9.54 10.74 0.04 24.10 4.24 0.74
vg1-swaplv 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 3.98 1.88 0.00
為簡(jiǎn)便起見,裁剪上面iostat命令的輸出信息。列出的每個(gè)文件系統(tǒng)所顯示出的IO等待都是不可接受的,觀察第十欄標(biāo)有“await”的數(shù)據(jù)。相比而 言,文件系統(tǒng)/usr的await時(shí)間要高一些。我們先來分析一下這個(gè)文件系統(tǒng),使用命令” fuser -vm /opt ”查看哪些進(jìn)程在訪問這個(gè)文件系統(tǒng),進(jìn)程列表如下。
root@server:/root > fuser -vm /opt
USER PID ACCESS COMMAND
/opt: db2fenc1 1067 ....m db2fmp
db2fenc1 1071 ....m db2fmp
db2fenc1 2560 ....m db2fmp
db2fenc1 5221 ....m db2fmp
當(dāng)前服務(wù)器上有112個(gè)DB2進(jìn)程正在訪問/opt文件系統(tǒng),為簡(jiǎn)便起見,列出四項(xiàng)??磥硪呀?jīng)找到導(dǎo)致問題的原因,在服務(wù)器上,數(shù)據(jù)庫配置為可使用速度更快的SAN訪問,操作系統(tǒng)可以使用的是本地磁盤??梢源螂娫拞枂朌BA(數(shù)據(jù)庫管理員)怎么做才能這樣配置。
最后一個(gè)組要的注意的是LVM和device mapper。 “Iostat –xN”命令的輸出顯示的是邏輯卷名,但它是可以通過命令”ls –lrt / dev /mapper”查到映射關(guān)系表。輸出信息的第六列中的dm-是與iostat中的設(shè)備名相對(duì)應(yīng)的。
有時(shí)候,在操作系統(tǒng)或應(yīng)用層是沒有什么可以做的,除了選擇速度更快的磁盤,并沒有其他的選擇。幸運(yùn)的是,快速磁盤訪問,如SAN或SSD的價(jià)格正在逐步下降。
以上是“CentOS系統(tǒng)中跟蹤高IO等待的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。