2015年8月19日水曜日

Voyage MPD 0.10.0 でtmpfsが溢れる Overflowing tmpfs on Voyage MPD 0.10.0

Voyage MPD 0.10.0 をインストールして,それ自体はちゃんと動くのだが,データベースが破壊されることが何度かおこった.ログインしてみると,tmpfsが使用率100%になっていて,データベースを置くことができなくなっている.データベースは tmpfs 上で参照・使用されるのだが,シャットダウン時に tmpfs 上から HDD 上にコピーされ,起動時に復元されるようになっている.その復元ができない模様.

I installed Voyage MPD 0.10.0.  It works but the collapse of the database repeatedly occured.
This is caused by 100% usage of tmpfs.  The database is operated on tmpfs.  When shutting down, it is copied to HDD and when booting, the copied database is again recovered to tmpfs.  The 100% usaage of tmpfs disrupts the recovery.

あれこれ原因を調べていたところ,問題は mpd のログファイル (/var/log/mpd/mpd.log) であることがわかった.これがすさまじい勢いで増えていき (毎秒10行以上のログが増える),500MBある領域を1日ほどで食いつぶしてしまう.

After some investigation, I found that the log file of mpd (/var/log/mpd/mpd.log) causes the problem.  It increases surprisingly fast and tmpfs overflows.

ということで,その対策.
Here's the solution.


mpd のログレベルは /etc/mpd.conf で設定できる (log_level) が,mpd.conf の中では # でコメントアウトされているので,デフォルトになるはず.一方,mpd を起動する /etc/init.d/mpd スクリプト中では,明示的に --verbose を付けて起動している.mpd の man ページにも,

"verbose" records excessive amounts of information for debugging purposes

と書いてあるので,通常使用時には "default" でよさそうである.ということで,/etc/mpd.conf の log_level の # を外し,"default" で有効にしたところ,ログファイルには再生が終了した曲情報などに限定されるようになり,無意味な肥大化は止まった.

The log level of mpd can be defined in /etc/mpd.conf (log_level setting).  In the original /etc/mpd.conf file, the corresponding line is commented-out.  This means that the log level is "default".  On the other hand, /etc/init.d/mpd script starts mpd explicitly with "--verbose" option at booting.  mpd man page says:

"verbose" records excessive amounts of information for debugging purposes

so at least unless trouble shooting, the "default" log_level is preferred.
I modified /etc/mpd.conf to explicitly enabling the log_level line (only by deleting # at the beginning).

ただ,Voyage MPD 0.9.5 でも log_level はコメントアウトされていて,/etc/init.d/mpd でも --verbose を入れて起動になっているのに,defaultレベルのログしか出ていない.
Voyage MPD 0.10.0 では mpd が 0.19.9 になっている (Voyage MPD 0.9.5 の mpd は 0.17.6) ので,その辺の設定の優先順位等が変わったのかもしれない.

This problem does not occur on Voyage MPD 0.9.5, where the settings of /etc/mpd.conf and /etc/init.d/mpd are the same and "default" level logs are recorded.
The version of mpd itself is 0.19.9 for Voyage 0.10.0 and 0.17.6 for Voyage 0.9.5.  The priority of command options and conf file settings may changed, although I did not confirmed that.



0 件のコメント:

コメントを投稿