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 Webフォーム機能通信

1. はじめに先ほど、フロントエンドの表示の問題について説明しました。では、前のコンテンツに戻って、...

Vue computedのキャッシュ実装原理の詳細な説明

目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

ウェブサイトのコンテンツの100~1%はナビゲーションである

ウェブサイトでは、コンテンツの(100-1)%がナビゲーションです1. ジェシー・ジェームズ・ギャレ...

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...

よく使われる HTML タグとその特徴の完全なリスト

まず、HTML タグのいくつかの特性を知っておく必要があります。 1. 「<keyword&g...

Linuxはバイナリモードを使用してmysqlをインストールします

この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...

クラウドサーバーパゴダパネルの詳細なインストール手順

目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...

Dockerを使用してSpringBootプロジェクトをデプロイする方法

Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...

HTML テーブルタグチュートリアル (46): テーブルフッタータグ

<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...

MySQL (InnoDB) がデッドロックを処理する方法の詳細な説明

1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...

MySQLのジョイントクエリについて詳しく説明します

目次ユニオンクエリ1. 中国の各省のIDと名前を照会する2. 湖南省のすべての地級市のIDと名称3....

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

mysqlとnavicat間の接続を確立する際の1251エラーを解決する

コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...