次のオプションでスロー ログを有効にすると問題が発生した人はいますか。
root@(none)> show global variables like "%slow_query%";
+-----------------------------------+-------------------------------+
| Variable_name | Value |
+-----------------------------------+-------------------------------+
| slow_query_log | ON |
| slow_query_log_always_write_time | 10.000000 |
| slow_query_log_file | /var/log/mysql/mysql-slow.log |
| slow_query_log_use_global_control | |
+-----------------------------------+-------------------------------+
4 rows in set (0.00 sec)
スロー ログ クエリが 1 つもないのに、スロー ログ ファイルに同じ内容が何度もスパムされるという奇妙な問題が発生します。
Time Id Command Argument
/usr/sbin/mysqld, Version: 8.0.25-15 (Percona Server (GPL), Release '15', Revision 'a558ec2'). started with:
Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock
これらの 3 行は、1 秒あたり約 100 キロバイトで絶えずスパムされています。それだけでなく、このためレプリケーションが遅れ、マスターからの秒数が常に増加していました。/var/log/mysql ディレクトリが存在する OS ディスク (MySQL データディレクトリは別のアレイにあります) の奇妙な使用法に気付きました。おそらく、これらの役に立たないメッセージがすべてディスクにフラッシュされているのでしょう。slow_query_log を無効にすると、SBM が非常に速くドロップし始め、問題なく対応できるようになりました。
Percona MySQL にバグがあるのでしょうか。これに関する参照がどこにも見つかりません。
答え1
my.cnfまたはmy.iniに次の内容を追加することを検討してください。
min_examined_row_limit=1
スロークエリログ内の無駄なチャタリングを回避するためです。
答え2
おそらく、10 秒以上かかるクエリはないのでしょうか?
おそらく、long_query_time
デフォルトの 10 (秒) のままです。これはほとんどの場合、無駄に高い値です。たとえば、1 に下げてください。
何か起こっていませんかFLUSH LOGS
? cron ジョブを確認してください。これは自分のサイト上ですか、それともクラウド上ですか? これらが原因かもしれません。