l3tnun / docker-mirakurun-epgstation

Mirakurun + EPGStation on Docker
MIT License
188 stars 99 forks source link

【質問】docker環境における録画失敗のトラブルシューティングについて #7

Closed tokohito closed 4 years ago

tokohito commented 4 years ago

環境

Issue

たまに録画が失敗するようになってしまいました。解消したいのでアドバイスをお願いします。

▼症状 ・録画中の番組が途中で分断され、2~3つのファイルに分割して保存される ・別チャンネルを並行で録画している場合、大体同じタイミングで症状が発生していることが多いが絶対に同じではない  (チャンネルAが3分割されて、裏録のチャンネルBは2分割で済んでいるケースもあり) ・分割された各ファイルに対してrecordedEndCommandはそれぞれ実行されるが、program IDなどは  最初のファイルに対してしか適用されない ・問題が発生して以降の録画予約すべてこでこの症状が発生するようなことはなく、現状では発生は偶発的

▼質問

  1. mirakurunログについて 症状から推察するにEPGStationの問題ではなくどちらかというとMirakurun側のような気がしますが、./mirakurun/以下にログのディレクトリが無く、docker shellでmirakurun logコマンドを実行してもログは出力されませんでした。docker環境でのmirakurunログの取得の仕方はどうすればよろしいでしょうか

  2. epgstationログ抑止について 定義しているルール数が多いせいで、"system - start update rule:"のログが大量に吐かれてしまい、epgstation systemログの視認性が悪くなる&過去のログがあっという間に流れてしまいます。上記のイベントだけ抑止する、もしくは総件数のサマリーログだけの出力に留めるなどの方法はありませんか?

以上、よろしくお願いいたします。

l3tnun commented 4 years ago

録画が分割する原因は分かりませんが候補を上げるなら

nasなどのネットワーク越しに録画を保存していたりしませんか?

  1. について 標準出力に吐き出しているので docker logs コンテナID で出ます

  2. について conf-manual.md を読みましょう

tokohito commented 4 years ago

コメントありがとうございます。

>標準出力に吐き出しているので docker logs コンテナID で出ます ちゃんと過去の分も遡ってみれました。ありがとうございます。

>conf-manual.md を読みましょう 見落としてました、すいません。

>nasなどのネットワーク越しに録画を保存していたりしませんか? nasではなくローカルストレージなのですが、RAIDボリューム(正確にはZFS)なのでその辺も影響あるかもしれません。

ただmirakurunログに↓がかなり出力されていたので、並列度が高すぎるのが問題かもしれません。まずはバッファを増やして様子を見たいと思います。

2020-02-06T00:18:31.526+09:00 warn: TSFilter is overflowing the buffer...

tokohito commented 4 years ago

Mirakurunのバッファとヒープサイズを拡張しても症状が出てしまったのですが、 よくよく観察すると、同じタイミングにEPGStationの書き込み先と同じZFSプールを 利用しているコピー処理がdisk IOを過剰に使ってしまっているせいでした。

コピー処理が走るブロックデバイスに対し、QoS制御をかけることで回避できるようになりました。 お騒がせしました。クローズします。