6、r%d 103 ODD* <5123 RindiSm. ■\Vr:e卯S嚴(yán)匸旳=』曰
叫
Twcw ytmoiyRjmSam
SSD
ZOO.COC 4KBA>.itomR?rfWt* 1 口PS^
FC :耐幣SaM
OCZ 日帕 Z-C-^ve R4
星SO
53D
Ua IS iw.coo SPS IK1
Tg柬 Mfenwy Sysztrns RinSafr 030Ap?aaflct
sso
l.fflK KO* £KE HMIddHnRMd.^Y-te :6卸’
祀 NfifiiiiE>nd
FuiiHMg ?Ow Qdi' i> ng* PC-:
7、U-nli
SSD
1.150 QW* 4?腫譏V*? IOPS122
OGZ 血闘 pif&沁 Zdvt 砒 PCb 藝9也SSC
SSD
Wto 5.3JO.MaiO?5―
Tms F^emwySyHe^s RanSaoTfl
S5D
1^0 DM Rartwi 樹嚴(yán)
PCfi
注:上表源自維基百科 在AIX中,對(duì)于同一個(gè)磁盤(或者LUN),隨著每次I/O讀寫數(shù)據(jù)的大小不通, IOPS的數(shù)值也不是固定不變的。例如,每次I/O寫入或者讀出的都是連續(xù)的大 數(shù)據(jù)塊,此時(shí)IOPS相對(duì)會(huì)低一些;在不頻繁換道的情況下,每次寫入或者讀出 的數(shù)據(jù)塊小,相對(duì)來講IOPS就會(huì)高
8、一些。
I/O讀寫的類型
大體上講,I/O的類型可以分為:讀/寫I/O、大/小塊I/O、連續(xù)/隨機(jī)I/O, 順序/并發(fā)I/O。在這幾種類型中,我們主要討論一下:大/小塊I/O、連續(xù) /隨機(jī)I/O,順序/并發(fā)I/O。
大/小塊I/O
這個(gè)數(shù)值指的是控制器指令中給出的連續(xù)讀出扇區(qū)數(shù)目的多少。如果數(shù)目較多, 如64, 128等,我們可以認(rèn)為是大塊I/O;反之,如果很小,比如4, 8,我們 就會(huì)認(rèn)為是小塊I/O,實(shí)際上,在大塊和小塊I/O之間,沒有明確的界限。
連續(xù)/隨機(jī)I/O
連續(xù)I/O指的是本次I/O給出的初始扇區(qū)地址和上一次I/O的結(jié)束扇區(qū)地址 是完全連續(xù)或者相隔不多的。反之,如果相
9、差很大,則算作一次隨機(jī)I/O
連續(xù)I/O比隨機(jī)I/O效率高的原因是:在做連續(xù)I/O的時(shí)候,磁頭幾乎不用 換道,或者換道的時(shí)間很短;而對(duì)于隨機(jī)I/O,如果這個(gè)I/O很多的話,會(huì)導(dǎo) 致磁頭不停地?fù)Q道,造成效率的極大降低。
順序/并發(fā)I/O
從概念上講,并發(fā)I/O就是指向一塊磁盤發(fā)出一條I/O指令后,不必等待它回 應(yīng),接著向另外一塊磁盤發(fā)I/O指令。對(duì)于具有條帶性的RAID(LUN),對(duì)其 進(jìn)行的I/O操作是并發(fā)的,例如:raid0+l(l+0),raid5等。反之則為順序I/O。
磁盤I/O性能的監(jiān)控
監(jiān)控磁盤的I/O性能,我們可以使用AIX的系統(tǒng)命令,例如:sar-d, iostat,
10、 topas, nmon等。下面,我將以nmon和topas為例,講述在系統(tǒng)中如何觀察 磁盤I/O的性能。
t opas
登錄AIX操作系統(tǒng),輸入topas,然后按D,會(huì)出現(xiàn)如下界面:
Disk
flus護(hù)
KBP3
TP^S
KB-R
ART
sat
kB-W
AWT
Mar
ACW
AGU
hdiskO
SrO
78.0K
19.5
0.0
0.0
0.0
78.0K
20.3
65.1
e.s
0.0
MtaUZ
卩衛(wèi)
6 口
4 口
SCI
6口
6 口
4口
s 口
m 口
hdiskl
0.0;
11、0.0
口?口
0.0
0.0
El.tJ
0.0
0.0
0.0
D?D
0.0
0.0
Q.O
0.0
0.0
D.O
0.D
0,0
D,0
D.D
□ eD
0,0
hdiskS
D.O
口?D
O.D
6.D
□ ?口
O-a
O.0
0.0
□?D
0』
hdiak^
0.0
OK
0?£
0.0
0.0
CLCi
2.0K
0.9
0.9
0?Q
0.0
在上圖中,TPS即為磁盤的IOPS, KBPS即為磁盤每秒的吞吐量。由于服務(wù)器處 于空閑的狀態(tài),我們可以看到I OPS, KBP
12、S的數(shù)據(jù)都非常低。
我們使用dd if命令向磁盤hdisk2發(fā)讀I/O,block大小為1MB:
# drf if =/dev/rhdisk2 af=/d已丄丄 bs=1024k£
[1] 1O485£BO
利用topas進(jìn)行監(jiān)控:
此時(shí),hdisk2的吞吐量為163.9M, IOPS為655。
我們?cè)賳?dòng)一個(gè)dd if,使hdisk的busy數(shù)值達(dá)到100%:
甘 dd xf-/dev/chdxsk2 j bs-iO£^k£
[2] 111^1343
Topss ttomtoE ior host:.
p740 01 hebmg
ataniEn 2
13、Kon Dec 1^ 17:10:£3
2011
l*i3k
Jusy%
KBPS
TPS
KB-R
AKT
KRT
Kfi-?
JlHT
HUT
XQV
AQD
h日乙屮號(hào)2
ioo.D
30^,1H
1 PZK
304.in
5,6
斗4 3
0.0
0.0
0,0
0, 1
0.0
hdisSO
3.S
3D.OK
7x5
0.0
0.0
0.0
30.0K
4-1
S.S
c.o
0.0
hd&Sfcl
0,0
0.0
0.0
0,0
0.0
。■口
0.0
a.o
0.0
0.0
0.0
14、
h >iisk3
0.0
0.0
0x0:
0.0
0B0
0.0
0.0
0?0
0.0
O.D
0.0
0,0
OrO
OrO
0.0
0r0
0.0
OrO
O.Q
0.0
0,0
OrO
hdisk4
O.D
0.0
DuO
0.0
0.0
O.D
0.0
0.0
OuO
0.0
0.0
從上圖可以看出,在磁盤busy達(dá)到100%的時(shí)候,其吞吐量為304.1M,I0PS為 1200。
hdisk2是本地集成的SAS盤,我們可以查出本地集成SAS通道的帶寬為3Gb:
1 grep -i sas
15、
hdislcO
Available
oo-OS-00
車血條Disk Drive
hd islc5
00^0&-D0
SAS RA1(? 0 SSD Array
pdisko
ivAiiaUlt
□0"05"00
Physical 3AS 丄丄d Stitt rrivt
3B.3 0
IvaiLHble
oo-aa-oo
Control丄耳匸 SAS Frotacol
Available
00-0&-00
SAS Enclosure Services Devi.ce
sf
Im
oo-oa-oa-rr
SAS Storage Franewcr
16、lc Conm
sissasd
JtvailAble
~OO
17、以得到此時(shí)磁盤hdisk2吞吐量為318M。
使用nmon收集一個(gè)時(shí)間段的數(shù)據(jù),然后使用nmon analyzer進(jìn)行分析,可以 得出更為直接的圖表:
X nmon -F OnlyFortest -s 5 -u 100
將收集好的nmon文件使用nmon analyzer進(jìn)行分析,得出如下報(bào)表:
圖2.nmon圖表顯示磁盤性能
磁盤I/O性能調(diào)優(yōu)
確認(rèn)磁盤I/O存在性能問題
對(duì)于隨機(jī)負(fù)載,當(dāng)遇到余下情況時(shí),我們那通常認(rèn)為存在I/O性能問題:
1. 平均讀時(shí)間大于15ms
2. 在具有寫cache的條件下,平均寫時(shí)間大于2.5ms
對(duì)于順序負(fù)載,當(dāng)遇到余下情況時(shí),我們
18、那通常認(rèn)為存在I/O性能問題:
1. 在一個(gè)磁盤上有兩個(gè)連續(xù)的I/O流
2. 吞吐量不足(即遠(yuǎn)遠(yuǎn)小于磁盤I/O帶寬)
對(duì)于一塊磁盤來講,隨著IOPS數(shù)量的增加,I/O service也會(huì)增加,并且會(huì)有 一個(gè)飽和點(diǎn),即IOPS達(dá)到某個(gè)點(diǎn)以后,IOPS再增加將會(huì)引起I/O service time 的顯著增加。
圖3.磁盤IOPS與IO service time關(guān)系圖
1OPSA5 lO^rii
19、數(shù)值。如果I0PS和吞吐量均很低,磁盤的busy%也很低,我們 會(huì)認(rèn)為磁盤壓力過小,造成吞吐量和IOPS過低;只有在I0PS和吞吐量均很低, 磁盤的busy%很高(接近100%)的時(shí)候,我們才會(huì)從磁盤I/O方面分析I/O性 通過調(diào)整AIX參數(shù)改善磁盤I/O性能 在AIX系統(tǒng)中,有關(guān)磁盤I/O性能相關(guān)的參數(shù)我們主要調(diào)整的參數(shù)如下圖:
圖4.AIX常見的磁盤I/O性能參數(shù)
Fib「日SAM 1山加殛
dynlrk
fc err recov
FCS
HDISK
RMT:SMC
num cmd e!ems
queue depth
alt pathing
max xfer
20、size
max transfer
需要注意的是,下面幾個(gè)參數(shù)的調(diào)整值,只是經(jīng)驗(yàn)數(shù)值;對(duì)于不同的應(yīng)用,不同 的場(chǎng)景,應(yīng)具體情況具體分析。
調(diào)整I/O隊(duì)列長度 queue_depth是AIX —次可以傳送到磁盤設(shè)備的命令的數(shù)量,把命令放在隊(duì)列 中再傳送給磁盤可以提高I/O性能。AIX中定義的每個(gè)磁盤在ODM庫中都有 queue_depth屬性。這個(gè)屬性限制了 AIX可以傳送到設(shè)備的最大命令的數(shù)量。
queue_depth默認(rèn)數(shù)值為4
queue_depth 4 raid level 0
將hdisk2的隊(duì)列長度從16調(diào)整為64:
:[ro口匕凰上3:
21、丄£注匕匸工-El hdis)c2 | -i queue
匕 no
已 ue_depxih 64
「T-ci-kRaLwz+w"
max_transfer 參數(shù)
這個(gè)參數(shù)的含義是,存儲(chǔ)driver可以向存儲(chǔ)發(fā)的最大的I/O。通過增加 max_transfer的數(shù)值,我們可以允許VG的LTG的數(shù)值更大。
這個(gè)參數(shù)我們可以從64M調(diào)整到128M。
[raot:@at3ni3:/] -1 hdisk2 -a irax^ttansfern0x080000 -P
bidiakE changed
{匸 ddtg曰j 1薛attr -Cl hdizkE || -i r ansi er
22、
nm_CCHnsiet I DxCi調(diào)QD口 I 血耳unupi TRAJSSrER Size Ttue
Itaoi曲t苦nl聖門■
光纖卡num_cmd_elems參數(shù)
如果是通過光纖卡連接的外置存儲(chǔ),可以考慮調(diào)整num_cmd_elems,這個(gè)參數(shù)的 作用是:controls maximum number of in-flight Ios
這個(gè)參數(shù)的默認(rèn)值為500,我們將其修改為1000:
L/] trhdfV -I ftsO -ft. uutn ctod c lemd" 100D -P
fcsO ch&UQtd
Jroot&Atan£a:/]_13attr -£1 igr
23、ep -i nuft^ctud^cittus
nu&_?rf_eLcm Xakimw of &訊皿孫 to quw to the True 光纖卡 max_xfer_size 參數(shù) :attribute also controls a DMA memory area used to hold data for transfer, and at the default is 16 MB. 這個(gè)參數(shù) 是控制DMA區(qū)域的,用于保持傳輸?shù)臄?shù)據(jù)的的區(qū)域,它的默認(rèn)值是16MB,可以 把這個(gè)數(shù)值調(diào)整成128MB,這樣光纖卡的帶寬會(huì)高一些?
[rootSatsnis: 7] chdev -1 icsO -
24、a aak zfer a izt-Ox 800000 -P
fcao changed
El 色卩-1 TEAK XfCt
mx xitrr siiti 0x800000
■ ■ 1 ■
Tranujier Sue
True
FSCSI設(shè)備
對(duì)于FSCSI設(shè)備而言,我們可以通過設(shè)置參數(shù):dyntrk和fc_err_recov來達(dá) 到路徑快速切換的目的:This sets the adapters to fast fail over and reduces the amount of time required to select a new data path.
25、
# chdev -I f4C310 -a dyntrk=ye5 fc err recov-tast fail
修改完畢以后,榮如下命令進(jìn)行確認(rèn):
# lsattr -El £scsiO
Hour chi^ adapter is CONNECTED Dymutaic Track 1 nj of TC Devices
False
True
pt cat li dyntrk
yes
±c err recov
"wr
f ast_±al^(
[FC Fabcic Event Error RECOVERY
PolicyTtuel
\sw £e class
I _
Adapter SCSI ID
FC Clasfs for F abr ic
-fal3t Ttu亡
總結(jié) 在AIX下調(diào)整磁盤I/O性能是一個(gè)相對(duì)復(fù)雜的工作,參數(shù)的數(shù)值往往是根據(jù)環(huán) 境的變化而不通。這就要求我們?cè)谑煜ご疟PI/O性能架構(gòu)的基礎(chǔ)上,靈活調(diào)整。