メモリ1GBのVPSでRailsアプリ2個とWordpress1個を動かしていたら、アクセスが多い時間にロードアベレージが2近くになってしまい、ターミナルでの操作がめっちゃ重くなってしまった。
top見てるとmysqlがやたらとcpuを食ってるので、久々にslowqueryを出してみる事にした。
見たいと思った時間がアクセスが多い23時台だったので、mysqlの再起動をしたくなかった。
再起動せずslowquery出す方法があったなぁと思ったけど、思いっきり忘れたので再度調べた事を備忘録しておく。
再起動せずにslowqueryを出す方法
mysqlにターミナルからログインして以下のコマンドを打つだけ。
set slow_query_log_file='/var/log/mariadb/slow.log';
set global slow_query_log=1;
set global long_query_time=1;
一旦ログアウトして再度ログインし直すと、上記の設定が反映されている事が分かる。
MariaDB [(none)]> show variables like 'slow_query%';
+---------------------+---------------------------+
| Variable_name | Value |
+---------------------+---------------------------+
| slow_query_log | ON |
| slow_query_log_file | /var/log/mariadb/slow.log |
+---------------------+---------------------------+
MariaDB [(none)]> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
そして、slowqueryは結局出ていないというオチに…。
何かやたらとapiが遅くなってたんだけど、何でかなぁ…。
コメント