スワップは通常、従来のメカニカルハードディスクでパフォーマンスが向上します。SSDでスワップを使用すると、特にハードウェアが古くなった後、問題が発生する可能性があります。したがって、DigitalOceanおよびSSDベースのクラウドホスティングサービスを使用するその他のユーザーには、スワップを有効にすることはお勧めしません。これは、仮想マシンと[ホスト](https://cloud.tencent.com/product/cdh?from=10680)を共有する他のユーザーにも影響します。
DigitalOceanユーザーの場合、パフォーマンスを向上させる最善の方法は、ドロップレットを更新することです。一般的に、アップグレードされたホストのパフォーマンスは向上し、ハードウェアの問題の影響を受けにくくなります。
swapon -s
を実行します。コマンドが結果を返さない場合は、システムがスワップで構成されていないことを意味します。free -m
を使用して、システムの全体的なメモリ使用量を表示することもできます。ここでは、メモリとスワップの使用状況を確認できます(表示単位はMB)。free -m
total used free shared buffers cached
Mem:39533153637811107-/+ buffers/cache:1963756
Swap:004095
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 59G 1.5G 55G 3% /
devtmpfs 2.0G 02.0G 0%/dev
tmpfs 2.0G 02.0G 0%/dev/shm
tmpfs 2.0G 8.3M 2.0G 1%/run
tmpfs 2.0G 02.0G 0%/sys/fs/cgroup
fallocate
コマンドです。次のコマンドを入力して、4GBファイルを作成します。 sudo fallocate -l 4G / swapfile
ls -lh / swapfile
sudo chmod 600 / swapfile
ls -lh /swapfile
- rw-------1 root root 4.0G Oct 3011:00/swapfile
次に、次のコマンドを使用して、ファイルをスワップに使用するようにシステムに指示します。 sudo mkswap / swapfile
これで、このスワップファイルをスワップスペースとして使用できます。スワップの使用を開始するには、次のコマンドを入力します: sudo swapon / swapfile
次のコマンドを入力して、設定が有効になっているかどうかを確認できます。
swapon -s
Filename Type Size Used Priority
/swapfile file 41943000-1
返された結果には、設定したスワップがすでに含まれていることがわかります。無料のツールを使用して確認します。
free -m
total used free shared buffers cached
Mem:39533153637811107-/+ buffers/cache:1963756
Swap:409504095
この時点で、スワップが設定されており、オペレーティングシステムは必要に応じてスワップを使用します。
sudo vim / etc / fstab
/swapfile swap swap sw 0 0
スワップ構成の変更(オプション)
システムのパフォーマンスに影響を与える可能性のあるスワップに関連するいくつかのオプションがあります。ほとんどの場合、これらのオプションはオプションです
swappinessパラメーターは、システムがメモリからスワップスペースにデータを交換する頻度を決定します。値は0〜100の間に設定され、メモリからスワップスペースにデータを交換するシステムの強度を表します。
値が0に近いほど、システムはスワップを実行せず、必要な場合にのみスワップ操作を実行する可能性が高くなります。スワップはメモリよりもはるかに遅いため、スワップへの依存を減らすと、システムパフォーマンスが向上します。
値が100に近いほど、システムはスワップする傾向があります。一部のアプリケーションのメモリ使用習慣は、この状況により適しています。これは、サーバーの目的にも関連しています。
次のコマンドを入力して、現在のスワップピネス値を表示します。 cat / proc / sys / vm / swappininess#30
CentOS 7のデフォルトのスワップピネスは30です。これは、ほとんどのデスクトップシステムとローカルサーバーにとって中程度の値です。 VPSシステムの場合、0に近い値がより適切です。
sysctlコマンドを使用してswappinessを変更します。たとえば、swappinessを10に設定します。 sudo sysctl vm.swappiness = 10
この変更は、次の再起動まで有効になります。値を永続的に変更する場合は、sysctl構成ファイルを編集する必要があります。
sudo vim /etc/sysctl.conf
ファイルの最後に以下を貼り付けます。
vm.swappiness =10
編集、保存、終了後、サーバーが再起動するたびにswappinessがこの値に設定されます。
変更を検討できるもう1つの構成項目は、vfs_cache_pressureです。これには、特別なファイルシステムメタファイルエントリの保存が含まれます。このタイプの情報を頻繁に読み取ると、パフォーマンスが非常に高くなるため、キャッシュ内の保存時間を延長すると、システムのパフォーマンスを向上させることができます。
procファイルシステムを介してキャッシュ圧力の現在の設定値を表示します: cat / proc / sys / vm / vfs_cache_pressure#100
この値は比較的高いため、システムはキャッシュからinode情報をより速く削除します。控えめな値は50です。sysctlコマンドを使用して以下を設定します。
sudo sysctl vm.vfs_cache_pressure=50
このコマンドは、再起動する前にのみ有効です。この設定を永続的に有効にするには、sysctl構成ファイルを編集する必要があります。
sudo vim /etc/sysctl.conf
ファイルの最後に以下を追加します。
vm.vfs_cache_pressure =50
保存して終了すると、サーバーは再起動するたびにキャッシュ圧力を自動的に50に設定します。
この時点で、システムメモリにはある程度の余裕ができています。スワップスペースを使用すると、いくつかの一般的な問題を効果的に回避できます。
それでもメモリ不足(OOM、メモリ不足)のエラーメッセージが表示される場合、またはシステムで必要なアプリケーションを実行できない場合は、アプリケーション構成を最適化するか、サーバーをアップグレードするのが最善の方法です。
![]( /img/8821807adbcbd92ddae610a8f0f4bfac/mg4ulmn5q2.jpeg)「UncleKBlockchain」の購読へようこそ-ブロックチェーン技術の学習に焦点を当てる
ブログアドレス:[http://www.jouypub.com](http://www.jouypub.com/?utm_source=cloud.tencent.com)
ショートブックホームページ:[https://www.jianshu.com/u/756c9c8ae984](https://www.jianshu.com/u/756c9c8ae984)
segmentfaultホームページ:[https://segmentfault.com/blog/jouypub](https://segmentfault.com/blog/jouypub)
Tencent Cloudホームページ:[https://cloud.tencent.com/developer/column/72548](https://cloud.tencent.com/developer/column/72548?from=10680)
Recommended Posts