私は最近新しいサーバー(ddを使用)でいくつかのパフォーマンステストを行いましたが、なぜ読み取りパフォーマンスが書き込みパフォーマンスよりはるかに悪いのか疑問に思いました。他のアプローチが必要ですか?
両方のテストのファイルサイズは550 GB、読み取り:秒:3704 MB / s:148
書き込み: 秒単位: 1539 MB/秒単位: 357
書き込みコマンド:
time sh -c "dd if=/dev/zero of=/local/postgresql/bigfile
bs=8k count=67108864 && sync"
読み取りコマンド:
time dd if=/local/postgresql/bigfile of=/dev/null bs=8k
bash 時間コマンド出力:
real: 61m44.335s
user: 0m12.721s
sys: 10m35.884s
Bonnie++ 結果コマンド:
bonnie++ -f -D -n 0 -u root -d /local/postgresql/
その結果、ファイルサイズはRAMサイズの2倍になります。
書く:
419918K/秒
読む:
~ 187,000K/秒
ベストアンサー1
実際にキャッシュではなくディスクに書き込んでいることを確認するには、書き込み同期フラグでパフォーマンスをテストする必要があります。conv=fdatasync
書き込みが完了した後、バッファを強制的に同期させるために使用されます。バラよりここもっと学ぶ。
time dd .... conv=fdatasync
読み取りテストの場合、テスト前にキャッシュを削除します。
flush
echo 3 | sudo tee /proc/sys/vm/drop_caches
time dd ....