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のマッチング問題を解決する

推薦する

ブートストラップ学習体験のまとめ - CSS スタイル デザイン共有

プロジェクトのニーズにより、ブートストラップ フレームワークを慎重に学習する予定です。以前から少しは...

WeChatアプレットで数字当てゲームを実装する実際のプロセス

目次機能紹介レンダリング1. ホームページレンダリング用のコード(index03) 2. ゲーム開始...

Vue プロジェクトでのスキャンコード決済の実装例 (デモ付き)

目次需要背景思考分析UI 表示始める1. 支払いコンポーネントテンプレートを作成する2. 支払いコン...

jsはクリックしてカードを切り替える機能を実現します

この記事の例では、クリックしてカードを切り替える機能を実現するためのjsの具体的なコードを共有してい...

MySQLは2つの日付間の日数、月数、年数を計算します

MySQL 組み込みの日付関数 TIMESTAMPDIFF は、2 つの日付間の秒数、分数、時間数、...

Windows での MySQL 8.0.13 解凍バージョンのインストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.13のインストールグラフィックチュートリアルを紹介します...

HTML のインラインブロックの空白を素早く削除する 5 つの方法

inline-block プロパティ値は、「インライン」要素のマージンとパディングを制御する必要があ...

MySQL 8.0.17 解凍版のインストールと設定方法のグラフィックチュートリアル

インストール中に遭遇した問題を記録しておきますので、皆様のお役に立てれば幸いです。 1. ダウンロー...

vue cli3は環境ごとにパッケージ化の手順を実装します

cli3 でビルドされた vue プロジェクトは、ゼロ構成ファイルとして知られています。パッケージ化...

MySQLは実際に分散ロックを実装できる

序文前回の記事では、eコマース シナリオでのフラッシュ セールの例を通じて、モノリシック アーキテク...

Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...

HTML メタタグの一般的な使用例のコレクション

マタタグとは<meta> 要素は、検索エンジン向けの説明やキーワード、更新頻度など、ペー...

Nginx+SSL による双方向認証を実装するためのサンプル コード

まずディレクトリを作成する cd /etc/nginx mkdir ssl cd ssl CA と自...

jQueryをベースにカルーセル効果を実現する

この記事では、カルーセルマップの効果を実現するためのjQueryの具体的なコードを参考までに共有しま...

クラウドネイティブテクノロジー Kubernetes (K8S) の紹介

目次01 Kubernetes とは何ですか? 02 KubernetesとCompost+Swar...