Manjaroのswapを無効化する

先日導入した Manjaro Linux のインストール時に作成したスワップ領域を無効化します。
※スワップ領域を無効化するとメモリ使い切ったときに不安定になる or 極端に遅くなるので注意が必要。

  • インストールした PC
型番 CPU
(Passmark)
URL
MK32M/B-F Core i5-3470
(Multithread Rating: 4677)
https://support.nec-lavie.jp ... MK32MBF

2012年発売の旧型機ですが、メモリ 16GB 積んでいるので重たい作業でなければ問題なくいけます。

ただ、インストール時に設定したスワップ領域が邪魔な気配が... この PC には HDD を使用しているので、スワップを使い始めるとガリガリが半端ない。
ディスク I/O はパフォーマンスに重大な影響を与えるので、I/O させたくない... ということでスワップを無効化することにしました。

設定

スワップ現状確認

$ swapon
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition 8.8G   0B   -2

スワップ無効化

スワップ - ArchWiki
スワップは systemd によって管理されているため、次の起動時にスワップが自動的に有効化されてしまいます。

スワップをマウントしているので自動起動から解除しておきます。
( swapoff すれば解除されるけど、リブートすると戻ってしまうので)

$ sudo diff /tmp/fstab /etc/fstab 
9c9
< UUID=780b69af-dd6f-482d-949d-4680ee6cd8ce swap           swap    defaults,noatime 0 0
---
> #UUID=780b69af-dd6f-482d-949d-4680ee6cd8ce swap           swap    defaults,noatime 0 0

マスクする .swap ユニットを確認して。

$ systemctl --type swap
  UNIT                                                                      LOAD   ACTIVE SUB    DESCRIPTION                                           
  dev-disk-by\x2duuid-780b69af\x2ddd6f\x2d482d\x2d949d\x2d4680ee6cd8ce.swap loaded active active /dev/disk/by-uuid/780b69af-dd6f-482d-949d-4680ee6cd8ce

Legend: LOAD   → Reflects whether the unit definition was properly loaded.
        ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
        SUB    → The low-level unit activation state, values depend on unit type.

1 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

$ swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition 8.8G   0B   -2

マスクする。( /dev/sdb2 -> dev-sdb2

$ systemctl mask "dev-sdb2.swap"
Created symlink '/etc/systemd/system/dev-sdb2.swap' → '/dev/null'.

設定内容を確認してみる。

$ systemctl --type swap
  UNIT          LOAD   ACTIVE SUB    DESCRIPTION
● dev-sdb2.swap masked active active /dev/sdb2

Legend: LOAD   → Reflects whether the unit definition was properly loaded.
        ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
        SUB    → The low-level unit activation state, values depend on unit type.

1 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

再起動して、再度確認するとスワップが無くなっていることが確認できます。

$ sudo reboot
$ swapon
# 何も表示されない。