録画サーバー運用のRaspberry Pi 3B+と4Bの決定的な違い

道具には向き不向きというのがあるのはだれもがよくご存じのことだと思います。私はRaspberry Pi 3B+でテレビ録画サーバを立てていた時があるのですが、この時に気づいたことと事実、Raspberry Pi4がスペック以上に優れているということがよく分かったという話を書き残しておきたいと思います。あくまで自分用のメモとしてって感じですが。あとはシステムの安定性などについてもよく考えるべきだなと思わされた出来事でもあったりします。録画サーバを得た経験は非常に大きなものだったなと今でも思います。前置きはこれぐらいにして軽い説明をしていきます。あらかじめ断りしておきますが、Raspbeery Piでは復号されていないスクランブルされた状態のもの(arib25でデコードは一切しておりません)しか録画していないので、法律的にも何一つ問題はありません。

目次

録画できる最大チャンネル

私は録画にPCIe用のチューナカードのPX-W3PE4を変換してRaspberry Piで使うというかなり変わったことをしています。このチューナの仕様は地デジx2チャンネル、BS/CSx2 チャンネルの合計4チャンネルの同時解録画が可能です。録画先は、NASに繋いでるHDDにしています。NASと言いながらOrange Pi3 にsambaインストールしているだけなんですけどね。

結論を書くのであれば、Raspberry Pi 3B+ではBS/CSx2が安定録画できる限界でした。地デジをそこに加えるとたまにドロップを起こしてしまいます。4チャンネル同時録画だともっとドロップを起こします。

一方のRaspberry Pi 4Bでは4チャンネル同時録画でも非常に安定していました。その違いはなんなのでしょう。そもそも新しいRaspberry Piになって変わったところと言えばSoCのBCM2711が構造が大きく変わったことが関係ありそうだと、目を付けて調べてみることにしました。

そのときのシステムパフォーマンス

大体の場合ですが、DTVにおいてドロップが起こるのは、電波の状況がよくない、つまりコンピュータ側では干渉しようがないものか、コンピュータ側が悪いかのどちらかになります。Windowsで録画されていた方なら心当たりがあるかもしれませんが、CPUリソースを使いすぎるとドロップが発生しやすいです。もとの信号が悪い説は、基本的にないものだと思っていたので(色々理由はありますが今回は関係ないので疑わなかったということで)、Raspbeery PiにCPU負荷がかかりすぎているのではないかと、つまりRapberry Piには同時録画は荷が重いんじゃないかと当時思っていたんです。当時はtmchkという便利ツールを作成していなったので、topで逐一確認していたのですが、CPU使用率は高くても250%ぐらいの表示だったので、当時は何がいけないかを突き止めるのに苦労した記憶があります。

参考までにRaspberry Pi4のシステムパフォーマンスはこんな感じでした。

基本的に20%前後なので、いくらRapberry Pi 4Bは高性能とはいえRaspbeery Pi 3B+でも問題ないことがわかると思います。一か所飛び出てるのは途中で別の作業を振ってしまったからです。

次に疑ったのはHDDだったのですが、こまめに入れ替えてるし、スピード的にも全然余裕だったのでこれも違うということになりました。

さて残る原因をいくつか考えるとチューナです。ですが、某掲示板など見る限りとても安定しているとのことで、故障でなければ基本的には問題はないはず、という結論になりました。地デジで録画してもBSで録画しても問題はなかったですし、結果的に今は安定しているのでやはりチューナの線も違うというのが正解ですね。

うーん原因としては何が考えるのだろうと、伝送路を追ってみます。イーサネットが遅い?ということも考えられたのでNASへファイルを転送してみましたが、スピードには問題はありませんでした。では何が問題なんだ…と考えていたところ、そもそもIEEEの定める規格では、100Mbpsのリンクか1Gbpsのリンクなのに実測最大値が300Mbpsはおかしくないか、ということに気づきました。

ここに答えがある気がする…と思い調べたところなんとか原因にたどり着けました。

余裕があるのにドロップ…なぜ…

簡単に言えば原因Raspberry Pi 3B+の特殊なバス設計にありました。必要な部分を切り抜いたブロックダイアグラム的なものを下に図示します。

Raspberry Pi 3B+のUSBポートとGbEの関係はこんな感じになっていて、全てUSB2.0の帯域しか持たないバス上に存在します。これで一つのファイルで帯域を使い切って実測300Mbps程度、つまり37.5MB/s程度のスピードしか出せないわけです。録画データをチューナから受け取り、それをSoCを介してGbEで送るとなると、最速でも37.5/2の約18MB/s程度のデータしかおくれません。仮に3チャンネル同時録画するときを考えると、大体7MB/s程度の帯域が必要になります。シーケンシャルの書き込みでないと相当速度が落ちるということを考えると、システムは常にそれだけのスピードを出せるとは限らないので様々な原因が重なれば帯域が足りなくなっても不思議ではありません。原因としてはI/O待ちになった分のデータを送ったりと色々考えられます。さらにもう1チャンネル加えると、10MB/s程度必要になることから、さらにドロップするという結果とも一致するため、おそらくこれが結果だったと考えて間違いないでしょう。

試しに、録画中に大きなデータを一緒にNASに送ったらシステムが不安定になりドロップも大量に出たので、これで間違いなかったということがわかりました。つまりRasberry Pi 3B+で録画する際のポイントはUSBの帯域との兼ね合いということになります。

Raspberry Piなど非力なコンピュータではCPUやメモリのリソース以外にも、I/Oなど非常に考慮するべきことも多いことを学びました。しかもRaspberry PiだとmicroSDというさらに壊れやすいものにOSを書き込んでいるわけですから、そこらへんの負荷や寿命もよく考えなければいけないなということも学びました。microSDが突然壊れて録画サーバが動かなくなったときは悲しかったですし焦りましたね…。tmchkもそこらへんを多少は考えてプログラミングしています。

ちなみにRaspberry Pi 4Bはどうなっているかというとこうなっています。

ほとんどが独立しているため、非常に速度も出ますし、安定しています。それゆえ4チャンネル同時録画でもなんら問題がないというわけです。さらにCPUの処理速度も格段に向上しているため、演算処理も余裕をもってできるわけです。

まとめ

まとめると、Rapberry Pi 3B+と4Bの決定的な違いは各ポートがバス上にあるが故に帯域に気を付けないといけないのがRaspberry Pi3B+で、CPUに余裕がある限り何も考えないでも仕様の限界まで引き出せるのがRaspberry Pi 4Bといったところです。つまりCPUの変更以上に、大きな設計変更がもたらされた恩恵が大きいのが録画サーバ運用のRaspberry Pi 4Bということですね。今買うならどれだけRaspberry Pi3系が安くてもRaspbeery Pi4がおすすめですよ。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です