Linux のメモリが食われている
これは、メモリ管理における Windows と Linux の違いです。一見すると、Linux システムはメモリを消費します (Linux が RAM を食べました)が、実際には、これがメモリ管理の特徴でもあります。
以下は、free コマンドを使用して研究室ファイル サーバーのメモリを表示した結果です。-m オプションは、単位として MB を使用することを示します:
出力の 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 は、これらの空きメモリを最大限に活用します。設計上の考え方は、メモリに空きがある場合は、より多くのデータをキャッシュするためにメモリを使用する方が良いということです。次回プログラムがデータに再びアクセスするとき、速度は速くなります。プログラムがメモリを使用する必要があり、システム内のメモリが不足している場合、スワップ パーティションを使用する代わりに、キャッシュの一部がすぐにリサイクルされ、ユーザー プログラムが使用できるように残されます。
したがって、バッファ/キャッシュは実際には有益であり、無害であることがわかります。実際の欠点は、Linux がメモリを消費するという錯覚をユーザーに与える可能性があります!
実際には、そうではありません。Linux がメモリを使い果たしているわけではありません。スワップ パーティションが使用されておらず、メモリが不足している限り、Linux は大量のデータをキャッシュするため、幸運だと感じるはずです。次回も利用できるかもしれません。
次の実験は、上記の結論を検証するために使用されます:
大きなファイルを次々に読み取り、2 回読み取る方法を比較します。
1. まず 1G の大きなファイルを生成します
2. キャッシュをクリアする
3. このファイルを読み取って、所要時間をテストします
4. ファイルを再度読み取り、所要時間をテストします。
上記からわかるように、この 1G ファイルの最初の読み取りには約 18 秒かかりましたが、2 回目の読み取りにはわずか 0.3 秒しかかかりませんでした。これは完全に 60 倍の改善です!
以上が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)

ホットトピック









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

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

よくある質問と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学習の方法は次のとおりです。1。ファイルシステムとコマンドラインインターフェイス、2。LS、CD、MKDIR、3。ファイルの作成と編集などのファイル操作を学習するマスター基本コマンド、4。

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

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自体が必要であり、特定の操作は展開方法に依存します。セキュリティ最初に、適切なパスワード習慣を開発し、セキュリティリスクを回避するためにサードパーティツールからパスワードを取得しようとしないでください。

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