ホームページ システムチュートリアル Linux Linux のメモリが食われている

Linux のメモリが食われている

Feb 20, 2024 am 10:48 AM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

これは、メモリ管理における Windows と Linux の違いです。一見すると、Linux システムはメモリを消費します (Linux が RAM を食べました)が、実際には、これがメモリ管理の特徴でもあります。

Linux のメモリが食われている

無料コマンド紹介

以下は、free コマンドを使用して研究室ファイル サーバーのメモリを表示した結果です。-m オプションは、単位として MB を使用することを示します:

Linux のメモリが食われている

出力の 2 行目は、システム メモリの使用量を示します:

Mem: 合計 (合計) = 3920MB、

使用済み (中古) = 1938MB、

無料 (無料) = 1982MB、

shared (共有メモリ) = 0MB、

バッファ = 497MB、

キャッシュ = 1235MB

注: 最初の 4 つの項目は比較的理解しやすいです。バッファとキャッシュを翻訳するのに適切な言葉はありません。これらの違いは次のとおりです:

  • バッファとは、まだディスクに「書き込まれていない」ものです。
  • キャッシュとは、ディスクから「読み取られて」、後で使用するために保存されたものです。

つまり、バッファはディスクに出力されるデータを格納するために使用され、キャッシュはディスクから読み取られ、将来の使用のためにメモリに格納されるデータです。これらは IO パフォーマンスを提供するために導入されました。

出力の 3 行目は、2 行目 -/buffers/cache:

に基づいて何が取得されるかを示します。

– 使用されるバッファ/キャッシュ = 使用されるメモリ – バッファ – キャッシュ = 1938MB – 497MB – 1235MB = 205MB

バッファ/キャッシュの空き数 = キャッシュされたメモリの空きバッファ数 = 1982MB 497MB 1235MB = 3714MB

出力の 3 行目は、スワップ パーティションの使用を示します:

スワップ:合計 = 4095MB

使用済み(中古)= 0MB

無料(無料)= 4095MB

システムには現在十分なメモリがあるため、スワップ パーティションは使用されません。

上記の出力結果の 3 行目は、理解するのがさらに難しいかもしれません。なぜこのデータ行をユーザーに表示する必要があるのですか? メモリ使用量からシステム バッファ/キャッシュ メモリを引いたものは何を意味しますか? システムの空きメモリとバッファ/ キャッシュされたメモリとは何を意味しますか?

記憶の分類

私たちはメモリを 3 つのカテゴリに分類し、ユーザーとオペレーティング システムの観点からその用途に異なる名前を付けています。

上の表の内容は、free コマンドの「バッファ/キャッシュ」のメモリを表しています。このメモリはオペレーティング システムの観点からは実際に使用されていますが、ユーザーが使用したい場合は、このメモリをすぐに再利用できます。ユーザー プログラムによって使用されるため、このメモリはユーザーの観点からはアイドルとして分類される必要があります。

free コマンドで出力された結果にもう一度戻ります。3 行目の結果出力は理解できるはずです。この行の数値は、ユーザーの観点から見たシステム メモリの使用量を表しています。したがって、top または free コマンドを使用してシステムにどれだけのメモリが残っているかを確認する場合は、実際に空きメモリをバッファ/キャッシュ メモリに追加する必要があります。これが、システムの実際の空きメモリです。

バッファ/キャッシュされた特典
Linux のメモリ管理は、多くの慎重な設計を行っており、dentry のキャッシュ (ファイル パス名から i ノードへの変換を高速化するために VFS で使用) に加えて、バッファ キャッシュとページ キャッシュという 2 つの主要なキャッシュ メソッドも採用しています。目的は、ディスク IO パフォーマンスを向上させるためです。低速なブロックデバイスから読み取られたデータは一時的にメモリに保持されるため、その時点でデータが不要になった場合でも、次回アプリケーションがデータにアクセスするときにメモリから直接読み込むことができるため、低速を回避できます。したがって、システム全体のパフォーマンスが向上します。

Linux は、これらの空きメモリを最大限に活用します。設計上の考え方は、メモリに空きがある場合は、より多くのデータをキャッシュするためにメモリを使用する方が良いということです。次回プログラムがデータに再びアクセスするとき、速度は速くなります。プログラムがメモリを使用する必要があり、システム内のメモリが不足している場合、スワップ パーティションを使用する代わりに、キャッシュの一部がすぐにリサイクルされ、ユーザー プログラムが使用できるように残されます。

