検索
ホームページ運用・保守Linuxの運用と保守Linux スワップ領域の使用率が高い問題を解決する方法

    スワップとは何ですか?

    スワップ スペースはディスク上の領域であり、パーティション、ファイル、またはそれらの組み合わせになります。

    簡単に言うと、システムの物理メモリが不足している場合、Linux はアクセス頻度の低いデータをメモリに保存してスワップします。これにより、システムは各プロセスに対応できる物理メモリを増やすことができます。スワップに保存されているコンテンツにアクセスすると、スワップ上のデータがメモリにロードされます。これは、スワップ アウトとスワップ インとよく呼ばれるものです。

    なぜスワップが必要なのか?

    この質問に答えるには、スワップがどのようなメリットをもたらすのかを答える必要があります。

    一部の大規模なアプリケーション (LibreOffice、ビデオ エディターなど) では、起動プロセス中に大量のメモリが使用されますが、このメモリは多くの場合、起動時にのみ使用され、使用されることはありません。このメモリは、その後の操作中に再使用されることはほとんどありません。スワップを使用すると、システムはこの方法で使用されないメモリ データの部分をスワップに保存できるため、システムが使用できる物理メモリがさらに解放されます。

    多くのディストリビューション (ubuntu など) の休止機能はスワップ パーティションに依存しています。システムが休止状態になると、メモリ内のデータはスワップ パーティションに保存され、その後、メモリ内のデータはスワップ パーティションに保存されます。メモリにロードするとシステムの起動が高速化されるため、休止状態機能を使用する場合は、スワップ パーティションを構成し、そのサイズが物理メモリ以上である必要があります。

    場合によっては、物理メモリが制限されていますが、メモリを消費するプログラムを実行したい場合はどうすればよいですか?このとき、十分なスワップ領域を設定することで目標を達成でき、多少遅くなりますが、少なくとも実行できます。

    物理メモリはほとんどの場合十分ですが、プロセスが予想よりも多くのメモリを必要としたり、プロセスでメモリ リークが発生したりするなど、予期しない状況が常に発生します。 , カーネルの OOM キラーがトリガーされます。OOM キラーの設定に従って、いくつかのプロセスが強制終了されるか、システムが直接再起動されます (デフォルトでは、最も多くのメモリを消費するプロセスが最初に強制終了されます)。スワップをメモリとして使用すると、少し遅くなりますが、少なくともデバッグしたり、プロセスを強制終了したり、現在の作業の進行状況を保存したりする機会が得られます。

    Linux のメモリ管理を見たことがある人なら、システムの I/O 速度を上げるために、システムは可能な限り多くの空きメモリをキャッシュに使用することがわかります。スワップ時に、より多くの物理メモリがキャッシュに使用されるため、システム全体のパフォーマンスが向上します。

    スワップのデメリット?

    スワップのメリットを紹介しましたが、スワップのデメリットはどうでしょうか。スワップはディスクに保存されます。ディスクの速度はメモリの速度よりも数桁遅くなります。スワップの読み取りと書き込みを続けると、特にシステムが正常に動作していない場合、システムのパフォーマンスに確実に影響を及ぼします。メモリが非常に不足しています。スワップ スペースの頻度が非常に高く、システムの動作がまるで死んでいるかのように非常に遅くなります。現時点では、物理メモリを追加することが唯一の解決策です。

    システムは、使用頻度の低いメモリ データを自動的にスワップに移動するため、デスクトップ プログラムの場合、プログラムを最小化して再度開くと、メモリ データを移動する必要があるため、少し停止することがあります。データはメモリに再ロードされます。

    交換したほうがいいでしょうか?

    上記では、スワップとは何か、そのメリットとデメリットを紹介しましたが、スワップを設定する必要があるでしょうか?答えは「状況による」です。

    以下では、メモリ不足、メモリ不足、メモリ十分の 3 つの状況におけるサーバーおよびデスクトップ環境のスワップの選択について説明します。

    メモリが不足しています

    デスクトップでもサーバーでも、明らかに物理メモリが不足していてプログラムを実行したい場合は、スワップを追加することが唯一の選択肢です。遅いほど良いです。全く働かないよりは。

    メモリがかろうじて十分です

    スワップを構成して、カーネルが使用頻度の低いデータをメモリからスワップに移動し、より多くの物理メモリをシステム コールに使用できるようにすることをお勧めします。これにより、システムのパフォーマンスが向上すると同時に、時折発生する物理メモリ不足によるプロセスの異常終了も回避され、システムの安定性が向上します。ただし、サーバーの場合は、スワップ領域の使用量を制限または監視する必要があります。予想を超えているか、スワップイン/スワップアウトが頻繁に発生する場合は、時間内に対策を講じる必要があります。そうしないと、パフォーマンスに大きな影響を及ぼします。

    豊富なメモリ

    理論的には、十分な物理メモリがあり、ハイバネーション機能は必要ないため、スワップは役に立ちません。しかし、重要な問題は、一部のプロセスが予想よりも多くのメモリを消費するなど、予期しない状況が常に存在するため、どのような状況でも物理メモリが十分であることを保証するのが難しいということです。予想を超えるサーバー負荷、メモリリークなど。

    現在、明らかにメモリが不足しています。メモリ不足の原因は何ですか? mysql がサーバーのメモリ不足を直接引き起こすのはなぜですか?

    では、なぜ mysql サーバーでスワップが発生するのでしょうか?

    物理メモリが 16G、スワップが 4G であると仮定します。 MySQL 自体がすでに 12G の物理メモリを占有しており、同時に他のプログラムまたはシステム モジュールが 6G のメモリを必要としている場合、オペレーティング システムは MySQL が所有するアドレス空間の一部をマップしてスワップする可能性があります。

    率直に言うと、システムは、mysql が占有するスペースが大きすぎるため、特別なことを実行できないと考えています。他の必要なプロセス領域がメモリを使用するためのスペースを確保する必要があるため、プレイするにはスワップが遅くなります。バー!

    mysql で最大のメモリ占有量は innodb_buffer_pool_size なので、最初にこの値が不当に設定されているかどうかを考慮する必要がありますか?

    MySQL のメモリ消費量は次のように分類されます:

    • #1. セッション レベルのメモリ消費量: sort_buffer_size など、各セッションはsort_buffer_size を開く 並べ替え操作を実行するには

    • 2. グローバル メモリ消費量: 例: innodb_buffer_pool_size など、グローバル共有メモリ セグメント

    This DBA の専門的でない点は、最初の状況を考慮せず、セッション レベルでメモリ消費量を確認せず、innodb_buffer_pool_size を減らすように直接指示したことでした。

    InnoDB のバッファ プール キャッシュとは何ですか?用途は何ですか?適切な設定は何ですか?

    テーブル データとインデックス データをキャッシュし、ディスク上のデータをバッファ プールにロードして、アクセスごとのディスク IO を回避し、アクセスを高速化します。

    MySQL の同時実行パフォーマンスは、バッファ プールによって割り当てられたメモリ サイズに直接比例します。割り当てられたメモリが大きいほど、同時実行パフォーマンスは向上します。マシンのメモリの 99% をすべてバッファ プールに割り当てる必要がありますか? ######もちろん違います!言うまでもなく、オペレーティング システムのカーネルにも数ギガバイトのメモリが必要です。バッファ プールに加えて、MySQL には他の多くのメモリ データ構造もあります。これらはすべてメモリを必要とするため、上記の考えは絶対に実現不可能です。

    より適切な比率は、バッファ プールのメモリ サイズがマシンの総メモリの 50% ~ 60% を占めることです。

    show Engine innodb status\G; でヒット ステータスを確認できます。ヒットが 97% を超えない場合は、メモリの追加を検討できます。もちろん、これはビジネスにも関係します。たとえば、マスターへの書き込み量が多く、読み取り Less は特殊なケースです。

    その他の場合、97% を超えない場合、および大規模な読み取りの場合は、 98%以上に達しない場合はバッファが不足していることを意味しますので拡張可能ですが、逆にメモリを20%に分割するとヒット率は100%に達する可能性があり、空きページ数があれば十分です。また、空きページ数に応じて計算してメモリを削減することもできます。そのメモリを使用してみてはいかがでしょうか。

    以上がLinux スワップ領域の使用率が高い問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
    Linux:メンテナンスモードの入力と終了Linux:メンテナンスモードの入力と終了May 02, 2025 am 12:01 AM

    Linuxメンテナンスモードに入る方法には次のものがあります。1。grub構成ファイルを編集し、「シングル」または「1」パラメーターを追加し、Grub構成を更新します。 2。GRUBメニューでスタートアップパラメーターを編集し、「シングル」または「1」を追加します。終了メンテナンスモードでは、システムを再起動する必要があります。これらの手順を使用すると、必要に応じてメンテナンスモードをすばやく入力して安全に終了し、システムの安定性とセキュリティを確保できます。

    Linuxの理解:定義されたコアコンポーネントLinuxの理解:定義されたコアコンポーネントMay 01, 2025 am 12:19 AM

    Linuxのコアコ​​ンポーネントには、カーネル、シェル、ファイルシステム、プロセス管理、メモリ管理が含まれます。 1)カーネル管理システムリソース、2)シェルはユーザーインタラクションインターフェイスを提供します。3)ファイルシステムは複数の形式をサポートします。4)プロセス管理は、フォークなどのシステムコールを通じて実装され、5)メモリ管理は仮想メモリテクノロジーを使用します。

    Linuxの構成要素:主要なコンポーネントが説明しましたLinuxの構成要素:主要なコンポーネントが説明しましたApr 30, 2025 am 12:26 AM

    Linuxシステムのコアコンポーネントには、カーネル、ファイルシステム、ユーザースペースが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムは、データストレージと組織を担当します。 3.ユーザースペースでユーザープログラムとサービスを実行します。

    メンテナンスモードの使用:Linuxのトラブルシューティングと修復メンテナンスモードの使用:Linuxのトラブルシューティングと修復Apr 29, 2025 am 12:28 AM

    メンテナンスモードは、シングルユーザーモードまたはレスキューモードを介してLinuxシステムに入力される特別な動作レベルであり、システムのメンテナンスと修理に使用されます。 1.メンテナンスモードを入力し、コマンド「sudosystemctlisolaterscue.target」を使用します。 2。メンテナンスモードでは、ファイルシステムを確認して修復し、コマンド「FSCK/DEV/SDA1」を使用できます。 3.高度な使用法には、ルートユーザーパスワードのリセット、ファイルシステムの読み取りモードと書き込みモードのマウント、パスワードファイルの編集が含まれます。

    Linuxメンテナンスモード:目的の理解Linuxメンテナンスモード:目的の理解Apr 28, 2025 am 12:01 AM

    メンテナンスモードは、システムのメンテナンスと修理に使用され、管理者が簡素化された環境で作業できるようにします。 1。システム修理:破損したファイルシステムとブートローダーを修理します。 2。パスワードリセット:ルートユーザーパスワードをリセットします。 3。パッケージ管理:ソフトウェアパッケージをインストール、更新、または削除します。 GRUB構成を変更するか、特定のキーを使用してメンテナンスモードを入力することにより、メンテナンスタスクを実行した後、安全に終了できます。

    Linux操作:ネットワーキングとネットワーク構成Linux操作:ネットワーキングとネットワーク構成Apr 27, 2025 am 12:09 AM

    Linuxネットワークの構成は、次の手順で完了できます。1。ネットワークインターフェイスを構成し、IPコマンドを使用して、構成ファイルの永続性設定を一時的に設定または編集します。 2。固定IPを必要とするデバイスに適した静的IPを設定します。 3.ファイアウォールを管理し、iPtablesまたはFirewalldツールを使用してネットワークトラフィックを制御します。

    Linuxのメンテナンスモード:システム管理者ガイドLinuxのメンテナンスモード:システム管理者ガイドApr 26, 2025 am 12:20 AM

    メンテナンスモードは、Linuxシステム管理において重要な役割を果たし、修復、アップグレード、構成の変更を支援します。 1.メンテナンスモードを入力します。 Grubメニューから選択するか、コマンド「sudosystemctlisolaterscue.target」を使用できます。 2。メンテナンスモードでは、ファイルシステムの修理およびシステムの更新操作を実行できます。 3.高度な使用法には、ルートパスワードのリセットなどのタスクが含まれます。 4.メンテナンスモードに入ったり、ファイルシステムをマウントできないなどの一般的なエラーは、GRUB構成をチェックしてFSCKコマンドを使用して固定できます。

    Linuxのメンテナンスモード:それを使用する時期と理由Linuxのメンテナンスモード:それを使用する時期と理由Apr 25, 2025 am 12:15 AM

    Linuxメンテナンスモードを使用するタイミングと理由:1)システムが起動するとき、2)主要なシステムの更新またはアップグレードを実行するとき、3)ファイルシステムメンテナンスを実行するとき。メンテナンスモードは、安全で制御された環境を提供し、運用上の安全性と効率を確保し、ユーザーへの影響を減らし、システムセキュリティを強化します。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    Dreamweaver Mac版

    Dreamweaver Mac版

    ビジュアル Web 開発ツール