10GB分のスワップ領域の拡張する方法を記述します.
/etc/fstab
にて自動的にスワップ領域を有効化する方法も記載しています.
>> スーパーユーザーなら知っておくべきLinuxシステムの仕組み
スワップ領域とは
ものすごくざっくり説明すると,
「スワップとは,システムのメモリに関連する安全性や安定性を効率的に確保するための領域」
です.
RAMとスワップ領域を合わせたものが利用可能なメモリ(仮想メモリ)となりますが,RAMの増設の代わりを担うものではありません.
スワップ領域はディスク上に構築されるため,RAMとして扱おうとしてもかなり低速になります.
下記にスワップにまつわる議論がありましたので,いくつか抜粋しています.
・「スワップ領域はシステムのメモリ不足回避のために使用されるもの」という考え方が厳密には違うようです.
Swap is not generally about getting emergency memory, it’s about making memory reclamation egalitarian and efficient. In fact, using it as “emergency memory” is generally actively harmful.
https://chrisdown.name/2018/01/02/in-defence-of-swap.html
・スワップ領域はシステムの安定性の面で確保すべき重要なものです.スワップ領域を確保しないことによる性能改善などはあまり期待できないようです.
Having swap is a reasonably important part of a well functioning system. Without it, sane memory management becomes harder to achieve.
https://chrisdown.name/2018/01/02/in-defence-of-swap.html
・ディスクに空きがある場合スワップ領域は大きければ大きいほど良いみたいです.
If you have a bunch of disk space and a recent (4.0+) kernel, more swap is almost always better than less. In older kernels
https://chrisdown.name/2018/01/02/in-defence-of-swap.htmlkswapd
, one of the kernel processes responsible for managing swap, was historically very overeager to swap out memory aggressively the more swap you had. In recent times, swapping behaviour when a large amount of swap space is available has been significantly improved. If you’re running kernel 4.0+, having a larger swap on a modern kernel should not result in overzealous swapping. As such, if you have the space, having a swap size of a few GB keeps your options open on modern kernels.
RAMサイズに依存してスワップを確保することが良いといわれることがありますが,その真偽は微妙なところですね.
>> スーパーユーザーなら知っておくべきLinuxシステムの仕組み
スワップ領域の拡張方法
現在のスワップ領域の確認
swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
スワップ用ファイルの作成
dd if=/dev/zero of=/swapfile3 bs=1G count=10
10+0 records in
10+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 7.96747 s, 1.3 GB/s
fallocate
コマンドでもファイルシステムを作成できます.こちらの方が高速です.
fallocate -l 10G /swapfile2
スワップ用ファイルの権限変更
権限を600に変更します.
chmod 600 /swapfile2
スワップ領域の作成
mkswap
コマンドで,作成したファイルにスワップ領域を作成します.
mkswap /swapfile2
Setting up swapspace version 1, size = 10 GiB (10737414144 bytes)
no label, UUID=1c414e7a-4440-4e4a-a431-7cf2079adfa6
スワップ領域の有効化
swapon /swapfile2
スワップ領域が作成されているか確認します.
swapon -s
/swapfile2が表示されていれば成功です.
Filename Type Size Used Priority
/swapfile file 2097148 345696 -2
/swapfile2 file 10485756 0 -3
スワップ領域の永続化
上記に示した設定は,再起動後にリセットされます.
再起動の度にswapon /swapfile2
コマンドで有効化する必要があります.
/etc/fstab
に下記の設定を記述すると,再起動後も自動的にスワップ領域を有効化することが出来ます.
/etc/fstab
...
/swapfile2 swap swap defaults 0 0