したがって、バッファ/キャッシュは実際には有益であり、無害であることがわかります。実際の欠点は、Linux がメモリを消費するという錯覚をユーザーに与える可能性があります!

実際には、そうではありません。Linux がメモリを使い果たしているわけではありません。スワップ パーティションが使用されておらず、メモリが不足している限り、Linux は大量のデータをキャッシュするため、幸運だと感じるはずです。次回も利用できるかもしれません。

実験による証明

次の実験は、上記の結論を検証するために使用されます:

大きなファイルを次々に読み取り、2 回読み取る方法を比較します。

1. まず 1G の大きなファイルを生成します

Linux のメモリが食われている

2. キャッシュをクリアする

Linux のメモリが食われている

3. このファイルを読み取って、所要時間をテストします

Linux のメモリが食われている

4. ファイルを再度読み取り、所要時間をテストします。

Linux のメモリが食われている

上記からわかるように、この 1G ファイルの最初の読み取りには約 18 秒かかりましたが、2 回目の読み取りにはわずか 0.3 秒しかかかりませんでした。これは完全に 60 倍の改善です!

以上が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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQLはAndroidで実行できますか MySQLはAndroidで実行できますか Apr 08, 2025 pm 05:03 PM

MySQLはAndroidで直接実行できませんが、次の方法を使用して間接的に実装できます。Androidシステムに構築されたLightWeight Database SQLiteを使用して、別のサーバーを必要とせず、モバイルデバイスアプリケーションに非常に適したリソース使用量が少ない。 MySQLサーバーにリモートで接続し、データの読み取りと書き込みのためにネットワークを介してリモートサーバー上のMySQLデータベースに接続しますが、強力なネットワーク依存関係、セキュリティの問題、サーバーコストなどの短所があります。

Linuxの最も使用は何ですか? Linuxの最も使用は何ですか? Apr 09, 2025 am 12:02 AM

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

Centosインタビューの質問:Linuxシステム管理者のインタビューをエース Centosインタビューの質問:Linuxシステム管理者のインタビューをエース Apr 09, 2025 am 12:17 AM

よくある質問とCentosインタビューへの回答には次のものがあります。1。YumまたはDNFコマンドを使用して、SudoyuminInstallnginxなどのソフトウェアパッケージをインストールします。 2。sudouseradd-m-s/bin/bashnewuserなどのuseraddおよびgroupAddコマンドを介してユーザーとグループを管理します。 3. firewalldを使用して、sudofirewall-cmd - permanent-add-service = httpなどのファイアウォールを構成します。 4. sudoyuninstallyum-cronなどのyum-cronを使用する自動更新を設定し、Apply_updates = yesを構成します。

Linuxの基本を学ぶ方法は? Linuxの基本を学ぶ方法は? Apr 10, 2025 am 09:32 AM

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

主要なLinux操作:初心者向けガイド 主要なLinux操作:初心者向けガイド Apr 09, 2025 pm 04:09 PM

Linuxの初心者は、ファイル管理、ユーザー管理、ネットワーク構成などの基本操作をマスターする必要があります。 1)文件管理:使用mkdir、タッチ、ls rm 3)ネットワーク構成:ifconfig、echo、およびufwコマンドを使用します。これらの操作はLinuxシステム管理の基礎であり、それらをマスターすることでシステムを効果的に管理できます。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

MongoDBのNAVICATでデータベースパスワードを表示する方法は? MongoDBのNAVICATでデータベースパスワードを表示する方法は? Apr 08, 2025 pm 09:21 PM

MongoDBのNAVICATパスワードは暗号化され、接続情報のみが保持されるため、データベースパスワードを表示できません。パスワードの取得にはMongoDB自体が必要であり、特定の操作は展開方法に依存します。セキュリティ最初に、適切なパスワード習慣を開発し、セキュリティリスクを回避するためにサードパーティツールからパスワードを取得しようとしないでください。

SQLiteデータベースパスワードを表示するNAVICATの方法 SQLiteデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:36 PM

概要:sqliteには従来のパスワードフィールドがないため、navicatはsqliteパスワードを表示できません。 SQLiteのセキュリティは、ファイルシステムの許可制御に依存しています。ファイルのパスワードを忘れた場合、取得できません(データベースが暗号化されていない限り、キーが必要です)。

See all articles