關(guān)于DirectIO時的IO放大探究分析
大?。?/span>0.6 MB 人氣: 2017-10-10 需要積分:1
標(biāo)簽:
DirectIO時的IO放大探究2016-06-21 10:51前段時間在對我們自己開發(fā)的文件系統(tǒng)測試過程中發(fā)現(xiàn)一個有趣的現(xiàn)象:IO放大。測試現(xiàn)象描述如下:
? 現(xiàn)象1:iostat –x /dev/sdh1,觀察發(fā)現(xiàn)每秒完成的讀請求次數(shù)100+,而測試程序統(tǒng)計的實際IOPS為50,約為iostat統(tǒng)計數(shù)據(jù)的一半;
? 現(xiàn)象2:cat /sys/block/sdh1/stat發(fā)現(xiàn)測試程序運行過程中,該設(shè)備被讀的數(shù)據(jù)量為77292KB,而測試程序?qū)嶋H讀數(shù)據(jù)量為40000KB。
我們會在下面的兩個測試以及原理分析中揭示這些額外IO來自何方。
測試1:不同offset讀文件測試
測試目的
測試ext3文件系統(tǒng)元數(shù)據(jù)(索引塊)對文件讀性能影響
測試方法
順序讀數(shù)據(jù)目錄(500個1GB大小文件)所有文件,每個文件讀一次,每輪測試中讀文件offset一致,一共執(zhí)行五輪,offset分別為32KB,48KB,64KB,1GB-40KB,每輪測試之前清空緩存(echo 3 》 /proc/sys/vm/drop_caches),使用O_DIRECT方式讀,每次讀4KB。
測試結(jié)果

結(jié)論
上面的測試較為有力地解釋了ext3文件系統(tǒng)元數(shù)據(jù)(主要指索引塊)對杜性能影響。在元數(shù)據(jù)緩存未命中情況下,讀文件offset越大,產(chǎn)生額外IO越多,IOPS越低。
測試2:元數(shù)據(jù)緩存性能測試
測試目的
測試ext3文件系統(tǒng)元數(shù)據(jù)(主要指索引塊)緩存與否對文件讀性能影響
測試方法
順序讀數(shù)據(jù)目錄下所有文件(500個,每個大小為1GB),每個文件只讀一次,offset為1GB-40KB(根據(jù)計算,ext3此時使用二級間接索引)。測試共執(zhí)行兩輪,第一輪測試之前清cache,第二輪測試之前不清理cache,使用O_DIRECT方式讀,讀大小4KB。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
