このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】スワップ領域を操作する:mkswapコマンド swaponコマンド swapoffコマンド

mkswapコマンド swaponコマンド swapoffコマンド

 スワップ領域は、Linuxシステムにおいて物理メモリ(RAM)が不足した際にディスク領域を使用してメモリを補完するための重要なコンポーネントです。スワップ領域が適切に管理されていないと、システムのパフォーマンスが低下し、場合によってはクラッシュすることもあります。本章では、スワップ領域を作成、初期化、有効化、および無効化するための主要なコマンドであるmkswapswaponswapoffについて解説します。これらのコマンドを理解し適切に使用することで、システムのメモリ管理を効率的に行うことができます。また、スワップファイルの作成方法やアクセス権の設定など、実際の操作手順についても具体的な例を用いて解説します。

スワップ領域とは

 スワップ領域の作成はシステム管理に関連する作業であるため、rootユーザーでコマンドを実行する必要があります。スワップ領域は、物理メモリ(RAM)が不足したときに使用されるディスク領域です。

スワップ領域の作成

ddコマンドについて

 ddコマンドは、指定したサイズのファイルを作成するために使用されます。スワップファイルを作成する際にも利用されます。

# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
オプション説明使用例
if入力ファイルを指定します。if=/dev/zero
of出力ファイルを指定します。of=/tmp/swapfile
bsブロックサイズを指定します。bs=1M
count作成するブロックの数を指定します。count=1024
ddコマンド

mkswapコマンドの概要

 mkswapコマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として初期化します。

【構文】
mkswap デバイスファイル名またはファイルパス

swaponコマンドの概要

 swaponコマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として有効化します。特定サイズのファイルをスワップ領域にする場合、アクセス権が600でファイルの所有者がrootユーザーになっていないと、swaponコマンド実行時に警告メッセージが表示されます。

【構文】
swapon [オプション] [デバイスファイル名またはファイルパス]

主なオプションと説明

オプション説明使用例
-s現在のスワップ領域の状況を表示します。swapon -s
主なオプションと説明

swapoffコマンドの概要

 swapoffコマンドは、指定したデバイスファイルまたはファイルパスをスワップ領域として無効化します。

【構文】
swapoff デバイスファイル名またはファイルパス

コマンドの使用例と解説

1.rootユーザーに切り替えます。

・「su -」コマンドを実行します。

rootユーザーに切り替えるのは、システム管理操作は、通常root権限が必要だからです。

user01@ubuntu-vm:~$ su -
パスワード:
root@ubuntu-vm:~# 

2.スワップファイルを作成します。

・「dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024」コマンドを実行します。

「dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024」コマンドの解説

オプション説明
if入力ファイルを指定します(/dev/zeroはすべてのバイトがゼロの特別なファイル)。
of出力ファイルを指定します(/tmp/swapfileが出力先)。
bsブロックサイズを指定します(1MB)。
count作成するブロックの数を指定します(1024ブロックで1GBのファイル)。
コマンドの解説
root@ubuntu-vm:~# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.28609 s, 470 MB/s

3.スワップファイルをスワップ領域として初期化します。

・「mkswap /tmp/swapfile」コマンドを実行します。

root@ubuntu-vm:~# mkswap /tmp/swapfile
mkswap: /tmp/swapfile: insecure permissions 0644, fix with: chmod 0600 /tmp/swapfile
スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
ラベルはありません, UUID=b5986e9c-c897-47f2-9d1a-db831e17e97c

4.スワップファイルを有効化します。

現在有効なスワップ領域を確認します。

・「swapon -s」コマンドを実行します。

root@ubuntu-vm:~# swapon -s
Filename				Type		Size		UsedPriority
/swapfile                               file		2744316		31352		-2

作成したスワップ領域のアクセス権を600に変更します。

・「chmod 600 /tmp/swapfile」コマンドを実行します。

root@ubuntu-vm:~# chmod 600 /tmp/swapfile

スワップ領域を有効化します。

・「swapon /tmp/swapfile」コマンドを実行します。

root@ubuntu-vm:~# swapon /tmp/swapfile

有効なスワップ領域が増えていることを確認します。

・「swapon -s」コマンドを実行します。

root@ubuntu-vm:~# swapon -s
Filename				Type		Size		UsedPriority
/swapfile                               file		2744316		31352		-2
/tmp/swapfile                           file		1048572		0	-3

5.スワップ領域を無効化します。

スワップ領域を無効化します。

・「swapoff /tmp/swapfile」コマンドを実行します。

root@ubuntu-vm:~# swapoff /tmp/swapfile

追加したスワップ領域が無効化されているかを確認します。

・「swapon -s」コマンドを実行します。

root@ubuntu-vm:~# swapon -s
Filename				Type		Size		UsedPriority
/swapfile                               file		2744316		31160		-2

6.作成したスワップファイルを削除します。

・「rm /tmp/swapfile」コマンドを実行します。

root@ubuntu-vm:~# rm /tmp/swapfile

まとめ

 スワップ領域は、物理メモリが不足した際にディスク領域を使用してメモリを補完するための重要なコンポーネントです。スワップ領域を作成し、初期化し、有効化・無効化するためには、ddmkswapswaponswapoffといったコマンドを使用します。これらのツールを適切に活用することで、システムのメモリ管理を効率的に行うことができます。