2026年1月8日木曜日

Ubuntuにswapを作る話

 SSDにswap領域って固定領域にひたすら書かれるのであまり良くないイメージがあってかUbuntuをインストールした際もファイルシステムはbtrfsにしてswapは0にしていた。今回のPCはメモリが8GBのN100のマシン。まぁ普段大したことしないし十分だろという感じで。


で、しばらく使ってみたけどまーフリーズ頻発。ブラウザとちょっとアプリ開くとすぐフリーズする。REISUBしないとどうにもならなくなるので困ってる。前のマシンもfirefoxとか使ってると特になんかディスクアクセス永遠にして帰ってこなくなる現象がたまに起きて最終的にSSDがお亡くなりになったので同じ様な話なのかもしれない。


とりあえずUbuntuのwaylandではなくxorgにしても駄目、Lubuntuでも起きたという事で多分全然別の理由だろうということでやはりメモリを疑う。htopだと常時見えないのでメモリ使用量を常時監視するためにpolybarを設置し、さらにswapを作って見ることにした。


$ sudo fallocate -l 8G /swapfile

[sudo] password for hoge:

$ sudo chmod 600 /swapfile

$ sudo mkswap /swapfile

mkswap: /swapfile: warning: wiping old swap signature.

Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)

no label, UUID=d179d989-988e-46f0-a10d-fe7cf13c5547

$ sudo swapon /swapfile

swapon: /swapfile: swapon failed: Invalid argument


なんかエラーになってスワップファイルに出来ない。調べてみるとファイルシステム上に作るときはただ作るのでは駄目でファイルシステム依存で作法があるらしい。という事で今回使用しているbtrfs用の作法を


$ sudo btrfs filesystem mkswapfile --size 16G /swapfile

create swapfile /swapfile size 16.00GiB (17179869184)

$ sudo swapon /swapfile

$ swapon -s

Filename                                Type            Size            Used            Priority

/swapfile                               file            16777212        0               -2

$ swapon --show

NAME      TYPE SIZE USED PRIO

/swapfile file  16G   0B   -2


いい感じ。htopみるとちゃんとswap領域が表示されている。これで様子をみるか。

ついでに起動時にちゃんとマウントされるように/etc/fstabに下記のものを追記。


/swapfile  swap  swap  defaults 0 0


これでしばらく使って様子を見よう。しかしLinuxはしょぼい環境でも動かせるという触れ込みの事が多いけど少なくともWindowsではこんなフリーズの仕方はしないので色々考えさせられることが多い・・・。

まぁ、もう少しUbuntuを触ったらXmonadの環境構築を再開しようとは思っているのでもう少し効率よく使えるようになると思うけど。