ホームページ システムチュートリアル Linux [Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド

[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド

Feb 13, 2024 pm 12:24 PM
Linuxシステム

Linux システムの動作が遅い、またはメモリが不足しているという状況に遭遇したことがありますか?システムのスワップとバッファが適切に構成されていないことが原因である可能性があります。この記事では、スワップとバッファーについて詳しく理解し、それらを最適化してシステムのパフォーマンスを次のレベルに引き上げる方法を説明します。

[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド

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 システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド

明らかに空きメモリがたくさんあります

スワップを解放するにはどうすればよいですか?

前提: まず、残りのメモリがスワップ使用量以上であることを確認してください。そうでないとクラッシュします。メモリのメカニズムによれば、スワップ パーティションが解放されると、スワップ パーティションに格納されているすべてのファイルが物理メモリに転送されます。スワップの解放は通常、スワップ パーティションを再マウントすることによって行われます。

a. 現在のスワップ パーティションがどこにマウントされているか確認しますか? b. このパーティションをシャットダウンします c. ステータスを確認します: d. スワップ パーティションがシャットダウンされているかどうかを確認します。最後の行にすべてが表示されます e. スワップを /dev/sda5 にマウントします f. マウントが成功したかどうかを確認します

[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイド

この記事の導入部を通じて、Linux システムにおけるスワップとバッファの基本的な概念と使用法、およびそれらの使用法を確認する方法をすでに理解しました。同時に、システムのパフォーマンスとメモリ使用率をさらに向上させるための実用的な最適化の提案をいくつか共有しました。この記事がお役に立てば幸いです!

以上が[Linux システムの最適化] メモリ空間を解放する — スワップとバッファの最適化ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Linux でのタスク マネージャーの使用 Linux でのタスク マネージャーの使用 Aug 15, 2024 am 07:30 AM

「Linux にはタスク マネージャーはありますか?」、「Linux でタスク マネージャーを開くにはどうすればよいですか?」 Linux 初心者がよく尋ねる質問は数多くあります。Windows のユーザーは、タスク マネージャーが非常に便利であることを知っています。 Windows で Ctrl+Alt+Del を押すと、タスク マネージャーを開くことができます。このタスク マネージャーには、実行中のすべてのプロセスとそれらが消費するメモリが表示され、タスク マネージャー プログラムからプロセスを選択して強制終了できます。初めて Linux を使用するときは、Linux のタスク マネージャーに相当するものを探すこともあります。 Linux の専門家は、プロセスやメモリ消費量などを確認するためにコマンド ラインを使用することを好みますが、そうする必要はありません。

中国語監視サーバーZabbixにおけるグラフ・チャートの表示が文字化けする問題を解決 中国語監視サーバーZabbixにおけるグラフ・チャートの表示が文字化けする問題を解決 Jul 31, 2024 pm 02:10 PM

Zabbix の中国語サポートはあまり良くありませんが、それでも管理目的で中国語を選択することがあります。これは、グラフィック アイコンの下に小さな四角形が表示されます。これは間違っており、フォントをダウンロードする必要があります。たとえば、「Microsoft Yahei」、「Microsoft Yahei.ttf」は「msyh.ttf」という名前になり、ダウンロードしたフォントを /zabbix/fonts/fonts にアップロードし、/zabbix/include/defines.inc.php 内の 2 つの文字を変更します。ファイルの定義('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

Linux ユーザーの登録日を確認する 7 つの方法 Linux ユーザーの登録日を確認する 7 つの方法 Aug 24, 2024 am 07:31 AM

Linux システムでアカウントの作成日を確認する方法をご存知ですか?知っていたら何ができるでしょうか?成功しましたか? 「はい」の場合、どうすればよいですか?基本的に Linux システムはこの情報を追跡しません。では、この情報を取得する別の方法は何でしょうか?なぜこれをチェックするのか疑問に思われるかもしれません。はい、この情報を確認する必要がある状況があり、そのときに役立ちます。以下の7つの方法で確認できます。 /var/log/secure を使用する aureport ツールを使用する .bash_logout を使用する chage コマンドを使用する useradd コマンドを使用する passwd コマンドを使用する last コマンドを使用する 方法 1: /var/l を使用する

Linux システムで WPS にフォントがないためにファイルが文字化けする場合はどうすればよいですか? Linux システムで WPS にフォントがないためにファイルが文字化けする場合はどうすればよいですか? Jul 31, 2024 am 12:41 AM

1. インターネットからフォント wingdings、wingdings2、wingdings3、Webdings、および MTExtra を見つけます。 2. メイン フォルダーに入り、Ctrl+H (隠しファイルを表示) を押し、.fonts フォルダーがあるかどうかを確認します。 3. wingdings、wingdings2、wingdings3、Webdings、MTExtra などのダウンロードしたフォントをメイン フォルダーの .fonts フォルダーにコピーし、wps を起動して、「システムにフォントがありません...」というリマインダー ダイアログがまだあるかどうかを確認します。そうでない場合は、「成功」をクリックしてください。

5 分で Fedora にフォントを追加する方法を教えます 5 分で Fedora にフォントを追加する方法を教えます Jul 23, 2024 am 09:45 AM

システム全体のインストール フォントをシステム全体にインストールすると、すべてのユーザーがそのフォントを使用できるようになります。これを行う最善の方法は、公式ソフトウェア リポジトリから RPM パッケージを使用することです。開始する前に、Fedora Workstation の「ソフトウェア」ツール、または公式リポジトリを使用する他のツールを開きます。選択バーで「アドオン」カテゴリを選択します。次に、カテゴリ内の「フォント」を選択します。以下のスクリーンショットにあるような、使用可能なフォントが表示されます。 フォントを選択すると、いくつかの詳細が表示されます。いくつかのシナリオに応じて、フォントのサンプル テキストをプレビューできる場合があります。 「インストール」ボタンをクリックしてシステムに追加します。システム速度とネットワーク帯域幅によっては、このプロセスが完了するまでに時間がかかる場合があります。

Centos 7 のインストールと構成 NTP ネットワーク時刻同期サーバー Centos 7 のインストールと構成 NTP ネットワーク時刻同期サーバー Aug 05, 2024 pm 10:35 PM

実験環境: OS: LinuxCentos7.4x86_641。現在のサーバーのタイムゾーンを表示し、タイムゾーンをリストし、タイムゾーンを設定します (すでに正しいタイムゾーンである場合はスキップしてください): #timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia /上海2. タイムゾーンの概念の理解: GMT、UTC、CST、DSTUTC: 国際無線通信の状況では、統一するために、地球全体が 24 のタイムゾーンに分かれています。協定世界時 (UTC) :UniversalTim と呼ばれる統一時刻が使用されます。

1本のネットワークケーブルを使用して2つのUbuntuホストをインターネットに接続する方法 1本のネットワークケーブルを使用して2つのUbuntuホストをインターネットに接続する方法 Aug 07, 2024 pm 01:39 PM

1 本のネットワーク ケーブルを使用して 2 つの ubuntu ホストをインターネットに接続する方法 1. ホスト A: ubuntu16.04 とホスト B: ubuntu16.042 を準備します。ホスト A には 2 つのネットワーク カードがあり、1 つは外部ネットワークに接続され、もう 1 つは外部ネットワークに接続されます。ホストBに。 iwconfig コマンドを使用して、ホスト上のすべてのネットワーク カードを表示します。上に示したように、作成者の A ホスト (ラップトップ) 上のネットワーク カードは次のとおりです。 wlp2s0: これはワイヤレス ネットワーク カードです。 enp1s0: 有線ネットワーク カード、ホスト B に接続されているネットワーク カード。残りの部分は私たちには関係ないので、気にする必要はありません。 3. A の静的 IP を構成します。ファイル #vim/etc/network/interfaces を編集して、以下に示すようにインターフェイス enp1s0 の静的 IP アドレスを構成します (#==========

投げ捨てる! Raspberry Pi で DOS を実行する 投げ捨てる! Raspberry Pi で DOS を実行する Jul 19, 2024 pm 05:23 PM

CPU アーキテクチャが異なるため、Raspberry Pi 上で DOS を実行するのは簡単ではありませんが、それほど問題はありません。 FreeDOS は誰にとっても馴染みのあるものかもしれません。これは、DOS 用の完全な無料の互換性の高いオペレーティング システムであり、一部の古い DOS ゲームや商用ソフトウェアを実行でき、組み込みアプリケーションも開発できます。プログラムが MS-DOS 上で実行できる限り、FreeDOS 上でも実行できます。 FreeDOS のイニシエーターおよびプロジェクト コーディネーターとして、多くのユーザーが内部関係者として私に質問をします。私が最もよく聞かれる質問は、「FreeDOS は Raspberry Pi 上で実行できますか?」というものです。この質問は驚くべきことではありません。結局のところ、Linux は Raspberry Pi 上で非常にうまく動作します

See all articles