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

推薦する

Windows 10 でカスタムドメイン名をバインドするように Hexo と GitHub を構成する方法

Hexo は Windows 10 でカスタムドメイン名を GitHub にバインドしますまずドメイ...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

Dockerモードで起動したTomcatのホームページにアクセスすると404エラーが発生する

シナリオ: docker で tomcat を起動すると (Alibaba Cloud からダウンロ...

npm グローバル モジュールのデフォルトのインストール パスを変更するためにノードのインストールをカスタマイズする手順

node を D ドライブにインストールしましたが、C ドライブのスペースを占有したくなかったため、...

Windows システムに VirtualBox と Ubuntu 16.04 をインストールするための詳細なチュートリアル

1. ソフトウェアの紹介バーチャルボックスVirtualBox は、無料のオープンソース仮想マシン ...

DevUI で独自の Angular コンポーネント ライブラリを構築する方法

目次序文コンポーネントライブラリの作成主要な構成の変更ディレクトリレイアウトの調整ライブラリ構築のた...

Golang を使って Docker API を実際に操作する

目次SDKのインストールローカル Docker の管理コンテナの実行バックグラウンドでコンテナを実行...

MySQL 8.0.12 のインストールと設定方法のグラフィック チュートリアル (Windows10)

この記事は、参考のためにMySQL 8.0.12のインストールグラフィックチュートリアルを記録してい...

固定ボトムコンポーネントを実装した Vue の例

目次【効果】 【実施方法】 【効果】 【実施方法】 <テンプレート> <div i...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

JavaScriptコールバック関数の詳細な理解

目次序文クイックレビュー: JavaScript 関数関数とは何ですか?関数を宣言する関数の呼び出し...

DockerコンテナはホストのMySQL操作にアクセスする

背景:インターフェイスを提供する Flask プロジェクトがあり、これは Docker コンテナを使...

HTML 5 ワーキングドラフトの謎を解く

World Wide Web Consortium (W3C) は、HTML 5 仕様のドラフトをリ...

MySQL InnoDB ストレージ エンジンの詳細

序文MySQL では、InnoDB はストレージ エンジン レイヤーに属し、プラグインとしてデータベ...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...