この記事をシェアしよう!

前回の【STEP-27】では、swap領域を既定の100MBからUSBメモリーの1.9GBに拡大することで、フリーズしてしまう限界は確かに改善できたのですが、限界内のパフォーマンスは未だ満足できるレベルではありませんでした。

そこで今回は、Raspbianに既定で設定されているRAMDISKにブラウザ ( Chromium ) のキャッシュをマウントすることでパフォーマンスの向上を図ります。

※ Raspbianのファイルシステム”tmpfs“は、厳密にはRAMDISKとは異なりますが、どちらも揮発性のRAMの一部を一時ファイルや圧縮/展開等の作業ファイルの保存場所として割り当ててファイルアクセスの高速化を図るもので、ここでは、一般的なRAMDISKという表現を使います。

現状のマウント状況確認

「LXTerminal」を起動し、コマンド”df“で、現状 ( 既定 ) のマウント状況を確認しておきます。

今回の記事に使用するRaspberry Piに接続されたストレージは、容量”60GB”のUSB接続のSSDだけで、カードスロットにmicroSDカードは挿入されていません。

コマンド”df”で得られたマウント状況の内、”/dev/sda1″と”/dev/root”がSSDの2つのパーティションを示し、その他のファイルシステム ( “devtmpfs”と”tmpfs” ) は、既定で、Raspberry Piに搭載した”1GB”のメモリーの一部を割り当てるRAMDISK内に保存されます。

“devtmpfs”と”tmpfs“のサイズを合計した”1,950MB”がメモリーの容量”1,024MB”の倍近くもあるのは、このRAMDISKがWindowsとは違って、メモリー内で物理的に固定されたパーティションで区切られている訳ではなく、それぞれの要求に対し上限値を設定した「サイズ」内で、動的に割り当てられるが、メモリーの容量内では足りなくなるとActiveでないものからswap領域に一旦、退避させるという優れた仕様になっているからなのです。

RAMDISKへのブラウザキャッシュのマウント

「LXTerminal」を起動し、コマンド”sudo nano”でマウント設定ファイル”/etc/fstab“を開きます。

GNU nano」画面が開いたら、「↓」キーでカーソルを行頭に”#”がある最初の行に移動し、「Enter」キーで1行開けて、次の4行を入力します。各文字列間は「Tab」キーで送ります。

4行目がブラウザのキャッシュをRAMDISKにマウントする記述ですが、サイズを768MBと大きく設定できたのは【STEP-27】でswap領域を1.9GBに拡大しておいたおかげです。

入力したら「Ctrl」+「O」キーで上書きし、「Enter」→「Ctrl」+「X」キーで画面を閉じます。

「LXTerminal」画面に戻ったら、”reboot”で再起動します。

再起動したら、コマンド”df“でマウント状況を確認します。

テンポラリーフォルダ”/tmp”と”/var/tmp”、Chromiumのキャッシュフォルダ”/home/pi/.cache/chromium/Default/Cache”が新たに、ファイルシステム”tmpfs”としてRAMDISKにマウントされています。

ブラウザキャッシュ移動の効果確認

「LXTerminal」をもうひとつ起動し、コマンド”vmstat“でメモリーの使用状況を確認します。

Raspbianを起動しただけの状態では、未使用のメモリーは515MBあり、swap領域もまったく使われていません。

ブラウザを起動して”You Tube”のノンストップ再生動画を1本づつ再生し、同時に5本再生します。

再び、コマンド”df“でメモリーの使用状況を表示します。

「LXTerminal」をもうひとつ起動し、コマンド”top“でシステム情報を表示します。表示された画面上にカーソルを移動してクリックし、次のトグルキーを1文字づつ入力して、表示を下の画面のように変更します。

同じ条件の【STEP-27】のときと比較すると、ブラウザのキャッシュを高速なRAMDISKで処理することでボトルネックが解消されて、CPUの能力をフルに発揮でき、swap領域への退避もよりスムーズに行われています。その結果、動画の5本同時再生が安定し、ブラウザの操作でもフリーズの恐れを感じることがなくなりました。

次回の【STEP-29】では、Raspbianのログ出力を抑制することで、SSDの延命を図る方法を紹介します。

この記事をシェアしよう!