Linux スワップ パーティション (詳細説明)

Linux スワップ パーティション (詳細説明)

リナックス

1. SWAPとは

$ スワポン -s
ファイル名 タイプ サイズ 使用 優先度
/swap.img ファイル 2097148 0 -2

機能的には、スワップ パーティションは主に、メモリが不足しているときにメモリ内のデータの一部をスワップ スペースにスワップするために使用され、メモリ不足によりシステムが OOM やより致命的な状況を引き起こさないようにします。したがって、メモリ使用量に圧力がかかり、メモリのリサイクルがトリガーされ始めると、スワップ領域が使用される可能性があります。

2. swappiness は何を調節しますか?

/proc/sys/vm/swappinessファイルを使用して、スワップ関連のパラメータを調整できます。このファイルのデフォルト値は60で、可能な値の範囲は0〜100です。

$ cat /proc/sys/vm/swappiness
60
$ sysctl -q vm.swappiness
vm.スワップの有効性 = 60

$ sysctl vm.swappiness=10
$ sysctl -q vm.swappiness
vm.スワップの有効性 = 10

永続的な操作

$ vim /etc/sysctl.conf
vm.swappiness=10 #最後の行を有効にするには再起動が必要です

カーネルがスワップをどの程度積極的に使用するかを定義します。

  • 値が高いほど、カーネルはスワップをより積極的に使用します。
  • 値が低いほど、スワップを使用する動機が低くなります。
  • この値が 0 の場合、空きページとファイル バックアップ ページによって使用されるメモリの合計量は、最高水準点より少なくなります。
  • マーク)の場合、交換は致しかねます。これを 0 に調整すると、キャッシュをクリアしてメモリを再利用しようとします。
  • 値が 100 の場合、メモリが再利用されるときに、キャッシュからのメモリの再利用がスワップと同じ優先順位を持つことを意味します。つまり、現在 100M のメモリが必要な場合、50M のメモリがキャッシュからクリアされ、その後 50M の匿名ページがスワップ アウトされ、回復されたメモリがアプリケーションに渡されて使用される可能性が高くなります。しかし、これはキャッシュにスペースがあるかどうか、およびスワップが 50m を交換できるかどうかにも依存します。

file-backed:これは、上記のファイル マッピング ページのサイズです。

3. スワップ操作はいつ実行されますか?

メモリ リサイクル メカニズムには、kswapd サイクル チェックと直接メモリ リサイクルの 2 つがあります。要求されたメモリが残りのメモリよりも大きい場合、直接リサイクルがトリガーされます。では、kswapd プロセスの定期チェック中にリサイクルをトリガーする条件は何でしょうか?設計の観点から、kswapd プロセスは定期的にメモリをチェックし、特定のしきい値に達したときにメモリのリサイクルを開始する必要があります。このいわゆるしきい値は、現在のメモリ使用量の圧力として理解できます。つまり、メモリはまだ残っていますが、残りのメモリが比較的少ない場合、つまりメモリ圧力が高い場合は、メモリの一部を回収しようとする必要があります。これにより、突然のメモリ要求に対してシステムが可能な限り十分なメモリを確保できます。

Kswapd は、メモリ水位マークに基づいてメモリの再利用を開始するかどうかを決定します。マークが低くなると、残りのメモリが高くなるまで再利用を開始します。

現在のシステムメモリのウォーターマークを表示する
$ cat /proc/zoneinfo

4. スワップパーティションの優先順位

-p パラメータを使用して、スワップ領域の優先度を指定できます。値が大きいほど、優先度が高くなります。指定できる数値の範囲は -1 から 32767 です。

$ swapoff /dev/sdc1; swapon -p 0 /dev/sdc1
$ スワポン -s
ファイル名 タイプ サイズ 使用 優先度
/dev/sdc1 ファイル 2097148 0 0

$ cat /proc/スワップ
ファイル名 タイプ サイズ 使用 優先度
/dev/sdc1 ファイル 2097148 0 0

Linux を再起動するたびに有効になるように/etc/ fstabにエントリを追加します。

/dev/sdc1 スワップ スワップ pri=0 0 0

5. スワップの開始と停止

$ swapoff -a 停止 $ swapon -a 開始

6. スワップスペースを作成する

スワップファイルを作成します。dd if=/dev/sda3 of=./swapfile bs=1M count=1G
mkswap ./スワップファイル

スワップファイルを有効にする $ swapon swapfile

$ スワポン -s
ファイル名 タイプ サイズ 使用 優先度
/swap.img ファイル 2097148 3340 0
/mnt/swapfile ファイル 6388156 0 -2

スワップ領域をオフにする $ swapoff swapfile
$ スワポン -s
ファイル名 タイプ サイズ 使用 優先度
/swap.img ファイル 2097148 3156 0

上記は Linux スワップ パーティションの詳細な内容 (詳細説明) です。Linux スワップ パーティションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。今後とも123WORDPRESS.COMをよろしくお願いいたします!

以下もご興味があるかもしれません:
  • Linux インデックスノード inode の詳細な説明
  • Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します
  • Linux ネットワーク設定の詳細
  • MyCat を使用して Linux で MySQL マスター/スレーブの読み取り/書き込み分離を実装する方法
  • Unix/Linuxフォークの隠れたオーバーヘッド
  • Linux での UDP について学ぶ
  • Linux での C++ ネットワーク プログラミング、epoll テクノロジ、Windows での IOCP モデル
  • Linux サーバーは最大いくつのポートを開くことができますか?
  • Linux ファイル記述子、ファイルポインタ、および inode の詳細

<<:  div画像マーキーシームレス接続実装コード

>>:  CSSのマッチング問題を解決する

推薦する

MySQL の制限使用法とページングクエリステートメントのパフォーマンス分析の詳細な説明

使用制限クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要が...

MySQL で null 値と空文字 ('') を区別する

日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...

Dockerは元のタグのイメージの再タグ付けと削除を実装します

docker イメージ ID は一意であり、イメージを物理的に識別できます。repository: ...

sed コマンドを使用してファイルの特定の行を効率的に削除する方法

序文通常、ファイル内の特定の行を削除したい場合は、まずファイルを開き、削除する内容を見つけて、これら...

Ansibleを使用してディレクトリ内のすべてのコンテンツを削除する方法

Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...

Debian ベースの Linux システム ソフトウェア インストール コマンドの詳細な説明 (推奨)

Debian の紹介Debian は、広い意味では、フリーなオペレーティング システムの作成に専念...

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

選択ドロップダウンメニューのテキストを左右にスクロールするように設定する

marquee タグを使用してフォントのスクロールを設定したいです。コードは次のように記述しましたが...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...

Windows 2008 Server サブドメインを親ドメインに追加すると、ドメインが既に存在するというエラー メッセージが表示されます。

Windows 2008 Serverのサブドメインを親ドメインに参加させると、「ドメインは既に存...

JavaScript オブジェクトを作成する 3 つの方法

目次1. オブジェクトリテラル2. newキーワードはオブジェクトを作成する3. Object.cr...

MySQLとPythonの相互作用の例

目次1. データを準備するデータテーブルを作成するデータの挿入2. SQLドリル1. SQL文の強化...

JavaScript でアルゴリズムの複雑さを学ぶ方法

目次概要Big O 表記法とは何ですか?オー(1)の上) (n^2) O(logn) ですの上!)結...

CSSレイアウトにおけるフローティング問題に対する4つの解決策の詳細な説明

1. 原因:サブボックスをフロートに設定した後の効果: 青いボックスをフロートに設定すると、標準のド...