9

この記事は最終更新日から1年以上が経過しています。

投稿日

Ubuntuのswap領域拡張

背景

大学生の頃にドスパラで購入したデスクトップ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で十分贅沢だと思っていたのに、インフレしすぎだよな。

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
ログインすると使える機能について
gitcho
某大手企業の社畜プログラマー C/Java/C#/JavaScript/Kotlin/Swift→現在に至る

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
新規登録
すでにアカウントを持っている方はログイン
記事投稿キャンペーン開催中
新人プログラマ応援 - みんなで新人を育てよう!
~
ChatGPTなどの活用方法を発信しよう!
~
9