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

推薦する

JavaScriptで配列を作成する方法の詳細な説明

目次JavaScript で配列を作成する配列の使用配列を分割文字列に変換する配列に要素を追加する配...

Dockerコンテナの原理の分析

目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...

TomcatのmaxPostSize属性を設定する際に注意する必要がある問題を解決する

必要:近い将来、大容量ファイルのアップロード機能を実装します。フロントエンドフレームワークのアップロ...

JavaScript でプライベート メンバーを作成する

目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...

WeChatアプレットにおけるデータ保存実装方法

目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...

CSS における zoom:1 属性の定義と機能

今日、CSS の zoom 属性は何のために使用されるのかと尋ねられました。この属性は、フローティン...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

React でカレンダー コンポーネントを構築するためのステップ バイ ステップ ガイド

目次事業背景テクノロジーの活用技術的な問題デザインのアイデア😱 困惑と苦痛に満ちた顔🙄考え始める🌲デ...

JavaScript におけるイベント バブリング メカニズムの詳細な分析

バブリングとは何ですか? DOM イベント フローには、イベント キャプチャ ステージ、ターゲット ...

MySQLでテーブル名を変更する方法と注意すべき点

目次1. テーブル名を変更する方法2. 注記要約: 1. テーブル名を変更する方法RENAME TA...

jsを使用して簡単な抽選機能を実現する

この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...

Navicat 8でMySQL用のデータベースを作成する方法

ウェブサイトを開発する場合、データを保存するためにデータベースを使用する必要があることがよくあります...

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例チェックボックス: XML/HTML...