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解釈

目次初期化初期化状態()初期化プロパティ()初期化データ()観察する()オブザーバーリアクティブを定...

MySQLクエリステートメント内のユーザー変数のコード分析

前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...

Linux で MySQL のスケジュールバックアップを実装する方法

実際のプロジェクトでは、緊急事態を防ぐためにデータベースを頻繁にバックアップする必要があります。しば...

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

インターフェース設計の10の一般的なルール

<br />これは私がずっと前に集めた記事です。皆さんの参考のために共有したいと思います...

フロントエンド開発に必要な共通ツール機能のまとめ

1. 時刻の書式設定とその他の方法moment.jsライブラリファイルの使用をお勧めします2. テン...

CSSは、閉じることができるマスクレイヤーを備えたポップアップウィンドウ効果を実装します。

実際の開発ではポップアップウィンドウがよく使われます。CSS3を勉強していたときに、閉じることができ...

HTMLファイルとは何ですか?HTMLファイルを開く方法

HTML は Hypertext Markup Language の略です。現在、ほとんどの Web...

Docker メモリ監視とストレステストの方法

起動していたDockerコンテナはメモリを使い果たした状態になっており、再起動せずにコンテナのメモリ...

vue3.0 のウォッチ リスナーの例の詳細な説明

目次序文リスナーと計算プロパティの違いvue3 で watch を使用するにはどうすればいいですか?...

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...

Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...

Vue+EChartsは、中国の地図の描画と省の自動回転と強調表示を実現します。

目次成果を達成する完全なコード + 詳細なコメントまとめ成果を達成する完全なコード + 詳細なコメン...

Elementはスクリプトを使用して新しいコンポーネントを自動的に構築します

目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...