うちには何台かのRaspberry Piがあるのですが、そのうちの一台のスワップ領域サイズが100MBになっていました。
$ swapon -s
Filename Type Size Used Priority
/var/swap file 102396 13568 -2
「Size」の部分がスワップ領域サイズです。(単位はキロバイト)
「Used」の部分が使用量(こちらも単位はキロバイト)で、現状は13MBくらい使っている状況です。
いつからこの設定になっていたのかは定かではありませんが、これが原因で何らかのトラブルが出たことはないのでこのままでももしかしたら問題はないのかもしれません。
ただ、個人的にはスワップ領域サイズはメモリサイズの2倍程度にしておきたいので設定を変更したいと思います。
目次
設定を変更するRaspberry Piの情報
- Raspberry Pi 3 Model B Rev 1.2
- Raspbian GNU/Linux 10 (buster)
変更手順
スワップ領域サイズの変更方法はいくつかありますが、Raspberry Pi OSの場合は「dphys-swapfile」というサービスを利用することになります。
STEP
設定ファイルの修正
「/etc/dphys-swapfile」を修正します。
修正前の状態はこちらです。
# /etc/dphys-swapfile - user settings for dphys-swapfile package
# author Neil Franklin, last modification 2010.05.05
# copyright ETH Zuerich Physics Departement
# use under either modified/non-advertising BSD or GPL license
# this file is sourced with . so full normal sh syntax applies
# the default settings are added as commented out CONF_*=* lines
# where we want the swapfile to be, this is the default
#CONF_SWAPFILE=/var/swap
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=100
# set size to computed value, this times RAM size, dynamically adapts,
# guarantees that there is enough swap without wasting disk space on excess
#CONF_SWAPFACTOR=2
# restrict size (computed and absolute!) to maximally this limit
# can be set to empty for no limit, but beware of filled partitions!
# this is/was a (outdated?) 32bit kernel limit (in MBytes), do not overrun it
# but is also sensible on 64bit to prevent filling /var or even / partition
#CONF_MAXSWAP=2048
修正後の状態はこちらです。
# /etc/dphys-swapfile - user settings for dphys-swapfile package
# author Neil Franklin, last modification 2010.05.05
# copyright ETH Zuerich Physics Departement
# use under either modified/non-advertising BSD or GPL license
# this file is sourced with . so full normal sh syntax applies
# the default settings are added as commented out CONF_*=* lines
# where we want the swapfile to be, this is the default
#CONF_SWAPFILE=/var/swap
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=2048
# set size to computed value, this times RAM size, dynamically adapts,
# guarantees that there is enough swap without wasting disk space on excess
#CONF_SWAPFACTOR=2
# restrict size (computed and absolute!) to maximally this limit
# can be set to empty for no limit, but beware of filled partitions!
# this is/was a (outdated?) 32bit kernel limit (in MBytes), do not overrun it
# but is also sensible on 64bit to prevent filling /var or even / partition
CONF_MAXSWAP=2048
「CONF_SWAPSIZE」と「CONF_MAXSWAP」の値を変更しました。
STEP
サービスの再起動
設定ファイルの修正が終わったらサービスを再起動します。
sudo systemctl restart dphys-swapfile
STEP
サイズの確認
サービスの再起動が終わったら設定が反映されているかを確認します。
$ swapon -s
Filename Type Size Used Priority
/var/swap file 2097148 0 -2
無事にSizeの値が変更されました。
以上でスワップ領域サイズの変更は完了です。
まとめ
設定ファイルを修正してサービスを再起動するだけという非常に簡単な手順でスワップ領域サイズを変更することができました。
同じような問題で悩んでいる方の参考になれば幸いです。
コメント