Linuxでスワップファイルを作成する方法

Linux内のスワップは、仮想メモリとして予約されたディスクの特定の領域です。主に、ビデオ編集のようなリソースを多く消費するタスクを処理する際にシステムのパフォーマンスを向上させるために使用されます。システムが苦しみ始めると、カーネルはアクティブなプロセスのために作業メモリ内の空きスペースを確保するために非アクティブなプロセスをスワップに移動します。
通常、Linuxのインストール時にはスワップパーティションがデフォルトで作成され、この目的のためにハードディスク上にスペースが割り当てられます。これにはいくつかの欠点があります。例えば、古いコンピュータのハードディスクが小さい場合や、新しいデバイスでSSDを使用している場合などです。
SSDドライブの問題は、セル内の書き込み容量が限られていることです。ウェアレベリングがあっても、フラッシュメモリには有限の寿命があり、複数回の書き込みによって個々のセルが使用できなくなる可能性があります。
さらに読む: Linuxでのスワップ使用量の管理方法
代替手段は?
専用のスワップパーティションの使用が実用的でない場合や、単に代替手段を試してみたい、追加のRAMを購入したくない場合は、代わりにスワップファイルを使用することができます。
スワップファイルは、パーティションと同様の機能を持っていますが、ボリュームのサイズを変更する問題なしにユーザーがサイズを制御できるという追加の利点があります。さらに、スワップがどれだけ専用に利用されるか、つまり「スワップニス」要因もスワップ値を変更することでコントロールできます。
スワップ作成
1GBのスワップファイルを作成する基本的な例を示します。
まず、ターミナルに次のコマンドを入力してファイルを作成します:
sudo fallocate -l 1G /mnt/1GB.swapfallocateがインストールされていない場合は、より伝統的なコマンドを実行してください:
sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1024 count=1048576次に、スワップファイルをフォーマットします:
sudo mkswap /mnt/1GB.swapシステムにスワップファイルとしてスワップを追加します:
sudo swapon /mnt/1GB.swapお気に入りのテキストエディタで「/etc/fstab」を開き、この行を末尾に追加して変更を永続的にします:
/mnt/1GB.swap none swap sw 00上記の行は次のように分解されます:
- “/mnt/1GB.swap” – これはデバイスとファイル名です
- “swap” – これはマウントポイントを定義します
- “swap sw” – これはスワップファイルがswaponによってアクティブ化されることを示します
- “0 0” – これらはそれぞれダンププログラムとfsckコマンドで使用されるオプションです
この時点で、「スワップニス」値を変更したい場合は、上記と同様に「/etc/sysctl.conf」を編集して変更できます。スワップニス値は通常60です。数値が高いほど(100まで)、スワップがより攻撃的になります。
vm.swappiness=10必要なスワップ量は、システムのパフォーマンスとメモリの使用状況によって異なります。ユーザーは、自分にとって最適な値を見つけるために実験するべきです。上記の値がゼロに設定されている場合、スワップファイルはシステムがメモリを使い果たしたときのみ使用されます。ゼロ以上の値はシステムがアイドルプロセスをスワップアウトし、ディスクキャッシュ用にメモリを解放することを許可します。これにより、全体のシステムパフォーマンスが向上する可能性があります。
さらに読む: Linuxのスワップパーティションについて知っておくべきこと
最後に、スワップがアクティブであるか確認します:
sudo swapon -s再起動するだけで、スワップパーティションではなく、動作するスワップファイルを持つことができます。どちらのオプションがあなたにとって最適ですか?パーティションを使用しますか、それとも専用のファイルを使用しますか?コメントで教えてください。また、ファイルを生成するための別の方法があれば教えてください。