見出し画像

CPU速度はファイルアクセス性能に影響するか?

CPU速度(クロックレート)とファイルアクセス性能の関係を調べました.

調査趣旨

CPU速度はファイルアクセス性能にどの程度影響するのか調査しました.

結論

傾向としては、ファイルデータがHDDから読まれる場合は影響がほぼなく、DRAM(ページキャッシュ)から読まれる場合は影響があると言えます.
アクセス時間がより短いSSDやNVRAMだと結論は変わります.

調査方法

CPUクロックレートを変えて,fioでIO性能を測定しました.

環境

CPU: Intel Core i7-3770 CPU @ 3.40GHz.4 cores,8 threads,ベース周波数 basic clock rate 3.40 GHz
CPUクロックレート: 1.6GHz-3.4GHz
OS: Ubuntu 20.04.3 LTS, desktop, Linux 5.15.25
Memory: 16 GB
HDD: Hitachi Deskstar 7K1000.C
Filesystem: Ext4

結果: random read (1B)

CPUクロック周波数と1バイトランダムシャルリード性能の関係.

[job]
rw=randread
size=1t
filename=/tmp/abc
filesize=16g
runtime=600
direct=0
bs=1
CPUクロックレートと ランダムシーケンシャルリード性能(bs=1B)

CPUクロックレートとファイルアクセス性能はほぼ関係ありません.
1操作(operation)あたり約8.2msの時間を要しています.
この様に時間が長い処理の場合,CPU処理速度はほぼ影響がないと言えます.
この計測では,ほぼ毎回HDDに物理的にアクセスしていると予想されます.

結果: random read (1KB)

CPUクロック周波数と1バイトランダムシャルリード性能の関係.

[job]
rw=randread
size=1t
filename=/tmp/abc
filesize=16g
runtime=600
direct=0
bs=1k
CPUクロックレートと ランダムシーケンシャルリード性能(bs=1KB)

全く相関がない

結果: sequential read (1B)

CPUクロック周波数と1バイトシーケンシャルリード性能の関係.
(注意:通常 シーケンシャルリードは大きなブロックサイズで行います)

[job]
size=1t
filename=/tmp/abc
filesize=16g
runtime=600
direct=0
bs=1
CPUクロックレート と シーケンシャルリード性能(bs=1B)

かなり強い相関です.
この計測では,先読みが機能してほぼ毎回ページキャッシュ(DRAM)から読み込んでいると思います.
1.6GHzの場合,1操作(operation)あたり約2.1μsの時間を要しています.
3.4GHzの場合,1操作(operation)あたり約1.0μsの時間を要しています.
この程度の短い処理の場合、CPU処理速度がファイルアクセス性能に影響を与えるようです.

結果: sequential read (1KB)

[job]
size=1t
filename=/tmp/abc
filesize=16g
runtime=600
direct=0
bs=1k
CPUクロックレート と シーケンシャルリード性能(bs=1KB)

かなり相関が弱い

結果: sequential read (1B~1KB)

BSを1Bから1KBに順に増やして行きました.
64B以下では相関が見られ,256B以上では観られませんでした.

CPUクロックレート と シーケンシャルリード性能(bs=1B~1KB)
CPUクロックレート と シーケンシャルリード性能(bs=1B~1KB)
3.4GHz時のBWを1とし,各レートにおけるBW


この記事が気に入ったらサポートをしてみませんか?