Raspberry Pi のメモリ圧迫の改善
目的
下の記事でRaspberry PiにMetabaseをインストールして使用していたが、ダッシュボードでグラフを3つほど載せたら動作がかなり重くなり、使い物にならず。Raspberry PiのGUIを停止してメモリの空きを作りたい。
環境
Raspberry Pi 3
Rasbian 9.11
Step1 : スワップサイズ変更
まずは、freeコマンドでメモリのスワップサイズを確認します。デフォルトのままで使用していたため100MBしかSwapサイズがありませんでした。
pi@raspberrypi:~ $ free
total used free shared buff/cache available
Mem: 948304 290212 256968 13704 401124 594092
Swap: 102396 0 102396
スワップサイズを拡張するため、/etc/dphys-swapfileを編集します。
pi@raspberrypi:~ $ nano /etc/dphys-swapfile
今回は100から1024まで増やしてみます。(なお、nano はCtrl + oを押したのちにEnterで編集中のファイルを上書き保存できます。)
# you most likely don't want this, unless you have an special disk situation
#CONF_SWAPSIZE=100
CONF_SWAPSIZE=1024
以下のコマンドで変更した設定を適用します。
sudo /etc/init.d/dphys-swapfile restart
再度freeコマンドで適用されていることを確認します。
pi@raspberrypi:/etc $ free
total used free shared buff/cache available
Mem: 948304 385576 146824 13704 415904 498468
Swap: 1048572 0 1048572
Step:2 GUI停止
スワップサイズを増やしてもMetabaseの動作はあまり変わりませんでした。いっそのことGUIを停止してしまおうと思います。
まずは、現状のメモリ状況とcpu使用率を確認します。
pi@raspberrypi:/etc $ cat /proc/meminfo
MemTotal: 948304 kB
MemFree: 146104 kB
MemAvailable: 498320 kB
Buffers: 25764 kB
Cached: 379520 kB
SwapCached: 0 kB
Active: 597712 kB
Inactive: 161068 kB
Active(anon): 353784 kB
Inactive(anon): 13412 kB
Active(file): 243928 kB
Inactive(file): 147656 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 1048572 kB
Dirty: 64 kB
Writeback: 0 kB
AnonPages: 353492 kB
Mapped: 76244 kB
Shmem: 13704 kB
Slab: 23208 kB
SReclaimable: 11196 kB
SUnreclaim: 12012 kB
KernelStack: 1952 kB
PageTables: 3052 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1522724 kB
Committed_AS: 1025676 kB
VmallocTotal: 1114112 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 416 kB
CmaTotal: 8192 kB
CmaFree: 6032 kB
pi@raspberrypi:~ $ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 143244 26272 392076 0 0 40 1 80 121 3 0 96 0 0
では、さっそくguiを停止するため、以下のコマンドでブートオプションを起動します。
pi@raspberrypi:/etc $ sudo raspi-config
するとssh接続しているputtyの画面で以下が現れました。

3 Boot Optionsを選択してEnterを押します。
次にB1 Desktop/CLIを選んでEnterを押します。

その後に出てくるログイン方式の選択画面でB2 Console Autologinを選びます。(B1 Consoleでも問題ありません)

その後、最初の画面に戻るのでfinishを押すと、再起動するか聞かれますので、「はい」を選択します。

Step3 : 改善結果確認
pi@raspberrypi:~ $ cat /proc/meminfo
MemTotal: 948304 kB
MemFree: 422344 kB
MemAvailable: 647616 kB
Buffers: 16476 kB
Cached: 261696 kB
SwapCached: 0 kB
Active: 372692 kB
Inactive: 119840 kB
Active(anon): 214656 kB
Inactive(anon): 11984 kB
Active(file): 158036 kB
Inactive(file): 107856 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 1048572 kB
Dirty: 40 kB
Writeback: 0 kB
AnonPages: 214484 kB
Mapped: 34672 kB
Shmem: 12264 kB
Slab: 18724 kB
SReclaimable: 8740 kB
SUnreclaim: 9984 kB
KernelStack: 1096 kB
PageTables: 1304 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1522724 kB
Committed_AS: 342668 kB
VmallocTotal: 1114112 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 416 kB
CmaTotal: 8192 kB
CmaFree: 6032 kB
pi@raspberrypi:~ $ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 421612 16540 270604 0 0 322 2 112 106 18 2 80 1 0
メモリは割と改善されました。Metabaseの動きも体感ではかなり改善され、グラフ3つくらいであればサクサク動くようになりました。