Basics前書きアプリケーションのメモリ不足エラーから保護する最も簡単な方法の1つは、サーバーにスワップスペースを追加することです。10サーバーに追加する方法について説明します。スワップとは何ですか?_Swap_は、オペレーティングシステムがRAMに保持できなくなったデータを一時的に保存できる場所として指定されたハードドライブ上の領域です。基本的に、これにより、サーバーが作業「メモリー」に保持できる情報量を増やすことができますが、いくつかの注意事項があります。ハードドライブのスワップ領域は、主に、使用中のアプリケーションデータを保持するのに十分なRAM領域がなくなったときに使用されます。ディスクに書き込まれる情報は、RAMに保持される情報よりもかなり遅くなりますが、オペレーティングシステムは、メモリ内でアプリケーションデータを実行し続け、古いデータにスワップを使用することを好みます。全体的に、システムのRAMが枯渇した場合のフォールバックとしてスワップスペースを使用することは、SSD以外のストレージが利用可能なシステムでのメモリ不足の例外に対する優れた安全策となります。手順1-システムのスワップ情報を確認する開始する前に、システムに既に使用可能なスワップスペースがあるかどうかを確認できます。複数のスワップファイルまたはスワップパーティションを作成することは可能ですが、通常は1つで十分です。次のように入力して、システムにスワップが構成されているかどうかを確認できます。--show出力が返されない場合、これはシステムに現在利用可能なスワップ領域がないことを意味します。+`ユーティリティを使用して、アクティブなスワップがないことを確認できます。*行で確認できるように、システムでアクティブなスワップはありません。手順2-ハードドライブパーティションの空き領域を確認するスワップファイルを作成する前に、現在のディスク使用量をチェックして、十分なスペースがあることを確認します。これを行うには、次を入力します。+」があるデバイスがディスクです。この例では十分なスペースがあります(1.4Gのみを使用)。使用方法はおそらく異なるでしょう。スワップ空間の適切なサイズについては多くの意見がありますが、それは実際にはあなたの個人的な好みとアプリケーションの要件に依存します。一般に、システムのRAMの量と同じか2倍の量が、適切な出発点です。1つの良い経験則は、4G以上のスワップは、RAMフォールバックとして使用している場合はおそらく不要であることです。–スワップファイルの作成ハードドライブの空き容量がわかったので、ファイルシステムにスワップファイルを作成できます。+」と呼ばれるスワップサイズのファイルを割り当てます。+`プログラムを使用することです。このコマンドは、指定されたサイズのファイルを即座に作成します。この例のサーバーには1GのRAMがあるため、このガイドでは1Gファイルを作成します。独自のサーバーのニーズに合わせてこれを調整します。/swapfile次のように入力することで、正しい量のスペースが予約されたことを確認できます。/swapfileファイルは、適切な量のスペースを確保して作成されています。正しいサイズのファイルが使用可能になったので、実際にこれをスワップスペースに変換する必要があります。*権限を持つユーザーのみがコンテンツを読み取れるように、ファイルのアクセス許可をロックダウンする必要があります。これにより、通常のユーザーがファイルにアクセスできなくなり、セキュリティに重大な影響が生じます。*のみがファイルにアクセスできるようにします。/swapfile次を入力して、アクセス許可の変更を確認します。*ユーザーのみが読み取りおよび書き込みフラグを有効にしています。次のように入力して、ファイルをスワップスペースとしてマークできます。UUID=b591444e-c12b-45a6-90fc-e8b24c67c006fファイルにマークを付けたら、スワップファイルを有効にして、システムが使用を開始できるようにします。/swapfile次のように入力して、スワップが使用可能であることを確認します。+`ユーティリティの出力を再度確認できます。834Miスワップは正常にセットアップされ、オペレーティングシステムは必要に応じて使用を開始します。–スワップファイルを永続的にする最近の変更により、現在のセッションのスワップファイルが有効になりました。再起動すると、サーバーはスワップ設定を自動的に保持しません。fstab`ファイルに追加します。+`ファイルをバックアップします。+`ファイルの最後に追加します。/etc/fstab次に、更新してスワップスペースを調整できる設定を確認します。–スワップ設定の調整スワップを処理するときにシステムのパフォーマンスに影響を与えるいくつかのオプションを設定できます。+`パラメータは、システムがRAMからスワップスペースにデータをスワップする頻度を設定します。これは、パーセンテージを表す0〜100の値です。値がゼロに近い場合、カーネルはどうしても必要な場合を除き、ディスクにデータをスワップしません。スワップファイルとのやり取りは、RAMとのやり取りよりも時間がかかり、パフォーマンスが大幅に低下する可能性があるという点で、「高価」です。一般に、スワップにあまり依存しないようにシステムに指示すると、システムが高速になります。100に近い値は、より多くのRAMスペースを空けるために、より多くのデータをスワップに入れようとします。アプリケーションのメモリプロファイルまたはサーバーの使用目的に応じて、これは場合によってはより良い可能性があります。次のように入力することにより、現在の交換可能性の値を確認できます。/proc/sys/vm/swappinessOutput60デスクトップの場合、60のswappiness設定は悪い値ではありません。サーバーの場合、0に近づけることができます。+`コマンドを使用して、swappinessを別の値に設定できます。swappinessを10に設定するには、次のように入力します。10この設定は、次の再起動まで持続します。+`ファイルに次の行を追加することで、再起動時にこの値を自動的に設定できます。/etc/sysctl.conf下部で、次を追加できます。/etc/sysctl.confvm.swappiness=10完了したら、ファイルを保存して閉じます。この設定は、システムが_inode_および_dentry_情報を他のデータにキャッシュすることを選択する量を構成します。基本的に、これはファイルシステムに関するアクセスデータです。通常、これは検索に非常にコストがかかり、非常に頻繁にリクエストされるため、システムがキャッシュするのは素晴らしいことです。+`ファイルシステムを再度クエリすることで確認できます。/proc/sys/vm/vfs_cache_pressureOutput100現在設定されているため、システムはキャッシュからiノード情報をすぐに削除します。次のように入力して、これを50などのより保守的な設定に設定できます。50繰り返しますが、これは現在のセッションでのみ有効です。swappiness設定で行ったように、設定ファイルに追加することで変更できます。/etc/sysctl.conf下部に、新しい値を指定する行を追加します。/etc/sysctl.confvm.vfs_cache_pressure=50完了したら、ファイルを保存して閉じます。結論このガイドの手順に従うと、そうしないとメモリ不足の例外が発生する可能性がある場合に、ある程度余裕ができます。スワップスペースは、これらの一般的な問題のいくつかを回避するのに非常に役立ちます。OOM(メモリ不足)エラーが発生した場合、またはシステムが必要なアプリケーションを使用できない場合は、アプリケーション構成を最適化するか、サーバーをアップグレードすることが最善の解決策です。