15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntuのswap領域拡張

Posted at

背景

大学生の頃にドスパラで購入したデスクトップPC(i5(2400)/メモリ8GB)にUbuntu20.04をインストールして自宅用のメインPCにしているのだが、さすがに8年以上前から使い込んでいるため最近メモリが死んでしまった。といっても、厳密にはメモリではなくマザーボードのメモリスロット部分が死んだ。なので、メモリを買い換えれば解決するレベルではなく、マザーボードを買い替えるくらいのレベルだ(マザボ買い換えるくらいなら新しいPCを買ったほうがいい)
幸い、メモリ4スロットのうち2スロットはまだ生きており、2GB*2枚指しの4GBで起動できるので、冬のボーナスで新しいPCを買うことにして、それまではこのまま耐えることにしたのだが、さすがに4GBだとChromeを起動しながらDockerコンテナ起動したりするとSwap領域まで食いつぶしてフリーズしてしまうので、とりあえずswap領域を拡張して凌ぐことにした。

そういうわけで、OSインストール後にSwap領域を拡張する方法を備忘録の意味も兼ねて今回記事にすることにした。

Swap領域のための特殊ファイルを作成

Windowsでもそうだが、Swap領域は専用のシステムファイルで実現できるらしい。Ubuntu20.04だとswaponコマンドで確認できる。自分の環境では/swapfileがすでに存在しており、これがSwap領域として認識されているようだった。

$ swapon -s
ファイル名	タイプ		サイズ	使用済み	優先順位
/swapfile	file	2097148	1851152	-2

/swapfileがすでにあるので/swapfile2を作成してSwapファイルとして認識させる。

$ sudo fallocate -l 2G /swapfile2   # 2GBのファイルをアロケーション
$ sudo chmod 600 /swapfile2         # rootのみ読み書き可能に設定
$ sudo mkswap /swapfile2            # swap領域として設定
$ sudo swapon /swapfile2            # swap領域としてマウント
$ swapon -s
$ sudo vim /etc/fstab
$ grep swapfile /etc/fstab 
/swapfile                                none            swap    sw              0       0
/swapfile2                                none            swap    sw              0       0
$ reboot
$ swapon --show

無事にSwap領域が拡張できた。これでなんとかフリーズせずに使い続けることができるようになった。

蛇足

Swap領域のサイズって実メモリの2倍が理想って昔言われてたのを思い出したのだが、今はメモリがかなり安価に用意できるし、サーバはクラウドで設定値いじるだけで容易にメモリ増設できるようになったので、Swap領域のサイズとか全く意識しなくなっていたのだが、こういうことがあるとデフォルト値のままでなくカスタマイズしたほうがいいのかもしれないと思い直した。
にしても、最近のブラウザはメモリバカ食いしすぎだ。メモリ4GB+Swap2GBだとブラウザ使うだけでフリーズの危険があるって、WindowsXPのときはメモリ2GBで十分贅沢だと思っていたのに、インフレしすぎだよな。

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?