GA

2025/03/17

slow_query_log / long_query_time / log_output でどれくらい違うかベンチマークその1

TL;DR

  • 特に何の結論もまだ出ていないベンチマーク
    • スローログをテーブルに吐かせるのって現実的かどうかを見たかっただけ
  • --threads=3 なのでもうちょっと並列性を上げないと本番向きではない
  • ジェネラルログファイル吐かせるのとスロークエリログ全部吐かせるのは同じくらい性能劣化するよなあと思ってた(どっちもmutexは1つしかないから)けどこれくらいだと差はよくわからない
  • CSVストレージエンジン遅い…ファイルサイズを大きくしていくともっと遅くなるかも?

久しぶりにベンチマーク取った。

ベンチマーク元: 8 CPUスレッド / 16GB Memory
ベンチマーク先: 2 CPUスレッド / 4GB Memory / 128MB buffer_pool / 10テーブルで100MB ibd (でも実際には42MBくらいしかバッファプールに載ってないので空きページはあるはず)

コマンド:

sysbench --mysql-host=bench --mysql-user=sbtest --mysql-password="sbtest" oltp_point_select --tables=10 --threads=3 --time=300 run --report-interval=1

メトリクスとサマリ:

slow_query_log long_query_time general_log log_output oltp_point_select_QPS memo
OFF 10 OFF FILE 11228.18 なにもログ出力ない状態
OFF 10 ON FILE 10629.95 ジェネラルログファイル
OFF 10 ON TABLE 9633.38 ジェネラルログテーブル
ON 10 OFF FILE 10714.53 スローログファイル有効だけど実質何も書かない
ON 0 OFF FILE 10900.19 来たクエリ全部スローログファイル
ON 0 OFF TABLE 10279.01 来たクエリ全部スローログテーブル

左の山から順に「何もログ出力ない」「ジェネラルログファイル」「ジェネラルログテーブル」「スローログ有効だけど実質何も書かない」「全部スローログファイル」「全部スローログテーブル」

  • performance_schema的にはcsv_readとcsv_writeが載ってるっぽい。だとするとサイズが大きくなるとオーバーヘッド載る?

  • iowaitは無視できる程度

0 件のコメント :

コメントを投稿