Linux システムの動作が遅い、またはメモリが不足しているという状況に遭遇したことがありますか?システムのスワップとバッファが適切に構成されていないことが原因である可能性があります。この記事では、スワップとバッファーについて詳しく理解し、それらを最適化してシステムのパフォーマンスを次のレベルに引き上げる方法を説明します。
![[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド](https://img.php.cn/upload/article/000/887/227/170779825771992.png?x-oss-process=image/resize,p_40)
Linux のメモリの仕組みは何ですか?
物理メモリから直接データを読み書きする方が、ハードディスクからデータを読み書きするよりもはるかに高速であることがわかっています。したがって、すべてのデータの読み書きがメモリ内で完了することを望みますが、メモリは限られているため、物理メモリと仮想メモリの概念。
物理メモリは、システム ハードウェアによって提供されるメモリ サイズです。実メモリです。物理メモリと比較して、Linux では仮想メモリの概念があります。仮想メモリは、物理メモリの不足を満たすために提案された戦略です。論理メモリはディスク領域を利用して仮想化されており、仮想メモリとして使用されるディスク領域をスワップ領域と呼びます。
Linux は、物理メモリの拡張として、物理メモリが不足した場合に、スワップ パーティションの仮想メモリを使用します。具体的には、カーネルは、一時的に使用されていないメモリ ブロック情報をスワップ領域に書き込みます。物理メモリが解放されると、このメモリは他の目的に使用でき、元のコンテンツが必要になると、情報はスワップ領域から物理メモリに再度読み取られます。
Linux のメモリ管理はページング アクセス メカニズムを採用しており、物理メモリを最大限に活用できるようにするために、カーネルは適切なタイミングで物理メモリ内の使用頻度の低いデータ ブロックを仮想メモリに自動的にスワップし、頻繁に使用される情報を仮想メモリにスワップします。物理メモリに保持されます。
Linux のメモリ操作メカニズムを深く理解するには、次の点を理解する必要があります。
Linux システムは、可能な限り多くの空き物理メモリを維持するために、時々ページ スワップ操作を実行します。メモリを必要とするものが何もない場合でも、Linux は一時的に使用されていないメモリ ページをスワップ アウトします。これにより、交換までの待ち時間を回避できます。
Linux ページのスワップは条件付きです。使用されていないときにすべてのページが仮想メモリにスワップされるわけではありません。Linux カーネルは、「最近使用された」アルゴリズムに基づいて、使用頻度の低い一部のページ ファイルのみを仮想メモリにスワップします。時々、これが表示されます。現象: Linux には依然として大量の物理メモリがありますが、大量のスワップ領域も使用されます。実際、これは驚くことではありません。たとえば、大量のメモリを消費するプロセスの実行時に多くのメモリ リソースを消費する必要がある場合、一部の珍しいページ ファイルが仮想メモリにスワップされますが、後でこのプロセスが使用されることになります。大量のメモリ リソースが仮想メモリにスワップされます。プロセスが終了して大量のメモリが解放されても、スワップアウトされたばかりのページ ファイルは物理メモリに自動的にスワップされません。これが必要でない限り、システムの物理メモリはこの時点でメモリはかなり空き、スワップ領域も使用されているため、上記のような現象が発生します。何が起こっているかを知っている限り、現時点では心配する必要はありません。
スワップ領域内のページは、使用時に最初に物理メモリにスワップされます。この時点でこれらのページを収容するのに十分な物理メモリがない場合は、すぐにスワップアウトされます。その結果、十分なメモリが確保されない可能性があります。これらのスワップ ページを仮想メモリに保存すると、最終的に Linux の誤ったクラッシュやサービス異常などの問題が発生し、一定期間内に Linux は自動的に回復しますが、回復されたシステムは基本的に使用できなくなります。
したがって、Linux メモリの使用を適切に計画および設計することが非常に重要です。
Linux オペレーティング システムでは、アプリケーションがファイル内のデータを読み取る必要がある場合、オペレーティング システムはまずメモリを割り当て、ディスクからこれらのメモリにデータを読み取り、必要に応じてデータをアプリケーションに配布します。ファイルにデータを書き込む場合、オペレーティング システムはまずユーザー データを受信するためにメモリを割り当て、次にそのデータをメモリからディスクに書き込みます。ただし、ディスクからメモリへの読み取り、またはメモリからディスクへの書き込みが必要なデータが大量にある場合、システムの読み取りおよび書き込みパフォーマンスは非常に低くなります。ディスクへの書き込みやディスクへのデータの書き込みは、非常に長いプロセスであり、時間とリソースを消費するプロセスです。この場合、Linux はバッファとキャッシュ メカニズムを導入しました。
バッファとキャッシュは両方ともメモリ操作であり、システムによって開かれたファイルとファイル属性情報を保存するために使用されます。このようにして、オペレーティング システムが特定のファイルを読み取る必要がある場合、まずバッファとキャッシュを検索します。メモリ領域が見つかった場合は、直接読み出してアプリケーションに送信します。必要なデータが見つからない場合は、ディスクから読み取られます。これがオペレーティング システムのキャッシュ メカニズムです。キャッシュを通じて、オペレーティング システムのパフォーマンスが向上します。システムが大幅に改善されました。ただし、バッファとキャッシュされたバッファの内容は異なります。
Buffers はブロック デバイスのバッファーに使用されます。これはファイル システムのメタデータと実行中のページの追跡のみを記録しますが、cached はファイルのバッファーに使用されます。より簡単に言うと、バッファは主にディレクトリの内容、ファイルの属性、アクセス許可などを保存するために使用されます。そして、キャッシュは、開いたファイルとプログラムを記憶するために直接使用されます。
私たちの結論が正しいかどうかを検証するために、非常に大きなファイルを vi で開いてキャッシュ内の変更を確認し、そのファイルを再度 vi で開いて、そのファイルを 2 回開く速度の類似点と相違点を確認します。 2回目に開くのですが、1回目よりも速度が大幅に速くなりましたか?次に、次のコマンドを実行します:
find / -name .conf を実行してバッファーの値が変化するかどうかを確認し、find コマンドを繰り返し実行して 2 回の表示速度の違いを確認します。
Linux が仮想メモリ (スワップ) を使い始めたのはいつですか?
リーリー上記の 60 は、物理メモリの 40% が使用されている場合にスワップが使用されることを意味します (ネットワーク情報を参照: 残りの物理メモリが 40% 未満になると (40=100-60)、スワップ領域はused) swappiness=0 swappiness = 100 の場合、スワップ パーティションを積極的に使用し、メモリ上のデータをタイムリーにスワップ領域に移動することを意味します。
値が大きいほど、スワップが使用される可能性が高くなります。 0 に設定できます。これはスワップの使用を禁止しませんが、スワップを使用する可能性を最小限に抑えるだけです。
通常: スワップ パーティションの設定はメモリの 2 倍にすることをお勧めします (メモリが 4G 以下の場合)。メモリが 4G を超える場合は、スワップをメモリより大きくするだけで済みます。さらに、システムのパフォーマンスが向上するように、スワップ性をできるだけ下げるようにしてください。
B. swappiness パラメータを変更する
リーリーこれはすぐに有効になり、再起動後に有効になることもあります。
メモリを解放するにはどうすればよいですか?
一般的なシステムでは、メモリの主要な構成ファイル /proc/sys/vm/drop_caches が自動的に解放されません。このファイルにはキャッシュ解放のパラメータが記録されており、デフォルト値は 0 (キャッシュが解放されないことを意味します) です。その値は 0 から 3 までの任意の数値で、さまざまな意味を表します:
- 0 – を解放しない
- 1 – ページキャッシュを解放します
- 2 – dentry と inode を解放します
- 3 – すべてのキャッシュを解放します
実際の操作:
![[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド](https://img.php.cn/upload/article/000/887/227/170779825727632.png?x-oss-process=image/resize,p_40)
明らかに空きメモリがたくさんあります
スワップを解放するにはどうすればよいですか?
前提: まず、残りのメモリがスワップ使用量以上であることを確認してください。そうでないとクラッシュします。メモリのメカニズムによれば、スワップ パーティションが解放されると、スワップ パーティションに格納されているすべてのファイルが物理メモリに転送されます。スワップの解放は通常、スワップ パーティションを再マウントすることによって行われます。
a. 現在のスワップ パーティションがどこにマウントされているか確認しますか? b. このパーティションをシャットダウンします c. ステータスを確認します: d. スワップ パーティションがシャットダウンされているかどうかを確認します。最後の行にすべてが表示されます e. スワップを /dev/sda5 にマウントします f. マウントが成功したかどうかを確認します
![[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド](https://img.php.cn/upload/article/000/887/227/170779825755964.png?x-oss-process=image/resize,p_40)
この記事の導入部を通じて、Linux システムにおけるスワップとバッファの基本的な概念と使用法、およびそれらの使用法を確認する方法をすでに理解しました。同時に、システムのパフォーマンスとメモリ使用率をさらに向上させるための実用的な最適化の提案をいくつか共有しました。この記事がお役に立てば幸いです!
以上が[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

インターネットは単一のオペレーティングシステムに依存していませんが、Linuxはその上で重要な役割を果たしています。 Linuxは、サーバーやネットワークデバイスで広く使用されており、安定性、セキュリティ、スケーラビリティに人気があります。

Linuxオペレーティングシステムのコアは、コマンドラインインターフェイスで、コマンドラインを介してさまざまな操作を実行できます。 1.ファイルおよびディレクトリ操作は、ファイルとディレクトリを管理するために、LS、CD、MKDIR、RM、その他のコマンドを使用します。 2。ユーザーおよび許可管理は、useradd、passwd、chmod、その他のコマンドを介してシステムのセキュリティとリソースの割り当てを保証します。 3。プロセス管理は、PS、Kill、およびその他のコマンドを使用して、システムプロセスを監視および制御します。 4。ネットワーク操作には、Ping、Ifconfig、SSH、およびネットワーク接続を構成および管理するためのその他のコマンドが含まれます。 5.システムの監視とメンテナンスは、TOP、DF、DUなどのコマンドを使用して、システムの動作ステータスとリソースの使用を理解します。

導入 Linuxは、柔軟性と効率性により、開発者、システム管理者、およびパワーユーザーが好む強力なオペレーティングシステムです。しかし、頻繁に長く複雑なコマンドを使用することは退屈でERです

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

はじめに:Linuxベースの倫理的ハッキングでデジタルフロンティアを保護します ますます相互に接続されている世界では、サイバーセキュリティが最重要です。 倫理的なハッキングと浸透テストは、脆弱性を積極的に特定し、緩和するために不可欠です

基本的なLinux学習の方法は次のとおりです。1。ファイルシステムとコマンドラインインターフェイス、2。LS、CD、MKDIR、3。ファイルの作成と編集などのファイル操作を学習するマスター基本コマンド、4。

Linuxは、サーバー、組み込みシステム、デスクトップ環境で広く使用されています。 1)サーバーフィールドでは、Linuxは、その安定性とセキュリティにより、Webサイト、データベース、アプリケーションをホストするための理想的な選択肢となっています。 2)埋め込みシステムでは、Linuxは高いカスタマイズと効率で人気があります。 3)デスクトップ環境では、Linuxはさまざまなユーザーのニーズを満たすために、さまざまなデスクトップ環境を提供します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
