ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

CentOS7, スワップ領域の作成と削除。意外とOS管理で使う。

CentOS7
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。※ CentOSのロゴはcentos.orgの商標です。当サイトがCentOS公認を示すものではありません。

メモリが足りなくなったときに、HDD(SSD)の一部をメモリとして使うスワップがあります。

メモリを増設すればいいので不要だと思われがちですが、暫定措置として結構使う。

そのスワップ領域をCentOS7で作成します。いらなくなることもあるので、ついでに削除の方法も。

対象OSバージョン
CentOS7.7.1908

CentOSには公式のユーザーズガイドがありません。

インストールガイドとリリースノート、Wikiはある。)

CentOSはRed Hat Enterprise Linuxの機能を少し抜いたクローンプロジェクトです。

ユーザーズガイドはRHEL7を参考にします。

RHELは有料版でサポートつき。CentOSはOSSで無料で使える。

(サポートなし。自力で解決。)

RHELは、オラクル・データベースをサポートするなど、大規模システムに対応している。

CentOSはそれらを外すなどしているが基本機能は見劣りしない。

(OSSの組み合わせでシステム構築も可能。自力が必要で安定しないが。)

RHELとCentOSのメジャーバージョンはそろえています。

ドキュメントは、CentOS7ならRHEL7を見ます。

スワップ領域とディスク容量確認

まずは、いまのスワップ領域とディスク容量を確認しましょう。今回、スワップ領域は2Gbyte設定します。

(メモリ2~8Gでの推奨スワップサイズはメモリと同じ。)

作業はすべてrootユーザーで行います。

swap確認
free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        1.1G        188M         81M        697M        627M
Swap:            0B          0B          0B

(-hオプションはサイズが見やすいように単位表示する。)

もうひとつ、スワップファイルを確認しましょう。

swapファイル確認
cat /proc/swaps
Filename                                Type            Size    Used    Priority     0           0           0

スワップはありません。(OSのデフォルトはスワップを使っていない。)

スワップ領域を作るディスク領域は十分か確認します。

ディスク領域確認
df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         980M     0  980M    0% /dev
tmpfs            991M     0  991M    0% /dev/shm
tmpfs            991M  9.5M  981M    1% /run
tmpfs            991M     0  991M    0% /sys/fs/cgroup
/dev/sda1         15G  8.0G  7.1G   54% /
tmpfs            199M     0  199M    0% /run/user/0

(-hオプションはサイズが見やすいように単位表示。)

スワップの確認ではこれでもできます。

swapの確認
swapon -s

スワップがないので何も表示されません。

スワップファイル作成

スワップは、LVMとファイルによる2つの方法があります。今回はスワップファイルを使います。理由は、

スワップファイルのほうがかんたん。

メモリ増設も考えているので余計なことはしたくない。

LVMは、サイズ増減がかんたんにできる仮想のパーティションのようなもの。

スワップ用のディスク・パーティションも作りません。スワップファイルはrootのトップディレクトリに作ります。

スワップファイル作成

swapファイル作成
dd if=/dev/zero of=/swapfile bs=1024 count=2097152
2097152+0 レコード入力
2097152+0 レコード出力
2147483648 バイト (2.1 GB) コピーされました、 5.20771 秒、 412 MB/秒
if入力デバイス
/dev/zeroは、ファイルサイズを変えずに0詰めする。
of出力デバイス
スワップファイルを指定。
bsブロックサイズ(byte指定)
ddで作成したファイルはブロックごとに読み書きする。
countブロック数

ファイズサイズはbsとcountで決まります。

bs = 1024byte = 1M

なので、

count = 1024 × ファイルサイズ(Mbyte)

1024 × 2048 (2G) = 2097152

スワップへのマウント

次に、作成したファイルをスワップに認識させます。

mkswap /swapfile
スワップ空間バージョン1を設定します、サイズ = 2097148 KiB
ラベルはありません, UUID=***

セキュリティのためスワップファイルの権限を変更します。(rootの読み書きのみ可。)

chmod 0600 /swapfile

OS再起動でもスワップ有効化

いまのままでは、OSを再起動するとスワップの設定はなくなってしまいます。

(スワップファイルは残る。)

OS起動時にスワップを有効化する設定をします。/etc/fstabに次の1行を追加してください。

/swapfile          swap            swap    defaults        0 0

追加内容を反映させます。

systemctl daemon-reload

スワップの即時有効

OSを再起動すればスワップが有効化されますが、現実的ではありません。コマンドでファイルのスワップを有効化します。

swapon /swapfile

スワップ作成の確認

スワップが作成できたか確認します。

swap確認
free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        1.3G        107M         82M        503M        382M
Swap:          2.0G          0B        2.0G
swapファイル確認
cat /proc/swaps
Filename                                Type            Size    Used    Priority
/swapfile                               file            2097148 0       -2
swapの確認
swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file    2097148 0       -2

『ぜんぶのコマンドで確認してください』ということではありません。こういう確認方法がありますよ?ということです。

スワップの削除

スワップの削除は作成の逆の作業をします。

swapからファイルを離脱
swapoff -v /swapfile

次に、/etc/fstabから追加した行を削除して下さい。

fstabの設定反映も忘れずに。

systemctl daemon-reload

最後にスワップファイルを削除します。

rm /swapfile

恒久に使うならLVM

今回は、ずっとスワップを使うつもりがないのでファイル作成だけで済ませましたが、システムとして必要ならLVMで作った方が良いです。

(ディスク・パーティションすら作らなかった。)

くわしくは公式ドキュメントを参照してください。

RHEL7公式ドキュメント

LVM管理

スワップ領域

CentOS7, OSのシステム時刻を日本時間に変更する。タイムゾーンの変更。
次の投稿
コメントを残す

*