Linux におけるスワップ パーティションの役割の詳細な説明
この記事は主に Linux におけるスワップ パーティションの役割について詳しく説明したもので、困っている方の参考になれば幸いです。
この記事では主に Linux でのスワップ パーティションの関連内容について説明します。具体的な概要は次のとおりです。
スワップ パーティションの紹介
Embedded Linux 中国語サイトのニュース、Linux システムのスワップ パーティション、つまりスワップ領域、スワップ領域の役割は次のように簡単に説明できます。 システムの物理メモリが十分でない場合、物理メモリを次の場所に転送する必要があります。領域の一部は、現在実行中のプログラムで使用するために解放されます。解放された領域は、長期間動作しなかったプログラムによって発生する場合があります。解放された領域は、それらのプログラムが実行される直前に、スワップ領域に一時的に保存されます。このように、物理メモリが不足した場合、システムは常にスワップを実行します。実際、スワップ調整は Linux サーバー、特に Web サーバーのパフォーマンスにとって非常に重要です。スワップを調整することにより、システム パフォーマンスのボトルネックが克服され、システムのアップグレード コストが節約できる場合があります。
誰もが知っているように、最新のオペレーティング システムは「仮想メモリ」テクノロジを実装しています。これにより、機能面で物理メモリの制限が突破されるだけでなく、プログラムが実際の物理メモリよりも大きな領域を操作できるようになります。 " 「仮想メモリ」は、各プロセスが他のプログラムによって干渉されないように、各プロセスを分離する安全保護ネットです。
おそらく、コンピューターユーザーはよくこの現象に遭遇するでしょう。たとえば、Windows システムを使用している場合、複数のプログラムを同時に実行することができます。長い間注目していなかったプログラムに切り替えると、ハードディスクのビープ音が聞こえます。これは、このプログラムのメモリが頻繁に実行されるプログラムによって「盗まれ」、スワップ領域に配置されたためです。したがって、このプログラムがフロントエンドに配置されると、スワップ領域からデータを取得してメモリに格納し、実行を継続します。
さらに、物理メモリからスワップアウトされたすべてのデータがスワップに置かれるわけではなく (もしそうなら、スワップが圧倒されてしまいます)、データのかなりの部分がファイル システムに直接スワップされます。たとえば、一部のプログラムは、いくつかのファイルを開いてファイルの読み取りと書き込みを行います (実際、すべてのプログラムは、実行中のプログラム自体であるファイルを少なくとも 1 つ開く必要があります)。これらのプログラムのメモリ領域をスワップアウトする必要がある場合があります。ファイル部分のデータはスワップ領域に配置されますが、ファイルに直接配置することもできます。ファイル読み取り操作の場合、メモリ データは直接解放され、スワップアウトする必要はありません。ファイル書き込み操作の場合は、次回必要になったときに変更されたデータのみをファイル システムから直接復元できるためです。リカバリのためにファイルに保存する必要があります。ただし、malloc と新しい関数によって生成されるオブジェクトのデータは異なります。ファイル システム内に対応する「予約」ファイルがないため、スワップ スペースが必要になります。そのため、これらは「匿名」メモリ データと呼ばれます。このタイプのデータには、スタック内の一部のステータスおよび変数データも含まれます。したがって、スワップ空間は「匿名」データの交換空間です。
128M スワップ制限の突破
一部の Linux (国内中国語版) インストール マニュアルには次のような指示があります: スワップ領域は 128M を超えることはできません。なぜそう言われるのでしょうか? 「128M」という数字の由来を説明する前に、まず質問に答えておきます。現在、128M の制限はまったくありません。現在の制限は 2G です!
Linux システムのスワップ領域はページ化されており、各ページのサイズはメモリ ページのサイズと同じであるため、スワップ領域とメモリ間のデータ交換が容易になります。 Linux の古いバージョンがスワップ スペースを実装したとき、スワップ スペースの最初のページをすべてのスワップ スペース ページの「ビット マップ」として使用していました。これは、最初のページのすべてのビットがスワップ領域のページに対応することを意味します。このビットが 1 の場合は、このページのスワップが使用可能であることを意味し、0 の場合は、このページが不良ブロックであり使用できないことを意味します。このように、最初のスワップ ページはマッピング ページであるため、最初のスワップ マッピング ビットは 0 である必要があります。さらに、最後の 10 マッピング ビットもスワップ バージョンを示すために使用されます (元のバージョンは Swap_space、現在のバージョンは swapspace2)。すると、1ページのサイズをsとすると、このSwap実装方法では、合計「8 * (s - 10) - 1」ページのSwapページを管理することができます。 i386 システムの場合、s=4096、合計スペース サイズは 133890048 です。1 MB=2^20 バイトを考慮すると、サイズはちょうど 128M になります。
スワップ スペースを管理するこの方法は、スワップ スペース内の不良ブロックを防ぐことです。システムは、スワップに不良ブロックがあることを検出すると、対応するビットマップ上で 0 をマークし、このページが使用できないことを示します。このようにして、スワップを使用すると、不良ブロックが使用されず、システムでエラーが発生することがなくなります。
現在のシステム設計者は次のように考えています:
1. ハードドライブの品質は非常に良くなり、不良ブロックはほとんどありません。
2. あったとしても、多くはありません。不良ブロックをリストするだけでよく、ページごとにマッピングを作成する必要はありません。
3. 不良ブロックが多数ある場合、このハードドライブをスワップ領域として使用しないでください。
ということで、Linux はビット マッピング方式をキャンセルし、128M 制限もキャンセルしました。アドレスによる直接アクセス(2G に限定)。
スワップ構成のパフォーマンスへの影響
スワップ領域を割り当てすぎるとディスク領域が無駄になり、スワップ領域が少なすぎるとシステムエラーが発生します。
システムの物理メモリが使い果たされると、システムの動作は非常に遅くなりますが、スワップ領域が使い果たされると、システムでエラーが発生します。たとえば、Web サーバーは、さまざまなリクエスト数に基づいて複数のサービス プロセス (またはスレッド) を生成できます。スワップ領域が使い果たされると、サービス プロセスを開始できなくなり、通常は「アプリケーションがメモリ不足です」エラーが発生します。深刻な場合、サービスプロセスのデッドロックが発生します。したがって、スワップ領域の割り当ては非常に重要です。
通常、スワップ領域は物理メモリのサイズ以上である必要があり、最小値は 64M 未満であってはなりません。通常、スワップ領域のサイズは物理メモリの 2 ~ 2.5 倍である必要があります。ただし、アプリケーションに応じて、異なる構成が必要になります。小規模なデスクトップ システムの場合は、より小さいスワップ領域のみが必要ですが、大規模なサーバー システムでは、状況に応じて異なるサイズのスワップ領域が必要になります。特にデータベース サーバーと Web サーバーの場合、アクセス数が増加するにつれて、スワップ領域の要件も増加します。具体的な構成については、各サーバー製品の説明書を参照してください。
さらに、スワップ パーティションの数もパフォーマンスに大きな影響を与えます。スワップ操作はディスク IO 操作であるため、複数のスワップ領域がある場合、スワップ領域の割り当てはすべてのスワップに対して循環的に実行され、IO 負荷のバランスが大幅に分散され、スワップ交換が高速化されます。スワップ領域が 1 つしかない場合、すべてのスワップ操作によってスワップ領域が非常にビジーになり、システムはほとんどの時間待機状態になり、非常に非効率的になります。パフォーマンス監視ツールを使用すると、現時点では CPU はそれほどビジーではありませんが、システムが遅いことがわかります。これは、ボトルネックが IO であり、CPU の速度を上げることによって問題を解決できないことを示しています。
システムパフォーマンスの監視
スワップスペースの割り当ては確かに重要ですが、システムの実行中のパフォーマンス監視はさらに価値があります。パフォーマンス監視ツールを使用すると、システムのさまざまなパフォーマンス指標をチェックし、システム パフォーマンスのボトルネックを見つけることができます。この記事では、Solaris でのスワップに関連するいくつかのコマンドと使用法のみを紹介します。
最も一般的に使用されるのは Vmstat コマンドです (このようなコマンドはほとんどの Unix プラットフォームにあります)。 例:
vmstat 3
procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99 0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100 0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100 …………
コマンドの説明:
vmstat に続くパラメーターは、パフォーマンス インジケーターをキャプチャする時間間隔を指定します。 3 は 3 秒ごとにキャプチャすることを意味します。データの最初の行を読み取る必要はありません。これは、起動以降の平均パフォーマンスを反映するだけであり、値はありません。 2 行目からは、システムのパフォーマンス指標が 3 秒ごとに反映されます。これらのパフォーマンス指標のうち、スワップに関連するものには次のものが含まれます:
w under procs
メモリを解放してスワップアウトする必要がある現在のプロセス数を示します (3 秒以内)。
メモリ下のswpd
使用されるスワップ領域のサイズを示します。スワップの下の
si は、現在の (3 秒以内の) スワップバックされた (スワップイン) メモリの 1 秒あたりの総量をキロバイト単位で表します。 1 秒あたりにスワップアウトされるメモリの量 (KB 単位)。
上記のインジケーターの数が多いほど、システムはビジー状態になります。これらのインジケーターによって表されるシステムの混雑度は、システムの特定の構成に関連しています。システム管理者は、システムが正常に動作しているときのこれらの指標の値を記録し、システムに問題が発生したときに比較して問題を迅速に発見し、システムが正常に動作するための標準的な指標の値を策定する必要があります。パフォーマンスの使用を監視するため。
さらに、Swapon-s を使用して、Swap リソースの現在の使用状況を簡単に確認できます。例:
/dev/hda9 パーティション 361420 0 3
スワップ領域で使用されているリソースと未使用のリソースのサイズを簡単に確認できます。
良好なシステムパフォーマンスを確保するには、スワップ負荷を 30% 未満に保つ必要があります。
スワップ領域を増やすには、次の手順に従います:
1) スーパーユーザーになります
$su - root
2) スワップファイルを作成します
3) スワップ ファイルをアクティブ化します
4) これで、新しく追加されたスワップ ファイルが有効になりましたが、システムの再起動後は、以前の手順は記憶されません。したがって、ファイルの名前とスワップ タイプは、次のように /etc/fstab ファイルに記録する必要があります:
/path/swapfile none Swap sw,pri=3 0 0
5) スワップが行われているかどうかを確認します。ファイルが追加されます
/usr/sbin/swapon -s
1) スーパー ユーザーになります
2) Swapoff コマンドを使用して、スワップ領域を再利用します。
4) ファイル システムからこのファイルをリサイクルします。
Oracle スワップ 100% ケース分析
Oracle が Linux スワップ パーティションを使用しないようにする方法
MySQL が Linux スワップ パーティションの使用を回避し、読み取りおよび書き込みのパフォーマンスを向上させる方法
以上がLinux におけるスワップ パーティションの役割の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。
