Ubuntu 16.04にスワップパーティションを追加する方法を説明する

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

序文

サーバーの応答性を高め、アプリケーションのメモリ不足を防ぐ最も簡単な方法の1つは、スワップ領域を追加することです。 このガイドでは、Ubuntu 16.04サーバーにスワップファイルを追加する方法を説明します。

しかし、注意してください:

通常、スワップ領域は従来のスピンハードドライブを使用するシステムに推奨されますが、SSDとのスワップを使用すると、ハードウェアの劣化の問題が長期にわたって発生する可能性があります。 このため、DigitalOceanまたはSSDストレージを使用する他のベンダーでスワップパーティションを有効にすることはお勧めしません。 そうすることで、あなたとあなたの隣人の基礎となるハードウェアの信頼性に影響を与える可能性があります。 このガイドは、回転ディスクシステムが他の場所にあるユーザーを対象としています。 DigitalOceanサーバーのパフォーマンスを向上させる必要がある場合は、ドロップレットをアップグレードすることをお勧めします。これにより、経験が向上し、ハードウェアの問題がサービスに影響を及ぼす可能性が低くなります。

1.まず、スワップが何であるかを見てみましょう。

スワップパーティション(スワップパーティションとも呼ばれます)は、オペレーティングシステムが一時的にデータを格納できる場所として指定されたハードディスク上の領域です。このデータはRAMに格納することはできません。 基本的に、これはサーバが作業中の "メモリ"に保持する情報の量を増やすことができますが、使用されているアプリケーションデータを格納するためにRAMに十分なスペースがない場合、ハードドライブ上で使用されます。交換スペース。

ディスクに書き込まれる情報はRAMに格納された情報よりもはるかに遅くなりますが、オペレーティングシステムはアプリケーションデータをメモリに格納して古いデータを交換することを好みます。 一般に、システムのRAMが使い尽くされた場合、スワップ領域を代替領域として使用することは、非SSDストレージシステムでのメモリ不足を防ぐための安全ネットとなる可能性があります。

2.システムの交換情報を確認する

開始前に、システムにすでに使用可能なスワップ領域があるかどうか、複数のスワップファイルまたはスワップパーティションがあるかどうかを確認できますが、通常は十分なはずです。 次のコマンドを使用して、システムにスワップパーティションがあるかどうかを調べることができます。


$ sudo swapon -show

結果が表示されないか、または表示されない場合、現在スワップ領域は使用できません。 また、フリーツールを使用して、現在スワップパーティションがないことを確認することもできます。


$ free -h

出力結果:

使用済みフリーバフ/キャッシュの合計使用可能合計
Mem:488M 36M 104M 652K 348M 426M
スワップ:0B 0B 0B

ここでの「スワップ」行は0で、システム上で交換がアクティブでないことがわかります。

3.ハードドライブパーティションの空き容量を確認する

スワップ領域を割り当てる最も一般的な方法は、特定のタスクに固有の別々の点を使用することですが、パーティション方式を変更することは必ずしも実現可能ではありません。既存のパーティションに存在するスワップファイルを作成するだけです。

開始する前に、次のコマンドを入力して現在のディスク使用量を確認する必要があります。


$ df -h

出力結果:

使用されるファイルシステムのサイズ使用可能マウント%
Udev 238M 0 238M 0%/ dev
Tmpfs 49M 624K 49M 2%/走行
/ dev / vda1 20G 1.1G 18G 6%/ dev /
Tmpfs 245M 0 245M 0%/ dev / shm
Tmpfs 5.0M 0 5.0M 0%/実行/ロック
Tmpfs 245M 0 245M 0%/ sys / fs / cgroup
Tmpfs 49M 0 49M 0%/ run / user / 1001

この場合、/ devの下にあるデバイスは私たちのディスクです。 この例では、十分なスペースがあります(1.1Gだけが使用されます)。もちろん、使用方法が異なる場合があります。

スワップ領域の適切なサイズについては多くの意見がありますが、それは個人の好みやアプリケーション要件によって異なります。 一般に、システムメモリの2倍または2倍の量が良い出発点です。 別の良い教訓は、RAMスペアとして使用するだけの場合、スワップパーティションのサイズは4 GBを超えないようにすることです。

4.スワップファイルを作成する

利用可能なハードディスク容量を知ったので、ファイルシステムにスワップファイルを作成します。ルート(/)ディレクトリにswapfileというファイルを作成します。 スワップファイルを作成する最善の方法はfallocateコマンドを使用することです。これはすぐに事前に割り当てられたファイルを作成します。 この例のサーバーRAMは512MBのサイズなので、このチュートリアルでは1 GBのファイルを作成し、サーバーのニーズに合わせて調整します。


