CentOS7 システムでスワップを増やす方法の例

CentOS7 システムでスワップを増やす方法の例

序文

スワップは、ディスク上にある「仮想メモリ」の一部である特殊なファイル (またはパーティション) です。簡単に言えば、メモリのスペアタイヤです。メモリが十分にある場合、基本的にスワップは必要ありません (設定によって異なります)。メモリが不足している場合、システムはメモリ内のデータの一部をスワップに移動して、実行中のプログラム用にメモリを解放します。

スワップを使用すると、システムはより多くのプログラムやより大きなプログラムを実行できますが、スワップの読み取りおよび書き込み速度はメモリよりもはるかに遅いため、スワップを頻繁に使用すると、システムやプログラムに遅延やラグが発生する可能性があります。

大容量メモリを搭載したコンピュータではスワップは必要ですか?

メモリの少ないコンピュータでは、スワップが非常に必要です。スワップの存在により、メモリを大量に消費するプログラムの実行が可能になります。実行が遅くても、実行できない、またはクラッシュするよりはましです。ただし、最近のコンピューターには 8G を超えるメモリが搭載されていることが多く、大規模なソフトウェアや専門的なソフトウェアを実行しない限り、日常的な使用には十分です。この場合、スワップは必要ですか?

答えは使用シナリオによって異なります。パソコンでデスクトップ版の Linux を動かし、休止状態機能をオンにしている場合は、メモリ以上の swap パーティションを作成する必要があります。十分なメモリがあり、一年中シャットダウンしないサーバーであれば、swap がなくても問題ありません。

SSD ハードドライブにスワップを設定する必要がありますか?

以前の SSD ハード ドライブでは読み取りと書き込みの寿命に問題があったため、SSD ハード ドライブにスワップ ファイルやパーティションを配置することは推奨されません。

現在の SSD ハード ドライブ技術はアップグレードされ、よりインテリジェントになっています。スワップ要件がある場合は、SSD ハード ドライブに配置しても問題ありません。

スワップ設定はどのくらいの大きさにすべきでしょうか?

休止状態機能を有効にする場合は、スワップ パーティションを作成する必要があり、パーティション サイズはメモリより小さくできません。推奨値は「メモリ サイズ + 2G」です。

ハイバネーション機能を使用しないサーバーの場合、スワップはファイルになります。スワップ サイズを決定する実用的な方法は次のとおりです。1G メモリ以下の場合、スワップ サイズはメモリの 2 倍です。2~4G メモリの場合、スワップ サイズはメモリと同じです。5~16G メモリの場合、スワップは 4G に固定できます。17~32G メモリの場合、スワップは 8G です。33G 以上の場合、スワップ サイズは 16G に固定されます。

上記の方法は絶対的なものではありません。特別なニーズがある場合は、スワップ サイズを適宜増減できます。

スワップを増やすにはどうすればいいですか?

オペレーティング システムをインストールするときに、スワップをパーティション (個別のマウント ポイント) の形式で指定することも、システムのインストール後に動的に追加および削除することもできます。

ビューのスワップ

free コマンドは、システム アクティビティのスワップ情報を表示できます。次に例を示します。

$ 無料 -m
# 出力は次のようになります # 使用可能な共有バッファ/キャッシュの合計使用済み空き容量
会員数: 7976 4979 328 124 2669 2703
# スワップ: 0 0 0

2 行目はスワップ情報であり、アクティブなスワップがないことがわかります。

アクティブなスワップを表示するには、swapon コマンドを使用することもできます。次に例を示します。

$ スワポン -s
# スワップ情報がないので出力なし # スワップありの出力は # ファイル名 タイプ サイズ 使用 優先度
# /スワップファイル 2097148 281052 -2

スワップを追加

大量のメモリを消費するプログラムを実行する予定があり、8G の物理メモリでは不十分な場合は、スワップを使用してシステムで使用可能な仮想メモリを増やすことができます。やり方は次のとおりです:

