Linux:「デフォルトページエラーページング」と「手動でスワッピングを有効にする」の違い[閉じる]

Linux:「デフォルトページエラーページング」と「手動でスワッピングを有効にする」の違い[閉じる]

Linuxシステムでは、次のコマンドを使用してスワップを有効にできます。

sudo fallocate -l 500M /data/swapfile
sudo chmod 600 /data/swapfile
sudo mkswap /data/swapfile
sudo swapon /data/swapfile

ただし、この機能が有効になっていない場合でも、ページがメモリにない場合、カーネルは引き続きページを表示します。

スワップファイルを設定しなくても、マシンでコマンドを実行してsar -B 1 30確認できます。

03:08:40 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
03:08:41 AM      0.00      0.00      3.00      0.00     44.00      0.00      0.00      0.00      0.00
03:08:42 AM      0.00      0.00     19.00      0.00     30.00      0.00      0.00      0.00      0.00
03:08:43 AM      0.00      0.00      0.00      0.00      3.00      0.00      0.00      0.00      0.00
03:08:44 AM     24.00      0.00      2.00      1.00      7.00      0.00      0.00      0.00      0.00
03:08:45 AM    364.00     60.00     18.00      3.00      4.00      0.00      0.00      0.00      0.00
03:08:46 AM    140.00      0.00    392.00      2.00    243.00      0.00      0.00      0.00      0.00

しかもメイプルターこれにより、ディスク間ページングデータがトリガされます。

私の質問は次のとおりです

  • オペレーティングシステムには2種類のスワップがあると言えますか?
  • これらの2つのメカニズムはどのように異なる動作をしますか?
  • ページングメカニズムが常に機能している場合、なぜスワップを手動で有効にするのですか?

わかりました何人かの人々は言う:

スワップとは、プロセスアドレス空間全体または少なくとも共有できないテキストデータセグメントをスワップデバイスまたは逆(通常はディスク)に一度にコピーすることを意味します。

ページングとは、アドレス空間の1つ以上のページを内部/外部にコピーすることを意味します。特にこれはより細かいレベルです。たとえば、1 GB RAM アドレス空間には約 250,000 個の 4KB ページがあります。

しかし本ではLinux仮想メモリマネージャについて、Linuxではそうではないようです。

厳密に言えば、Linuxはスワッピングを行いません。これは、「スワップ」とは、プロセスアドレス空間全体をディスクにコピーすることを意味し、「ページング」は個々のページをコピーすることを意味するからである。 Linuxは実際に最新のハードウェアでサポートされているページングを実装していますが、伝統的に議論やドキュメントではこれをスワップと呼びました。 Linuxでは、単語の使用と一貫性を維持するために、これをスワップともいいます。

誰かがこれを説明できますか?ありがとうございます!

ベストアンサー1

しかもメイプルターこれにより、ディスクのデータページングがトリガされます。

逆に、主なエラーはページエラーであり、ページ付けによってのみ解決できます。存在するディスクのデータ。

オペレーティングシステムには2種類のスワップがあると言えますか?

全く違うわけではありません。呼び出し(ページを破棄するためにメモリの内容を「他の場所」にコピー)さまざまなバックアップストレージを使用できます。メモリのページにはさまざまなコールアウトターゲットがあります。マッピングされたファイルは通常独自のバックアップリポジトリであり、他のほとんどのページではバックアップリポジトリにスワップファイルまたはパーティションが必要です。交換は後者を意味します。カーネルがメモリページを解放する必要があるときにファイルから変更されていないページを解放したい場合は、必要に応じてファイルからページを復元できることを知っているので、簡単に削除できます。ファイルの変更されたページを削除する必要がある場合は、ファイルが読み取り/書き込みにマップされ、共有されていない場合、ページは再度削除される前にファイルに書き込まれ、カーネルはファイルからページを回復できることがわかります。 。他のものには別の形式の保存が必要で、そうでなければ捨てることはできません。

これらの2つのメカニズムはどのように異なる動作をしますか?

探す。

ページングメカニズムが常に機能している場合、なぜスワップを手動で有効にするのですか?

ほとんどは上記を参照してください。スワップの目的は、まだ独自のバックアップストアがないページにバックアップストアを提供することです。

また、見ることができますLinuxで仮想マシンにスワップスペースが必要なのはなぜですか?

おすすめ記事