RasPiごにょ+NASが上手く動いていないよー? (転送速度いろいろ)
NASを(これまたRaspberryPiで)組み上げたので、そちらにテレビの録画データをどんどんつっこむように書き換えて動かしていましたが、どうもうまく録画してくれない日々が続いています。
1チャンネルだけを録画する時は問題ないんですけど、数チャンネルを同時に録ってみると、再生時に画面がまっくろだったり、音が飛び飛びだったり、場合によっては「再生できません」なんてことになったり。
せっかく録画指定してもこうなっちゃうのは悔しいもの><
どうも
データが壊れているかんじ?
なのです。
いろいろ調べてみると、2チャンネル以上同時に録画する時、後から録った番組がブロックノイズの塊になったり、音声がミギャギャギャッ!って音になってたりしてだめだめなかんじです。
今は録画マシンにRaspberryPi4+PX-Q1UDをつかって、4chの地上波を録画できるようにしています。
せっかくNASを利用しはじめたので、RasPiにつないであったHDDを使うのはやめて、SDカード上にMiracurun + Chinachu で録画をできる仕掛けを作り、NASへ自動録画するようにしてあります。(作り方は、だいたいごにょごにょシリーズの②~③ぐらい参照)
さて、動作確認をするため、
実験用スクリプト
recdvb --b25 --strip --dev 0 26 30 test26-30.m2ts &
recdvb --b25 --strip --dev 1 24 30 test24-30.m2ts &
recdvb --b25 --strip --dev 2 22 30 test22-30.m2ts &
recdvb --b25 --strip --dev 3 20 30 test20-30.m2ts &
こんなスクリプトを作ってみました。(ってただ並べただけです。いわゆるワンライナーコマンドx4ですね)
26-NHK Eテレ
24 テレビ朝日
22 TBS
20 TokyoMX
をそれぞれ30秒ずつ同時に録画する仕掛けです。
これを実行してみるとこんなかんじ
出来たデータを再生してみると……
うぼわ。やっぱりだめじゃん。
本来なら4チャンネル同時に録画できるはずなのに……
もしかして転送速度が足りない?
というわけで、
RasPi+NASのデータ転送速度チェック
をやってみます。
参考サイト:
実験用に巨大ファイルを作る
$ dd if=/dev/urandom of=GB.txt bs=64M count=16 iflag=fullblock
これで、GB.txt というファイルに1ギガバイトのランダムな内容のファイルが作られます。(けっこう時間かかります)
出来上がった GB.txt (1GBのファイル)をGB1.txt にコピーして時間を計測してみます。
時間を計るのは、単にコマンドの前に time と入れるだけでOK。
$ time cp GB.txt GB1.txt
みたいな感じですね。
この場合は、microSD(以下、SD)カード内に入っているファイルを読みだして、そのデータをSDカードに書き出しているので、Read:SD + Write:SD の時間がわかるはずです。
結果
約2分32秒。やっぱりSDカードはおっそいですね…。
SDカードからNASへコピーしてみると…
速っ! 20秒弱でコピーできちゃいました。
まさかキャッシュのせい? かと思ってもう一度SD to SDでコピー
さらに遅くなってる……w
試しに NAS to NAS でコピーをしてみると
25秒。NASからの読み込み時間+NASへの書き込み時間でもこんなものです。
とすると、SD to NASの時間もおそらくほとんどの時間はSDのReadタイムではないかとおもわれますね。そして、SD to SDで2:30~3分かかったということは、SDへのWriteタイムがかなり大きい(想像通りですが)。おそらく、1GBをSDへWriteするのは2分はかかるということでしょう。
さらに試しに、直接HDDをUSB3.0端子につないでやってみます。
はっや! 約8秒でSD to HDDの1GBコピーができました。
HDD to HDDでやってみると
およそ12秒。
NASも速いと思いましたが、直接HDDをつないだ方がさらにお速いようです。
これは……、HDDじゃなくてSSDとかつないでやってみたくなりますねえ。(でもそっちは今回のお題じゃないのでまたこんどw)
まとめると
・SD to SD 平均2分45秒 : 約6MB/sec (R:Wは、2:8ぐらいの割合?)
・SD to NAS 平均22.5秒: 約44MB/sec
・NAS to NAS 25秒 : 約40MB/sec
・SD to HDD 8秒 : 約125MB/sec
・HDD to HDD 12.44秒: 約80MB/sec
となりました。
RaspberryPiはそのシステムがそもそもSDカードに入っているため、NAS to NAS や HDD to HDDであってもSDカードに依存するボトルネックはどこかにありそうな気がします。が、まあとにかくSDカードを使っているとめちゃくちゃ遅いのよね。というある意味予想通りの結果となりました。
よろしければサポートお願いします!いただいたサポートはクリエイターとしての活動費にさせていただきます!感謝!,,Ծ‸Ծ,,