Rocky Linux 9にスワップスペースを追加する方法
以下の内容を日本語で言い換えてください、オプションは一つだけで構いません:
イントロダクション
アプリケーションのメモリ不足エラーに対処する方法の一つは、サーバーにスワップスペースを追加することです。このガイドでは、Rocky Linux 9 サーバーにスワップファイルを追加する手順を説明します。
スワップとは何ですか?
スワップは、オペレーティングシステムがRAMに保持できなくなったデータを一時的に保存するために予約されたハードドライブストレージの一部です。これにより、サーバーが作業メモリに保持できる情報量を増やすことができますが、いくつかの注意点があります。ハードドライブ上のスワップスペースは、使用中のアプリケーションデータを保持するためのRAMのスペースが不足している場合に主に使用されます。
ディスクに書き込まれる情報は、RAMに保持される情報よりもかなり遅くなりますが、オペレーティングシステムはメモリ内で実行されているアプリケーションデータを優先し、古いデータにはスワップを使用します。全体的に、システムのRAMが不足した場合にバックアップとしてスワップスペースを持つことは、非SSDストレージが利用可能なシステムにおいて、メモリ不足によるエラーに対する安全装置となります。
ステップ1 – スワップ情報をシステムで確認する
始める前に、システムにスワップスペースが既に利用可能かどうか確認できます。複数のスワップファイルやスワップパーティションを持つことも可能ですが、通常は1つあれば十分です。
「システムに設定されたスワップがあるかどうかは、入力することで確認できます。」
- sudo swapon –show
もし何も出力が得られない場合、それは現在あなたのシステムにスワップスペースが利用できないことを意味しています。
フリーユーティリティを使用して、アクティブなスワップが存在しないことを確認できます。
- free -h
total used free shared buff/cache available Mem: 1.7Gi 173Mi 1.2Gi 9.0Mi 336Mi 1.4Gi Swap: 0B 0B 0B
出力のスワップ行をご覧いただくと、システム上でアクティブなスワップはありません。
ステップ2 – ハードドライブのパーティションに利用可能なスペースを確認します。
スワップファイルを作成する前に、現在のディスク使用量をチェックして十分なスペースがあるか確認します。次のコマンドを入力してください。
- df -h
Filesystem Size Used Avail Use% Mounted on devtmpfs 855M 0 855M 0% /dev tmpfs 888M 0 888M 0% /dev/shm tmpfs 355M 9.4M 346M 3% /run /dev/vda1 59G 1.4G 58G 3% / /dev/vda2 994M 155M 840M 16% /boot /dev/vda15 100M 7.0M 93M 7% /boot/efi tmpfs 178M 0 178M 0% /run/user/0
Mounted on列にあるデバイスは、この場合、私たちのディスクです。この例では、十分な空き容量があります(使用済み1.4Gのみ)。あなたの使用状況はおそらく異なるでしょう。
スワップスペースの適切なサイズについてはさまざまな意見がありますが、個人の好みやアプリケーションの要件によって実際のサイズは異なってきます。一般的には、システムのRAM量と同じかその2倍程度のスワップスペースを設定することが良い出発点です。また、RAMの代替として利用する場合、4GB以上のスワップスペースはおそらく不要です。
ステップ3 – スワップファイルの作成
私たちの使用可能なハードドライブ容量がわかったので、ファイルシステム上にスワップファイルを作成することができます。私たちは、ルート(/)ディレクトリにswapfileという名前のサイズを指定したファイルを割り当てます。
スワップファイルを作る最も良い方法は、fallocateプログラムを使用することです。このコマンドは、指定したサイズのファイルを即座に作成します。
私たちの例のサーバーは2GのRAMを持っているため、このガイドでは2Gのファイルを作成します。ご自身のサーバーの要件に合わせて調整してください。
- sudo fallocate -l 1G /swapfile
「適切なスペースが予約されていることを確認するには、入力することで検証できます。」
- ls -lh /swapfile
- -rw-r–r–. 1 root root 2.0G Sep 13 17:52 /swapfile
私たちのファイルは、適切なスペースが確保された状態で作成されました。
Step 4 – スワップファイルの有効化
私たちには適切なサイズのファイルが利用できるため、実際にこれをスワップ領域に変換する必要があります。
最初に、ファイルの許可をロックダウンする必要があります。これにより、root権限を持つユーザーのみが内容を読むことができるようになります。これにより、一般ユーザーがファイルにアクセスできなくなり、重大なセキュリティ上の問題が回避されます。
「ルートユーザーのみがアクセス可能なように、次のコマンドを入力してください。」
- sudo chmod 600 /swapfile
次のように入力して、権限の変更を確認してください:
- ls -lh /swapfile
-rw——- 1 root root 2.0G Sep 13 17:52 /swapfile
見ての通り、読み取りと書き込みフラグはルートユーザーのみ有効になっています。
「タイプすることで、ファイルをスワップ領域としてマークできます。」
- sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=585e8b33-30fa-481f-af61-37b13326545b
ファイルに印を付けた後、スワップファイルを有効にすることで、システムがそれを使用し始めることができます。
- sudo swapon /swapfile
打ち込んでスワップが利用可能か確認してください。
- sudo swapon –show
NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2
私たちは、私たちの調査結果を裏付けるために、無料のユーティリティの出力を再度確認することができます。
- free -h
total used free shared buff/cache available Mem: 1.7Gi 172Mi 1.2Gi 9.0Mi 338Mi 1.4Gi Swap: 2.0Gi 0B 2.0Gi
私たちのスワップは成功裏に設定され、必要に応じてオペレーティングシステムが使用を開始します。
ステップ5 – スワップファイルを永久化する方法
最近の変更により、現在のセッションでスワップファイルを使用できるようになりました。ただし、再起動するとサーバーは自動的にスワップ設定を保持しません。この問題を解決するために、/etc/fstabファイルにスワップファイルを追加することができます。
何か問題が発生した場合に備えて、/etc/fstab ファイルのバックアップを取ってください。
- sudo cp /etc/fstab /etc/fstab.bak
「swapファイルの情報を/etc/fstabファイルの末尾に追加するために、以下のコマンドを入力してください。」
- echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
次に、スワップスペースを調整するために更新できるいくつかの設定を確認します。
ステップ6 – スワップ設定の調整
スワップに関連するいくつかの設定オプションがあり、システムのパフォーマンスに影響を与える可能性があります。
スワッピングのプロパティの調整
スワッピネスパラメータは、システムがRAMからデータをスワップスペースに定期的に移動する頻度を設定します。これは0から100までの値で、パーセンテージを表します。
値がほぼゼロに近い場合、カーネルはデータをディスクにスワップすることは必要最低限に抑えられます。スワップファイルとのやり取りは「負荷が高い」と言えるため、RAMとのやり取りよりも長い時間がかかり、性能の著しい低下を引き起こす可能性があります。システムに対してスワップをあまり頼らないように指定することは、一般的にはシステムを高速化することに繋がります。
100に近い値の場合、より多くのデータをスワップに格納し、RAMの空きスペースを確保しようとします。アプリケーションのメモリのプロファイルやサーバーの使用目的によっては、場合によってはこれが良い場合もあります。
「現在のswappiness値は、次のように入力することで確認できます。」
- cat /proc/sys/vm/swappiness
60
デスクトップでは、swappiness設定を60にすると良いですね。サーバーの場合は、0に近づける方が良いかもしれません。
sysctlコマンドを使用して、swappinessの値を別の値に設定することができます。
たとえば、スワッピネスを10に設定する場合、以下のように入力することができます。
- sudo sysctl vm.swappiness=10
vm.swappiness = 10
次の再起動まで、この設定は維持されます。/etc/sysctl.confファイルに行を追加することで、再起動時にこの値を自動的に設定できます。
Rocky Linux 9に付属するデフォルトのテキストエディタはviです。viは非常にパワフルなテキストエディタですが、経験がないユーザーにとってはやや分かりにくいかもしれません。Rocky Linux 9サーバーでの設定ファイルの編集を容易にするために、nanoのようなより使いやすいエディタをインストールすることを検討するかもしれません。
- sudo dnf install nano
今やsysctl.confファイルを編集するためにnanoを使用することができます。
- sudo nano /etc/sysctl.conf
下部には、追加できます。
以下の文を日本語で言い換えると、
「/etc/sysctl.conf」
vm.swappiness=10
作業が終わったら、ファイルを保存して閉じてください。nanoを使用している場合は、CTRL + Xを押して保存してから、プロンプトが表示されたら、Yを押してEnterを押します。
キャッシュプレッシャーの設定を調整する
変更してみたい関連する値のもう一つは、vfs_cache_pressureです。この設定は、システムが他のデータよりもinodeとdentryの情報をキャッシュすることを選択する度合いを設定します。
ファイルシステムに関するアクセスデータです。これは一般的に検索に非常にコストがかかり、非常に頻繁にリクエストされるため、システムがキャッシュするのに最適なものです。procファイルシステムを再度クエリすることで、現在の値を確認することができます。
- cat /proc/sys/vm/vfs_cache_pressure
100
現在のシステム設定では、キャッシュからinode情報があまりにも早く削除されています。これを50のようなより保守的な設定に変更することができます。以下のように入力して設定を変更します。
- sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
再度言いますが、これは現在のセッションにのみ適用されます。swappinessの設定と同じように、設定ファイルに追加することで変更できます。
- sudo nano /etc/sysctl.conf
一番下に、新しい値を指定する行を追加してください。
vm.vfs_cache_pressure=50
作業が終わったら、ファイルを保存して閉じてください。
結論
このガイドに従うことで、通常はメモリ不足につながる可能性がある状況においても余裕を持てるようになります。スワップ領域はこれらの一般的な問題を回避するために非常に役立つことがあります。
もしメモリエラーに遭遇しているか、必要なアプリケーションを使用できない場合、最善の解決策はアプリケーションの設定を最適化するか、サーバーをアップグレードすることです。