Linux Daily Topics

2022年6月20日 ワンライナーのお手本!? SUSEエンジニアが作成したext4のパフォーマンス改善パッチ

この記事を読むのに必要な時間:およそ 0.5 分

ext4の遅延割り当て(delayed allocation)機能は,データがディスクに書き込まれる際に複数のブロックを連続した状態で確保できることから,データのフラグメンテーションを回避し,パフォーマンス向上に大きな効果があるとされている。デフォルトではこの遅延割り当てモード(delalloc)は有効になっているが,ディスクの空き容量が不足しているときやマウントオプションを使用しているときは無効にされる(nodelalloc)ことが多い。だがdelallocを無効にすると,エクステントのマージ(連続したブロックに1つのアドレスを割り当て)が無効になり,書き込みのパフォーマンスが大幅に低下するという問題が存在する。

このdelalloc無効時のパフォーマンス低下を解決するパッチを,SUSEのソフトウェアデベロッパであるJan Karaが作成,6月16日付けでコミットされている。Karaによれば,delalloc有効時のスループットが200MB/sの場合,これを無効にすると4MB/sまでパフォーマンスが低下するが,このパッチを適用することでdelalloc無効時でもエクステントのマージを安全に実現し,パフォーマンスの低下を抑えることができるという。

 
index : kernel/git/tytso/ext4.git - Ext4 filesystem tree

ext4のパフォーマンス向上の実現に加え,EXT4_GET_BLOCKS_CREATE_UNRIT_EXTというたった1行を追加しただけの,非常にシンプルな変更であることも注目される。このパッチは現在開発中の「Linux 5.19」の次のバージョンとなる「Linux 5.20」に実装される予定だ。

著者プロフィール

階戸アキラ(かいとあきら)

起きてからまず海外ニュースサイトのハシゴをしないと1日を始められない海外ニュースウォッチャー。英語は英検準一級の資格を持ち,日本人と話すより英語圏の人のほうがウマが合う。

バックナンバー

Linux Daily Topics

バックナンバー一覧