16.04前書きサーバーの応答性を高め、アプリケーションのメモリ不足エラーから保護する最も簡単な方法の1つは、スワップスペースを追加することです。16.04サーバーにスワップファイルを追加する方法について説明します。警告スワップとは何ですか?*スワップ*は、オペレーティングシステムがRAMに保持できなくなったデータを一時的に保存できる場所として指定されたハードドライブ上の領域です。基本的に、これにより、サーバーが作業「メモリー」に保持できる情報量を増やすことができますが、いくつかの注意事項があります。ハードドライブのスワップ領域は、主に、使用中のアプリケーションデータを保持するのに十分なRAM領域がなくなったときに使用されます。ディスクに書き込まれる情報は、RAMに保持される情報よりもかなり遅くなりますが、オペレーティングシステムは、メモリ内でアプリケーションデータを実行し続け、古いデータにスワップを使用することを好みます。全体的に、システムのRAMが使い果たされたときの代替としてスワップスペースを持つことは、SSD以外のストレージが利用可能なシステムでのメモリ不足の例外に対する優れた安全策となります。システムのスワップ情報を確認します開始する前に、システムに既に使用可能なスワップスペースがあるかどうかを確認できます。複数のスワップファイルまたはスワップパーティションを作成することは可能ですが、通常は1つで十分です。次のように入力して、システムにスワップが構成されているかどうかを確認できます。--show出力が返されない場合、これはシステムに現在利用可能なスワップ領域がないことを意味します。+`ユーティリティを使用して、アクティブなスワップがないことを確認できます。426M出力の「スワップ」行で確認できるように、システム上でアクティブなスワップはありません。ハードドライブパーティションの空き容量を確認するスワップ用のスペースを割り当てる最も一般的な方法は、タスク専用の個別のパーティションを使用することです。パーティションスキームの変更は常に可能とは限りません。既存のパーティションに存在するスワップファイルを簡単に作成できます。これを行う前に、次のように入力して現在のディスク使用量を確認する必要があります。+」の下のデバイスがディスクです。この例では十分なスペースがあります(1.1Gのみを使用)。使用方法はおそらく異なるでしょう。スワップ空間の適切なサイズについては多くの意見がありますが、それは実際にはあなたの個人的な好みとアプリケーションの要件に依存します。一般に、システムのRAMの量と同じか2倍の量が、適切な出発点です。1つの良い経験則は、4G以上のスワップは、RAMフォールバックとして使用している場合はおそらく不要であることです。スワップファイルを作成するハードドライブの空き容量がわかったので、ファイルシステム内にスワップファイルを作成します。+`と呼ばれるスワップサイズのファイルを作成します。+`プログラムを使用することです。このコマンドは、事前に割り当てられたサイズのファイルを即座に作成します。この例のサーバーには512MBのRAMがあるため、このガイドでは1ギガバイトのファイルを作成します。独自のサーバーのニーズに合わせてこれを調整します。/swapfile次のように入力することで、正しい量のスペースが予約されたことを確認できます。/swapfileファイルは、適切な量のスペースを確保して作成されています。正しいサイズのファイルが使用可能になったので、実際にこれをスワップスペースに変換する必要があります。+`権限を持つユーザーのみがコンテンツを読むことができるように、ファイルのパーミッションをロックダウンする必要があります。これにより、通常のユーザーがファイルにアクセスできなくなり、セキュリティに重大な影響が生じます。+」のみがアクセスできるようにします。/swapfile次を入力して、アクセス許可の変更を確認します。/swapfileご覧のとおり、読み取りおよび書き込みフラグが有効になっているのはrootユーザーのみです。次のように入力して、ファイルをスワップスペースとしてマークできます。UUID=6e965805-2ab9-450f-aed6-577e74089dbfファイルにマークを付けたら、スワップファイルを有効にして、システムがそれを利用できるようにします。/swapfile次のように入力して、スワップが使用可能であることを確認できます。+`ユーティリティの出力を再度確認できます。425Mスワップは正常にセットアップされ、オペレーティングシステムは必要に応じて使用を開始します。スワップファイルを永続的にする最近の変更により、現在のセッションのスワップファイルが有効になりました。再起動すると、サーバーはスワップ設定を自動的に保持しません。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(メモリ不足)エラーが発生した場合、またはシステムが必要なアプリケーションを使用できない場合は、アプリケーション構成を最適化するか、サーバーをアップグレードすることが最善の解決策です。