2011年からずーっとepgrecを使っています。
最近こういうのを構築するとなると、別のものになるのでしょうが、延々と使い続けて・・・。
最近番組表の表示がとても遅いのが悩みでした。
バックエンドにMysqlを使っているのは知っていたのですが、Mysqlのチューニングでなんとかならないか、と思って調査しました。
Gemini曰く、my.confに「遅いSQLをログに書き出すのが基本」とやらで、設定してみました。
[mysqld]に以下を追加。
slow_query_log = 1
slow_query_log_file = mysql_slow.log
long_query_time = 1.0
log_queries_not_using_indexes = 1
すると、/var/lib/mysql/mysql_slow.logに出るわ出るわ。。
# Query_time: 0.062533 Lock_time: 0.000104 Rows_sent: 1 Rows_examined: 23758
SELECT COUNT(*) FROM Recorder_reserveTbl WHERE complete = '0' AND program_id = '4063165';
2万4千行もそのテーブルにあるの?そりゃ遅くなるよ。。
そして速度上げる方法はないか、と素人考えで「インデックス張ればいいんじゃない?」ということで
create index reserveTbl_index on Recorder_reserveTbl ( complete, program_id );
を実行。
めっちゃ速くなった!
BuffaloのNASであるLS220Dの赤色LEDが点滅していました。。。 HDD故障だそうです。 元から入っていたのは、東芝の1TB(TOSHIBA DT01ACA1)でした。 手元にWDの2TB(WD20EARS)、4TB(WD40EZRX)、6TB(WD60EZAZ)、SeaGateの4TB(ST4000DM000)、8TB(ST8000AS0002)が あったので、後日容量アップができるのでは、と思い入れてみました。 RAID再構築をクリックしてみたら・・・ WD 2TB:「指定したメソッドに対するパラメータが不正です。」 4TB:「指定したメソッドに対するパラメータが不正です。」 6TB:リビルド成功 SeaGate 4TB:「指定したメソッドに対するパラメータが不正です。」 8TB:「指定したメソッドに対するパラメータが不正です。」 という散々な結果でした。 何がダメなんだろう?と思い返してみると、WDの6TBだけは未使用の ものでした。 ほかのHDDは入れる前にパーティション情報をWindows上で消したけど、 もしかしてMBR領域(というかHDDの先頭セクタ0)になにか情報があると ダメなのかも。 ということで、Linux機にWD 4TB(/dev/sdb)をつないで、 sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1 sudo sgdisk -Z /dev/sdb を実行してからLS220に入れました。 「破損」という表示になってしまいしたが、RAID再構築を押すと 再構築が始まった、、、、ぽい。
コメント
コメントを投稿