CentOS7でスワップスペースを構成する

序文###

スワップは通常、従来のメカニカルハードディスクでパフォーマンスが向上します。SSDでスワップを使用すると、特にハードウェアが古くなった後、問題が発生する可能性があります。したがって、DigitalOceanおよびSSDベースのクラウドホスティングサービスを使用するその他のユーザーには、スワップを有効にすることはお勧めしません。これは、仮想マシンと[ホスト](https://cloud.tencent.com/product/cdh?from=10680)を共有する他のユーザーにも影響します。

DigitalOceanユーザーの場合、パフォーマンスを向上させる最善の方法は、ドロップレットを更新することです。一般的に、アップグレードされたホストのパフォーマンスは向上し、ハードウェアの問題の影響を受けにくくなります。

スワップを構成する###

  1. システムのスワップ情報をチェックして、スワップが構成されているかどうかを確認します。システムは複数のスワップを持つことができますが、通常は1つで十分です。
    swapon -sを実行します。コマンドが結果を返さない場合は、システムがスワップで構成されていないことを意味します。
    または、 free -mを使用して、システムの全体的なメモリ使用量を表示することもできます。ここでは、メモリとスワップの使用状況を確認できます(表示単位はMB)。
    ここでは、システムの合計スワップスペースが0である、つまりスワップが構成されていないことがわかります。これは、swaponで見た結果と一致しています。
free -m
    total       used       free     shared    buffers     cached
Mem:39533153637811107-/+ buffers/cache:1963756
Swap:004095
  1. 利用可能なストレージスペースを確認してください。通常、スワップとして別のパーティションを作成します。ただし、ハードウェアやソフトウェアの制限により、新しいパーティションを作成する方法を実装できない場合があります。この場合、スワップファイルを作成して同じ機能を実現できます。
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
  1. スワップファイルを作成する
  1. スワップファイルが有効
    これでスワップファイルができましたが、システムはファイルをスワップとして使用する必要があることを認識していません。そのため、ファイルをスワップとしてフォーマットして有効にするようにシステムに指示する必要があります。
    まず、スワップファイルのアクセス許可を変更して、rootのみが読み取ることができるようにする必要があります。そうしないと、大きなセキュリティリスクが発生します。 chmodコマンドを使用して、権限操作を実行します: sudo chmod 600 / swapfile
    このように、ファイルはrootによってのみ読み取りおよび書き込みが可能です。 ls -lhコマンドを使用して、以下を確認します。
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

この時点で、スワップが設定されており、オペレーティングシステムは必要に応じてスワップを使用します。

  1. スワップファイルを永続的にする
    これまで、システムでスワップファイルを有効にしてきましたが、システムが再起動すると、サーバーはファイルを自動的に有効にすることはできません。システムの再起動後にスワップを自動的に有効にするには、fstabファイル(これはファイルシステムとパーティションを管理するためのテーブルです)を変更することで有効にできます。
    編集するsudo権限でファイルを開きます: 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

CentOS7でスワップスペースを構成する
CentOS6でOcservを構成する
CentOSでrsyslogログクライアントを構成する
centos7でpython3環境を構成し、
CentOS7にスワップを追加する方法
CentOS7に基づいてNginxリバースプロキシを構成する
Ubuntu20.04にスワップスペースを追加する方法
CentOS7に基づいてNginxロードバランシングを構成する
CentOS7に基づいてNginxフォワードプロキシを構成する
Centos7はJDKを構成します
CentOS7にElasticsearchをインストールして構成する方法
CentOS6またはCentOS7のディスク領域をクリアする方法
CentOS8にVNCをインストールして構成する方法
CentOS7に基づいて自動的に起動するようにNginxを構成します
CentOS8にRedisをインストールして構成する方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にRedmineをインストールして構成する方法
Centos7にDockerをインストールする
Centos7.4はLNMPをインストールします
centos7でk8s1.9.9をビルドする
Centos7にJavaをインストールする
centos7でのXfs構成
Nodejsはcentos7にインストールされます
CentOS8にFFmpegをインストールします
CentOS7にRabbitMQをインストールします
CentosにNode.jsをインストールします
Mavenはcentos7にインストールします
CentOS7にMongoDBをインストールします
CentOS8にSurelogをインストールする
centos6.8でランプを構成する
Centos7はIPアドレスを構成します
centos7にvuepressをデプロイする
centos7へのOpenjdkのインストール
Jenkinsをcentos7にインストールします
CentOS7でRapidSVNを使用する
Centos7はnodejs環境を構成します
セントスにRabbitMQをインストールする
CentOS7にRabbitMQをインストールします
centos6.5にDockerをインストールします
セントスにオラクルをインストールする
CentOS7GPU環境を構成する
Centos7にElasticsearch6をインストールします
CentOS7にRabbitMQをインストールします
Jenkinをcentos7にデプロイします
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
CentOS8にNFSサーバーをインストールして構成する方法
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
mysqlをcentosにオンラインでインストールする
CentOS7にElasticSearch7.xをインストールします
Centos7へのGlusterfsクラスターのインストール
CentOSでMariaDBレプリケーションを構築する
CentOS8にPostfixメールサーバーをインストールして構成する方法
ubuntuサーバーでtomcatを構成する
CentOS7で静的IPを構成する
LinuxCentosにMySQL8.0.16をインストールします
centos7へのグラファイトの展開
Centos7にdockertransferをインストールします
Centosは複数の仮想IPを構成します
Centosシステムにdockerをインストールします
セントスにEPELリポジトリをインストールする