私は数週間でプレゼンテーションを行います。このデモの一部は、スロークエリログの使用を含む、mysqlの基本的なトラブルシューティング用です。データベースを生成してアプリをインストールしましたが、データベースはクリーンであるため、十分な問題を生成することは困難です。
スロークエリログでクエリを取得するために、次のことを試しました。
遅いクエリ時間を1秒に設定します。
複数のインデックスを削除しました。
システムに重点を置いた:
stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m
Wgetを使用していくつかの基本的なWebページ呼び出しをスクリプト化しました。
これはどれも遅いクエリを生成していません。問題を生成するためにデータベースに人為的にストレスをかける別の方法はありますか?複雑なJmeterやその他の負荷ジェネレーターを作成するのに十分なスキルがありません。おそらく、mysqlに組み込まれた何か、またはストレスを超えた別のLinuxトリックを期待しています。
チェックアウト mysqlslap 。 --queryを使用してウェブアプリのクエリの1つを渡し、-concurrencyを使用して同時クライアントを指定できます。
完全に人工的ですが、sleep()
関数を使用できます。
select sleep(10);
ログ:
Time Id Command Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);
おそらく、データベースのデチューニングが役立つでしょうか?たとえば、key_buffersサイズを減らしますか?