LoginSignup
3
4

More than 5 years have passed since last update.

McAfee MySQL Audit Plugin の負荷はどれくらい?

Last updated at Posted at 2015-06-21

McAfee MySQL Audit Plugin を使うと簡単に監査ログが取れるようになる という記事で Audit の取得方法を紹介しました。が、一般的に Audit 処理は大きな負荷がかかります。

Audit プラグインを有効にすることで性能劣化はどれくらい発生するのか、検証してみました。

Audit プラグインの設定値

MySQL CLI から Audit プラグイン関連の設定値を確認します。以下の通り、ほぼインストールしたままの状態です。

mysql> SHOW VARIABLES LIKE 'audit_%';
+---------------------------------+----------------------------+
| Variable_name                   | Value                      |
+---------------------------------+----------------------------+
| audit_checksum                  |                            |
| audit_delay_cmds                |                            |
| audit_delay_ms                  | 0                          |
| audit_json_file                 | OFF                        | <- Audit 有効時は ON にする
| audit_json_file_flush           | OFF                        |
| audit_json_file_sync            | 0                          |
| audit_json_log_file             | mysql-audit.json           |
| audit_json_socket               | OFF                        |
| audit_json_socket_name          | /tmp/mysql-audit.json.sock |
| audit_offsets                   |                            |
| audit_offsets_by_version        | ON                         |
| audit_record_cmds               |                            |
| audit_record_objs               |                            |
| audit_uninstall_plugin          | OFF                        |
| audit_validate_checksum         | ON                         |
| audit_validate_offsets_extended | ON                         |
| audit_whitelist_users           |                            |
+---------------------------------+----------------------------+

ベンチマークの条件

mysqlslap を使えば簡単にベンチマークが取れます。詳しい使い方は mysqlslap で MySQL の負荷テストをする方法 - Qiita をご覧ください。

mysqlslap \
  --no-defaults \
  --concurrency=100 \
  --iterations=5 \
  --number-int-cols=2 \
  --number-char-cols=3 \
  --engine=innodb \
  --auto-generate-sql \
  --auto-generate-sql-add-autoincrement \
  --auto-generate-sql-load-type=key \
  --auto-generate-sql-write-number=1000 \
  --number-of-queries=100000 \
  --host=localhost \
  --port=3306 \
  --user=root

結果

10%~20% 程度の性能劣化 が見られました。カツカツのシステムで使う場合は注意が必要かもしれません。

Audit 無効時:

Running for engine innodb
Average number of seconds to run all queries: 15.935 seconds
Minimum number of seconds to run all queries: 15.487 seconds
Maximum number of seconds to run all queries: 16.717 seconds
Number of clients running queries: 100
Average number of queries per client: 1000

Audit 有効時:

Running for engine innodb
Average number of seconds to run all queries: 19.083 seconds
Minimum number of seconds to run all queries: 18.763 seconds
Maximum number of seconds to run all queries: 19.902 seconds
Number of clients running queries: 100
Average number of queries per client: 1000
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4