スワップ領域とは―centos7のswap拡張方法(mkswap、swaponコマンド)
技術情報
作業PC内のテスト環境など少ないリソース環境でメモリが不足する場合があります。その際の対処方法の1つにスワップの拡張があげられます。スワップ領域とは何か、centos7のswap拡張方法(mkswap、swaponコマンド)について解説しています。
目次
この記事の目次です。
1. swap(スワップ)領域とは
2. Linuxのswap領域のサイズの確認方法
3. Linuxのswap領域の推奨サイズ
4. swap領域拡張の例
5. mkswapコマンド
6. swaponコマンド
1. swap(スワップ)領域とは
swap(スワップ)領域とは、メモリを実際よりも大きくするために使用するファイルシステム上の領域のことをいいます。 コンピュータでは、実際の実メモリとスワップ領域を組み合わせた仮想メモリをメモリとして使用します。 実メモリが不足したときに、一時的にメモリの内容を書き込んでおくファイルをスワップファイル、スワップ領域といいます。
2. Linuxのswap領域のサイズの確認方法
swaponコマンド、freeコマンド、meminfoファイル、topコマンドなどで、Linuxのswap領域のサイズの確認できます。
swaponコマンドでLinuxのswap領域のサイズを確認する例
以下は、swaponコマンドでLinuxのswap領域のサイズを確認する例です。
$ swapon -s Filename Type Size Used Priority /dev/dm-1 partition 4063228 0 -2
freeコマンドでLinuxのswap領域のサイズを確認する例
以下は、freeコマンドでLinuxのswap領域のサイズを確認する例です。
$ free | grep Swap Swap: 4063228 0 4063228
meminfoファイルでLinuxのswap領域のサイズを確認する例
以下は、meminfoファイルでLinuxのswap領域のサイズを確認する例です。
$ cat /proc/meminfo | grep Swap SwapCached: 0 kB SwapTotal: 4063228 kB SwapFree: 4063228 kB
topコマンドでLinuxのswap領域のサイズを確認する例
以下は、topコマンドでLinuxのswap領域のサイズを確認する例です。
$ top | grep Swap KiB Swap: 4063228 total, 4063228 free, 0 used. 2589404 avail Mem
3. Linuxのswap領域の推奨サイズ
Linuxのswap領域の推奨サイズは以下です。
RAM容量 | 推奨サイズ |
---|---|
2GB以下 | RAM容量の2倍 |
2GB~8GB | RAM容量と同じ |
8GB以上 | 最低4GB |
4. swap領域拡張の例
スワップ領域拡張の例です。 Linuxのスワップ領域のサイズをmkswap、swaponコマンドを使用して拡張する手順をまとめています。
例では、swapfileaddというファイル名の2Gのスワップを追加しています。 名前を変更すれば、もう2G追加というように行えます。 この手順はLinux全般で使える手順です。 CentOS7の実施例になっていますが、Amazon Linuxなどでも実績があります。
スワップファイル(swap領域拡張に使用するファイル)作成
swap領域拡張に使用するファイル作成します。 このファイルはスワップファイルともいいます。 少し時間がかかる場合があります。
# dd if=/dev/zero of=/swapfileadd bs=1024K count=2048 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 182.299 s, 11.8 MB/s
スワップファイルのアクセス権限設定
作成したスワップファイルのアクセス権限を設定します。
# chmod 600 /swapfileadd
スワップファイルをフォーマット
mkswapコマンドで、作成したスワップファイルをフォーマットします。
# mkswap /swapfileadd Setting up swapspace version 1, size = 2097148 KiB
ファイルをスワップ領域に追加
swaponコマンドで、ファイルをスワップ領域にスワップファイルを追加して、スワップ領域のサイズを拡張します。
# swapon /swapfileadd
スワップ領域のサイズが拡張されたか確認
swaponコマンドで、スワップ領域のサイズが拡張されたか確認できます。
# swapon -s Filename Type Size Used Priority /swapfileadd file 2097148 0 -1
/etc/fstabの設定
CentOS7の起動時に自動でスワップが追加されるよう/etc/fstabに設定をします。
#vi /etc/fstab : /swapfileadd swap swap defaults 0 0
さらにスワップ領域を追加したい場合
上記手順のswapfileaddを別名に変更すれば、再度追加できます。
5. mkswapコマンド
以下は、mkswapコマンドのユーセージになります。
device引数は、通常はディスクパーティション(/ devの/ sdb7のようなもの)になりますが、ファイルすることができます。 LinuxカーネルはパーティションIDを見ていませんが、多くのインストールスクリプトは、前提としていますそのヘクスのパーティション タイプ82(LINUX_SWAP)はスワップパーティションであることを意味しています。 (警告:Solarisのもこのタイプを使用しています注意しないこと。 Solarisのパーティションを殺すために。) サイズパラメータは不必要であるが、後方互換性のために残さ。 (これは、所望のサイズを指定します 1024バイトのブロック内のスワップ領域。それが省略された場合ます。mkswapはパーティション全体またはファイルを使用します。指定 それは賢明ではありません - タイプミスはあなたのディスクを破壊する場合があります)。 スワップ領域を作成した後、あなたはそれを使用して開始するにはswaponコマンドが必要です。通常に記載されている領域をスワップ の/ etc / fstabに、彼らはいくつかのブートスクリプト内のコマンドの-aのswaponにより、ブート時に使用されるように撮影することができますように。 -c、--check (それはブロックデバイスである場合)スワップ領域を作成する前に不良ブロックするための装置を確認してください。任意の悪い場合 ブロックは、カウントが印刷され、発見されました。 -f、--force コマンドは愚かであっても、先に行きます。これは、ファイルよりもスワップ領域の作成が大きいことができます または、それが常駐するパーティション。 また、このオプションを使用せずに、ます。mkswapはパーティションを持つデバイス上の最初のブロックを消去することを拒否しますトゥイーター BLE。 -L、--labelラベル ラベルではswaponを可能にするために、デバイスのラベルを指定します。 -p、--pagesizeサイズ 使用するページサイズ(バイト単位)を指定します。このオプションは通常不要です。ます。mkswapはサイズを読み取り カーネルから。 -U、--uuid UUID 使用するUUIDを指定します。デフォルトでは、UUIDを生成することです。 -v、--swapversion 1 スワップ空間のバージョンを指定します。古い-v 0オプションになっているように(このオプションは、現在無意味です 廃止されたと今だけ-v 1がサポートされています。カーネルは、以来、V0スワップ空間のフォーマットをサポートしていません 2.5.22(2002年6月)。新しいバージョンv1が2.1.117(1998年8月)以降でサポートされています。) -h、--help ヘルプの表示テキストと終了します。 -V、--version バージョン情報を表示して終了。
6. swaponコマンド
以下は、swaponコマンドのユーセージになります。
swaponコマンドは、ページングとスワッピングが起こるようにされているデバイスを指定するために使用されます。 使用するデバイスまたはファイルがspecialfileパラメータで指定されています。これは、フォーム-Lラベルまたは-UのUUIDへのものであってもよいです ラベルまたはUUIDによってデバイスを示しています。 pag-ように、すべてのスワップ・デバイスを利用できるようにするシステムのブートスクリプトで発生し、通常はswaponの呼び出し るとスワッピングの活動は、複数のデバイスやファイル間でインターリーブされます。 するswapoffは指定されたデバイスやファイルのスワッピングを無効にします。 -aフラグが指定された場合、スワッピングが無効になっています (は/ proc /スワップまたは/ etc / fstabに見られるような)すべての既知のスワップデバイスやファイルに。 -a、--all ``スワップ」としてマークされたすべてのデバイス ''の/ etc / fstabには、 `` noautoを持つものを除き、利用可能になります」 オプション。すでにスワップとして使用されているデバイスは、黙ってスキップされます。 -d、--discard [=ポリシー] スワップバッキングデバイスが廃棄またはトリム操作をサポートしている場合、スワップ破棄を有効にします。これはよいです いくつかのソリッドステートデバイスでのパフォーマンスを向上させるが、しばしばそれはしていません。オプションは1つが選択できます --discard =一度シングルタイム廃棄操作を実行するには、次の2つの利用可能なスワップ破棄ポリシーの間 swaponコマンドで全体のスワップ領域のため、彼らは前に解放されたスワップページを廃棄するか、--discard =ページ スワップながら、再利用されます。ポリシーが選択されていない場合、デフォルトの動作は有効両方破棄することです タイプ。の/ etc / fstabに、オプションは破棄マウント一度=破棄、または=ページを有効にするためにも使用されてもよい捨てます フラグを破棄します。 -e、--ifexists サイレント存在しないデバイスをスキップします。の/ etc / fstabにもスキップするために使用することができるオプションのnofailマウント デバイスの存在しません。 -f、--fixpgsz 再初期化(幹部/ sbinに/ます。mkswap)スワップ空間のページサイズは、現在のものと一致しない場合 カーネルを実行しています。ます。mkswap(2)は、装置全体を初期化し、不良ブロックをチェックしません。 -h、--help ヘルプを提供。 -Lラベル 指定されたラベルを持つパーティションを使用してください。 (このために、/ procの/パーティションへのアクセスが必要となります。) -p、--priorityの優先順位 スワップデバイスの優先順位を指定します。優先順位は-1と32767より高い数値の間の値であります 高い優先度を示しています。スワップ優先順位の完全な説明については、swapon(2)を参照してください。にPRI =値を追加します。 swaponコマンドの-aで使用するための/ etc / fstabファイルのオプションフィールド。優先順位は-1にそれをデフォルト値を定義されていないとき。 -s、--summary デバイスによる表示スワップの使用量の要約。 "猫の/ proc /スワップ」に相当します。 Linuxの前には使用できません 2.1.25。 --show【コラム、コラム] --summary出力のように定義可能なデバイステーブルを表示します。列リストのために--helpの出力を参照してください。 --noheadings --show出力を表示するときに見出しを表示しません。 --rawは、表の列を整列させることなく、出力を--show表示します。 --bytes 代わりに、ユーザーフレンドリーなサイズとユニットの--show出力でバイト単位で表示スワップサイズ。 -U UUIDが使用します 指定されたUUIDを持つパーティション。 -v、--verbose 冗長に。 -V、--version バージョン情報を表示します。
更新履歴
更新履歴になります。
- 2022/5/16 Linuxのswap領域のサイズの確認方法について追記しました。
- 2022/3/11 Linuxのswap領域の推奨サイズについて追記しました。
- 2021/10/17 記事をアップしました。