一般的なピーク負荷を伴うメモリを大量に消費するワークロードを使用するシステムでは、現時点では不要な大容量のメモリコンテンツを格納するために、大容量のスワップメモリが役立ちます。メモリの代わりにスワップを使用すると、パフォーマンスに大きな影響がありますが、ディスクスペースがはるかに安価であるため、マシンにメモリを追加するよりも、これが望ましい場合があります。場合によっては、単にメモリがなくなったり、空きスロットが不足している物理マシンがあったり、市場に大きなメモリモジュールがないこともあります。また、メモリ不足エラーでアプリケーションがクラッシュするよりも、ピーク負荷でのパフォーマンスが遅い方が望ましい場合もあります。
場合によっては、スワップメモリを増やす必要があります。実際の例では、マシンのメモリを拡張し、新しいメモリサイズの2倍に一致するようにスワップスペースを拡張することもできます。
このチュートリアルでは、次のことを学びます。
- スワップスペースを確認する方法。
- スワップボリュームを特定する方法。
- スワップボリュームを拡張する方法。
- 別のスワップボリュームを追加する方法。
freeコマンドでスワップサイズと使用状況を確認します。
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
lvm2-2.03.00-0.4、util-linux-2.32.1-6 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
RHEL8のスワップサイズを段階的に増やす方法
ラボのセットアップでは、スワップパーティションは論理ボリューム上にあります。 LVMはディスクスペースを処理するための非常に柔軟な方法であるため、これは最も一般的なセットアップです。 LVMチュートリアルでは、論理ボリュームマネージャーのアーキテクチャと使用法について説明しているため、lvextend
を使用する場合の詳細については説明しません。 スワップボリュームのサイズを大きくします。最初の1GBのスワップを2GBに増やします。
- スワップパーティションがどのボリュームであるかを確認する必要があります:
# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0
デフォルトでは、ボリューム名は短いホスト名で生成され、論理ボリュームを作成するときに明示的に名前を付けることができますが、ボリューム名は異なります。
この例では、パスが付いたボリューム名をメモします。パスは
/dev/mapper/rhel_rhel8lab-swap
です。 または/dev/rhel_rhel8lab/swap
。パーティションのこれら2つの名前は一見混乱するかもしれませんが、両方をリストすると、実際には同じデバイスを指すシンボリックリンクであることがわかります。# ls -al /dev/rhel_rhel8lab/swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/rhel_rhel8lab/swap -> ../dm-1 # ls -al /dev/mapper/rhel_rhel8lab-swap lrwxrwxrwx. 1 root root 7 Nov 25 18:35 /dev/mapper/rhel_rhel8lab-swap -> ../dm-1
次のステップでは、これらを同じ意味で使用します。
-
作業中は、ボリュームのスワッピングを無効にする必要があります。最初のステップで見つけた完全なボリューム名を使用します。
# swapoff -v /dev/mapper/rhel_rhel8lab-swap swapoff /dev/mapper/rhel_rhel8lab-swap
警告
本番サーバーで負荷が高く、スワップを過度に使用しているときは、スワップを無効にしないでください。このようなシナリオでは、代わりに別のスワップパーティションを追加してください。 - スワップのサイズを増やすために、スワップを保持する論理ボリュームを拡張します。この例では、ギガバイトがもう1つあります:
# lvextend -L +1G /dev/rhel_rhel8lab/swap Size of logical volume rhel_rhel8lab/swap changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents). Logical volume rhel_rhel8lab/swap successfully resized.
ファイルシステムを含む他のボリューム拡張機能の場合と同様に、論理ボリュームを保持するボリュームグループに十分な空き領域があることを確認する必要があることに注意してください。
- 拡張ボリュームでスワップを再作成します:
# mkswap /dev/mapper/rhel_rhel8lab-swap mkswap: /dev/mapper/rhel_rhel8lab-swap: warning: wiping old swap signature. Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=defca15e-a5ed-4fe8-bddd-5f11a3c76e80
- 拡張スワップボリュームでスワッピングをオンに戻します:
# swapon -v /dev/mapper/rhel_rhel8lab-swap swapon: /dev/mapper/rhel_rhel8lab-swap: found signature [pagesize=4096, signature=swap] swapon: /dev/mapper/rhel_rhel8lab-swap: pagesize=4096, swapsize=2147483648, devsize=2147483648 swapon /dev/mapper/rhel_rhel8lab-swap
- システムの変更が成功したことを常に確認することをお勧めします。この場合、
free -m
(メガバイト単位の値のメモリ情報)は、2GBのスワップがあることを示しているはずです:# free -m total used free shared buff/cache available Mem: 1989 1201 225 17 562 617 Swap: 2047 0 2047
RHEL8に新しいスワップパーティションを追加する方法ステップバイステップの説明
スワップを無効にしてサイズを大きくすることが適切でない場合は、スワップパーティションである別のボリュームを追加することで、全体的なスワップを増やすことができます。終了したら、システムに渡すだけで、必要に応じて使用を開始します。
-
LVM
を使用して新しい論理ボリュームを作成します ファイルシステムを格納する新しいボリュームが必要な場合と同じように:# lvcreate -L 1G -n swap2 rhel_rhel8lab Logical volume "swap2" created.
同じラボマシンでは、これにより、新しいパーティションのフルパス名が
/dev/mapper/rhel_rhel8lab-swap2
になります。 、/dev/rhel_rhel8lab/swap2
と同じ 。 -
mkswap
を使用してスワップを作成します :# mkswap /dev/rhel_rhel8lab/swap2 Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=a319fb8d-18b8-42b7-b6bf-cafb27aaec2b
- 新しいボリュームでスワップをオンにします:
# swapon /dev/rhel_rhel8lab/swap2
- 結果を確認します:
# free -m total used free shared buff/cache available Mem: 1989 1198 153 14 637 623 Swap: 2047 0 2047
- オペレーティングシステムが再起動後に新しいスワップパーティションを使用できるようにするには、それを
/etc/fstab
に追加する必要があります。 :# grep swap /etc/fstab /dev/mapper/rhel_rhel8lab-swap swap swap defaults 0 0 /dev/mapper/rhel_rhel8lab-swap2 swap swap defaults 0 0
2つの方法の違いは、
/proc/swaps
の内容を確認することで概説できます。 、既存のボリュームを拡張する代わりに別のボリュームを追加すると、2つのデバイスがスワッピングに使用されることがわかります。# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 1048572 0 -2 /dev/dm-2 partition 1048572 0 -3