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 をインストールします

推薦する

Vueで配列の変更を監視する方法

目次序文ソースコード学習の第一歩はどこから始めればよいでしょうか?写真から始めましょうソースコードを...

この記事では、jsのデータ型とデータ構造の世界を紹介します。

目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...

js でオブジェクトを作成するさまざまな方法とその長所と短所のまとめ

目次初期作成方法ファクトリーパターンコンストラクターパターンコンストラクタパターンの最適化プロトタイ...

CSS スタイルをプログラムで処理するためのサンプル コード

プログラム的アプローチの利点1. スタイルの分散を避けるためのグローバルコントロール2. シンプルな...

mysql の存在する例と存在しない例の詳細な説明

mysql の存在する例と存在しない例の詳細な説明テーブルA |列1 | 列1 | 列3 |テーブル...

JavaScript 組み込みの日付と時刻の書式設定のサンプル コード

1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...

MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

エラーシナリオcmd の mysql コマンドを使用して、学生情報テーブルにデータを追加します。デー...

ElementUI el-select の過剰なデータに対する解決策についての簡単な説明

目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...

Element-ui アップロードファイルのアップロード制限の解決策

質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...

MySQL InnoDB の重要なコンポーネントの概要

Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...

DockerにRocketMQをインストールするための実装手順

目次1. 画像を取得する2. ブローカーサーバーを作成する3. ブローカーを作成する4. Rocke...

CSS ブラウザ互換性の問題に対する 4 つの解決策

フロントエンドは、技術が急速に進化するだけでなく、知っておくべき事柄が多すぎるという理由で大変な仕事...

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...

Vue開発ウェブサイトSEO最適化方法の詳細な説明

ページデータの表示には Vue などの js のデータバインディング機構が使用されるため、クローラー...

MySQL共通インデックスとユニークインデックスの選択に関する詳細な分析

各人が固有の携帯電話番号で登録し、ビジネス コードによって重複する携帯電話番号が 2 つ書き込まれな...