檔案系統效能分析

2022-05-02 22:03:13 字數 4422 閱讀 3906

一直弄不清楚的

iozone

請求大小終於清楚了,原來

iozone

中的記錄大小是由其應用層劃分的,最簡單的情形是多個

for迴圈

read

。檔案系統的讀寫速率與讀寫的檔案大小是沒有多大關係的,在寫的時候可能大檔案的在寫元資料及資料組織方面比小檔案的開銷要大,所以寫效率隨測試檔案大小的增加會有小幅度的下降。關鍵影響檔案系統效率的其實是上層的請求大小,大的檔案在應用層分為多個請求,請求的大小由應用程式決定,每次請求相當於一次中斷,需切換至核心,讀完該次請求所有的資料後該次請求才返回,從硬碟的角度看,每次讀取的資料越多,資料讀取在整個讀的過程中佔的比重越大

( 尋道時間【均值

4.6ms

】,旋轉時間【均值

3ms】,資料傳輸時間

),硬碟利用率越高,使用預讀取可以一次讀取多個連續的資料塊。

雖然io

請求越大,磁碟利用率越高,但並不是

io請求越大越好,由於應用程式緩衝區及計算機記憶體大小的限制,請求過大會造成緩衝區的頻繁飽和,導致效率降低,所以通常每次

io請求過小,過大都不能是系統效率達到最高,而是中間某個值。

以iozone

測試ext3

檔案系統的資料為例

(測試命令:

./iozone -i 0 -i 1 -rab /root/test-iozone.xls -g 16m -n 1m

)測試物件為read,re-read,write,re-write(省略了部分資料)

速率單位為:kbytes/sec,硬碟的典型速率為80mbytes/sec此處測試檔案系統效率,由於採用了緩衝機制,計算方式為讀取資料/讀取資料時間,所以效率會高於硬碟效率。

writer report48

1632

64128

256512

1024

1024

282084

317116

328090

333983

332355

333025

318504

304763

287234

2048

286313

305530

318065

322568

326951

324518

318065

304706

297149

4096

280548

297307

308852

314742

317934

316680

310774

299109

292947

8192

272331

291300

300865

306138

309564

309129

306027

293242

287267

16384

270166

289546

295990

305250

306845

307617

302466

291332

286548

re-writer report48

1632

64128

256512

1024

1024

771670

851195

883409

930894

916786

899694

861093

756848

725280

2048

703758

770203

801837

815231

836589

819196

796558

727294

685888

4096

655975

707316

742181

775621

774153

780803

756995

686321

663525

8192

641652

691832

718480

749234

763756

754465

743849

678874

642865

16384

633740

687539

726246

746522

761191

766677

737849

680540

647485

reader report

1024

1499217

1774922

1914144

1969440

2068064

2147692

1799462

1309518

1155864

2048

1458688

1719429

1851755

1896314

1986660

2013672

1763917

1247122

1059987

4096

1468138

1742237

1912315

1943027

1980661

2046975

1808253

1221566

1012140

8192

1490027

1788563

1919881

1949952

2020708

2031701

1840489

1191399

972707

16384

1513951

1827169

1939211

1995640

2067136

2113807

1886715

1216428

973614

re-reader report48

1632

64128

256512

1024

1024

1651398

2004366

2073055

2173780

2311849

2275110

1885572

1345623

1154621

2048

1564706

1873565

1996356

2068465

2133188

2275596

1858566

1281543

1049625

4096

1572412

1874752

2009857

2084478

2104910

2168407

1845153

1241965

1013095

8192

1554752

1907729

1996637

2039782

2134436

2137224

1924289

1217402

988177

16384

1586219

1889517

2022243

2024984

2121180

2172961

1895615

1227992

978801

根據write

,re-write

的比較可以看出,寫最高速率點出現在請求為

32k,

64k的情況下,並且

re-write

的效能遠高於

write

的效能,主要是

re-write

比write

少了申請塊,組織檔案,寫元資料的開銷。

由於read

不用寫元資料,所以

read

和re-read

的效能差距不大,

re-read

可能使用快取資料,故效率比

read

要高,讀最高速率點出現在

64k,128k

的情況下。

檔案系統的效率有很多因素決定,包括io請求大小,檔案系統塊大小,頁快取機制,硬碟的尋道,旋轉,讀取資料的速率,分布式檔案系統會受到更多因素的影響,應視具體情況具體分析。

檔案系統效能測試

1 衡量指標 iops 隨機小i o讀寫能力 頻寬 順序大i o連續讀寫能力 2 效能關鍵點 順序 隨機讀寫 sequential random 目錄操作 檔案建立 刪除 查詢 更新 大量小檔案讀寫 lots of small files 大檔案讀寫 large file 3 其他指標 cpu佔用率...

Linux檔案系統效能優化

由於各種的i o負載情形各異,linux系統中檔案系統的預設配置一般來說都比較中庸,強調普遍適用性。然而在特定應用下,這種配置往往在i o效能方面不能達到最優。因此,如果應用對i o效能要求較高,除了採用效能更高的硬體 如磁碟 hba卡 cpu mem等 外,我們還可以通過對檔案系統進行效能調優,來...

系統效能分析

當系統變慢時候,我們首先關注的可能是cpu的指標,有時候發現cpu使用率一點都不高,但是系統還是卡,這時可能就需要關心另外乙個影響效能的東西 磁碟的io效能。通過top命令中的 wa可以獲取系統當前的io狀態,如果該值居高不小,那磁碟的io可能就有問題了。另外可以通過iotop命令來詳細了解什麼程式...