[OpenXチューニング]MySQL物理データファイルのサイズ

シェアする

  • このエントリーをはてなブックマークに追加

OpenXでのMySQLチューニングの話

OpenXの場合、impressionをinsertでMySQLに記録するため
物理データファイルのサイズを小さく保つことが大事になります。

特に、インプレッションを記録する
ox_data_raw_ad_impression
テーブルのサイズが重要です。

実数はI/O性能によるので参考にしかなりませんが、
経験的にはデータファイルが800MBを超えたあたりから
急に性能が落ちてきます。

メンテナンススクリプトがテーブルをロックするので、
メンテナンススクリプトの処理時間が長いと
配信が遅延する原因になります。。。
また、データファイルが大きいと
配信自体(ox_data_raw_ad_impressionテーブルへのinsert)自体の
性能も低下する感じです。

と、いうわけで、

  1. 生データ保持期間を短くする
  2. (小さくできれば)データファイルを小さくする

という2つがポイントになります。

生データ保持期間を短くする

OpenXの管理画面で設定します。

ログイン ⇒ Administrator account ⇒ マイアカウント ⇒ 全般設定 ⇒ メンテナンス設定
集計後、統計情報の元データを削除しますか にチェック
統計情報を削除するまでの猶予期間(秒)  を設定

実際にデータが削除されるのは
メンテナンススクリプト(定期メンテナンス or 自動メンテナンス)が
実行されるタイミングです。

データファイルを小さくできるか調べる

show table statusで調査できます。
Data_freeが大きい場合、小さくする余地ありです。

mysql> show table status where name like ‘ox_data_raw_ad_impression’ \G;
データファイルを小さくする

データファイルが大きくなりすぎた場合、
PostgreSQLならVACUUMコマンドで対応しますが
MySQLの場合はOPTIMIZE TABLE句で対応します。

mysql> OPTIMIZE NO_WRITE_TO_BINLOG TABLE ox_data_raw_ad_impression;

分速80MBくらいのスローペースで、テーブルにロックがかかるので、
頻繁に実施するか/まとめて実施するかは
システムの特性にあわせて選択するのがよいと思います。

ads

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

ads