Raspberry Pi のメモリ圧迫の改善
目的
下の記事でRaspberry PiにMetabaseをインストールして使用していたが、ダッシュボードでグラフを3つほど載せたら動作がかなり重くなり、使い物にならず。Raspberry PiのGUIを停止してメモリの空きを作りたい。
環境
Raspberry Pi 3
Rasbian 9.11
Step1 : スワップサイズ変更
まずは、freeコマンドでメモリのスワップサイズを確認します。デフォルトのままで使用していたため100MBしかSwapサイズがありませんでした。
01 02 03 04 | pi@raspberrypi:~ $ free total used free shared buff /cache available Mem: 948304 290212 256968 13704 401124 594092 Swap: 102396 0 102396 |
スワップサイズを拡張するため、/etc/dphys-swapfileを編集します。
01 | pi@raspberrypi:~ $ nano /etc/dphys-swapfile |
今回は100から1024まで増やしてみます。(なお、nano はCtrl + oを押したのちにEnterで編集中のファイルを上書き保存できます。)
01 02 03 | # you most likely don't want this, unless you have an special disk situation #CONF_SWAPSIZE=100 CONF_SWAPSIZE=1024 |
以下のコマンドで変更した設定を適用します。
01 | sudo /etc/init .d /dphys-swapfile restart |
再度freeコマンドで適用されていることを確認します。
01 02 03 04 | 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使用率を確認します。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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 |
01 02 03 04 | 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を停止するため、以下のコマンドでブートオプションを起動します。
01 | pi@raspberrypi: /etc $ sudo raspi-config |
するとssh接続しているputtyの画面で以下が現れました。

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

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

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

Step3 : 改善結果確認
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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 |
01 02 03 04 | 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つくらいであればサクサク動くようになりました。