1. スワップとしてファイルを選択または作成します (パーティションも使用できます)。指定されたサイズのファイルを作成するための一般的なコマンドは、fallocate と dd です。たとえば、8G のファイルを作成するには:

# 割り当て
sudo fallocate -l 8G /スワップ
#dd
sudo dd bs=1GB count=8 if=/dev/zero of=/swap

dd のコピー処理は遅いので、実際には fallocate を使用することをお勧めします。

2. スワップ ファイルはメモリ内のデータを保存します。セキュリティ上の理由から、他のユーザーのアクセスを制限する必要があります: sudo chmod 0600 /swap;

3. ファイルをスワップ ファイルとしてフォーマットします: sudo mkswap /swap;

4. スワップ ファイルを有効にします: sudo swapon /swap;スワップを使用しない場合は、swapoff コマンドでアンインストールできます: sudo swapoff /swap;

5. システムの起動後にスワップ ファイルを自動的にロードする場合は、/etc/fstab ファイルに/swap swap swap sw 0 0行を追加します。
スワップを追加した後、 swapon -s または free -m コマンドを使用してスワップ情報を表示できます。

スワップ関連の設定

スワップに最も直接的に関連し、システム パフォーマンスに影響を与える設定パラメータは vm.swappiness です。その値は 0 から 100 までの整数で、スワップの開始時に使用されたメモリの割合を示します。 100 は可能な限りスワップを使用することを意味し、0 は物理メモリが不足している場合にのみスワップをバックアップとして使用することを意味します。サーバーの場合は、10〜30 が推奨されます。

swappiness を設定および変更するコマンドは、 sudo sysctl vm.swappiness=10です。このコマンドは現在のシステムに対してのみ有効であり、システムを再起動するとデフォルト値に復元されます。設定を永続的にするには、/etc/sysctl.conf で対応する設定行を追加または変更します: vm.swappiness = 10

参照する

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Centos7でスワップパーティションを追加および削除する方法
  • LinuxのCentOS7でスワップパーティションを追加する詳細な説明

<<:  Ubuntu 18.04にmysql5.7をインストールする

>>:  Ubuntu 18.04 は mysql 5.7.23 をインストールします

推薦する

Docker に influxdb をインストールするための詳細なチュートリアル (パフォーマンス テスト)

1. 前提条件1. プロジェクトが展開されました2. Dockerはすでにインストールされている2...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

sql_mode を変更する際の MySQL エラーの解決方法

目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...

Nginx を使用してグレースケール リリースを実装する

グレースケールリリースとは、白と黒をスムーズに移行できるリリース方法を指します。 ABテストとは、グ...

MySQL 8.0.23 インストールの超詳細なチュートリアル

目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....

Linux でパスワードの有効期限を表示および設定する方法

適切な設定を行うことで、Linux ユーザーにパスワードを定期的に変更させることができます。パスワー...

WeChatアプレットでQRコードを識別するために長押しする実装プロセス

序文公式アカウントのQRコードは長押しで認識できることは皆さんご存じですが、ミニプログラムに対する制...

ウェブサイトがhttpsを有効にした後のSSLのセキュリティ構成と検出

最近のウェブサイトでは SSL を有効にするのが標準となっています。ただし、SSL を設定した後も、...

MySQLでの少し複雑な使用例コード

序文MySQL の構文は誰にとっても難しいものではないと思いますが、この記事では主に MySQL の...

docker ログ - docker コンテナ ログの実装を表示します

docker logs コマンドを使用してコンテナ ログを表示できます。コマンド形式: $ dock...

CSS クロスフェード() を使用して半透明の背景画像効果を実現するサンプルコード

1. 要件の説明特定の要素については、背景background-imageを半透明にしたいが、テキス...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

MySQLの行数カウントに関する簡単な説明

各テーブルの行数をカウントするために使用される MySQL count() 関数は、誰もがよく知って...

テーブルを開く際のMySQLスレッドの問題の解決方法

問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...