$ sudo fallocate -l 1G /swapfile

作成が完了したら、このコマンドを使用して、正しいスワップスペースが予約されていることを確認できます。


$ ls -lh /swapfile

結果を表示:


$ -rw-r-r- 1 root root 1.0G Apr 25 11:14 /swapfile

これは、ファイルが正しい容量のスペースを作成したことを意味します。

5.スワップファイルを有効にする

これで1 GBのファイルができたので、スワップスペースに変換する必要があります。

まず、ルート権限を持つユーザーだけがファイルの内容を読み取れるようにファイルのアクセス許可をロックする必要があります。これにより、セキュリティ上の大きなリスクを負わないように、一般ユーザーがファイルにアクセスできなくなります。

ファイルのルート権限をロックする:


$ sudo chmod 600 /swapfile

権限を確認する:


$ ls -lh /swapfile

結果を表示:


-rw- 1 root root 1.0G Apr 25 11:14 /swapfile

ご覧のように、rootユーザーだけが読み取りと書き込みのフラグを有効にしています。

次に、ファイルをスワップ空間としてマークするには、次のコマンドを使用します


$ sudo mkswap /swapfile

結果を表示:

スワップスペースバージョン1の設定、サイズ= 1024 MiB(1073737728バイト)
ラベルなし、UUID = 6e965805-2ab9-450f-aed6-577e74089dbf

ファイルにマークを付けた後、スワップファイルを有効にして、システムがファイルを使用できるようにします。


$ sudo swapon /swapfile

スワップ領域が使用可能かどうかは、次のコマンドで確認できます。


$ sudo swapon -show

結果を表示:

名前タイプサイズ使用前
/ swapfileファイル1024M 0B -1

この時点で、私たちは無料で設定をもう一度見ることができます:


$ free -h

結果を表示:

使用済みフリーバフ/キャッシュの合計使用可能合計
Mem:488M 37M 96M 652K 354M 425M
スワップ:1.0G 0B 1.0G

スワップパーティションが1.0Gのサイズで正常に作成され、オペレーティングシステムが必要なときにスワップパーティションを使用することがわかります。

6.交換ファイルを永久に保持する

最近の変更により、現在のセッションのスワップファイルが有効になりましたが、再起動した場合、サーバーは自動的にスワップ設定を予約しません。スワップファイルを/ etc / fstabファイルに追加することで変更できます。

エラーを防ぐために/ etc / fstabファイルをバックアップします。


$ sudo cp /etc/fstab /etc/fstab.bak

/ etc / fstabファイルの最後にスワップファイル情報を追加します。


$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

これは、スワップファイルを保持します。

7.交換設定を調整する

スワップを扱う際には、システムのパフォーマンスに影響するいくつかのオプションを設定できます。

7.1 swapcity属性の調整

swappinessパラメーターは、システムがRAMからスワップ領域(0〜100)のデータをスワップする頻度をパーセントで表す頻度を構成します。 swappinessの値が0に近い場合、カーネルは絶対に必要でない限り、ディスクにデータをスワップしません。 スワップとのやりとりはRAMとのやりとりよりも時間がかかり、パフォーマンスが大幅に低下する可能性があるため、スワップファイルとのやりとりは「高価」です。 スワップパーティションのシステム依存性が少なくなると、通常はシステムの速度が向上します。 swappinessの値が100に近づくと、より多くのRAMスペースを確保するために、より多くのデータをエクスチェンジに入れようとします。 使用しているアプリケーションやサーバーのメモリプロファイルによっては、状況によってはこれが良いかもしれません。

現在のswappiness値を表示する:


$ cat /proc/sys/vm/swappiness

結果表示

60

デスクトップシステムの場合、60のスワップ設定は悪い値ではありませんが、サーバーの場合、ゼロに近い値に設定することをお勧めします。

sysctlコマンドを使用して、swapinessを別の値に設定することができます。たとえば、swapinessを10に設定することができます。


$ sudo sysctl vm.swappiness=10

結果を表示:

Vm.swappiness = 10

再起動後に有効にするには、/etc/sysctl.confファイルに次の行を追加します。


$ sudo nano /etc/sysctl.conf

ファイルの最後に追加:


vm.swappiness=10

完了したらファイルを保存して閉じます。

7.2キャッシュ圧力設定の調整

関連する別の値は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

完了したらファイルを保存して閉じます。

8.要約

スワップ領域は、OOM(メモリ不足)エラーが発生した場合、またはシステムが動作していないことが判明した場合に、これらの一般的な問題を回避するために非常に便利です。アプリケーションの場合、最適な解決策は、アプリケーション構成を最適化するか、サーバーをアップグレードすることです。

翻訳: Ubuntu 16.04にスワップスペースを追加する方法


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