コンピューティングLinuxのメモリ
の元トップは最終的に2019年6月23日午前11時30分16秒263お気に入りにリリースctylihuai読み込み
拡大
詳細は読解後転載http://linuxperf.com/?p=142、Benpian、参照
Linuxのメモリは、3つの部分、カーネル、プロセス、キャッシュに分かれています
Linuxカーネル:
そのようなカーネルコードとしてカーネルメモリの静的部分は、このようなブートオフに割り当てられたページ記述などのデータは、MemTotalを含め、むしろ予約カウントされない(dmesgので見ることができます)
【スラブ+ VmallocUsed +ページテーブル+ KernelStack + HardwareCorrupted +バウンス+ X】
次のインタフェースを介して、カーネルの動的メモリ割り当て:
alloc_pages / __ get_free_page:ページに割り当てられたユニット
vmalloc:バイトの仮想メモリアドレスの連続ブロックを割り当てられます
スラブ:アロケータ、kmallocの物理アドレスのバイトは連続したメモリブロックが割り当てられ、スラブに基づいており、一般的なキャッシュを使用してスラブ層 - 2 ^のサイズN、名前kmallocの-32、kmallocの-64、等(カーネル内の古い名前は、サイズ32、サイズ64、等です)。
ページ表:物理アドレスに仮想メモリアドレスを変換するために使用
KernelStack:各ユーザスレッドがカーネルに糸が、カーネル・スタック(カーネル・スタック)、カーネルスタックが割り当てられているが、コード・ユーザ・モードは、システムコール(システムコール)を介してアクセスすることができない、トラップ(トラップ)または異常(例外)状態が使用されるとき、
バウンス:一部の古いデバイスは、時にアプリケーションの問題I / O要求を、DMAの宛先アドレスが(例えば、より16M以上)ときに高いメモリであり、そのようなメモリ16M以下のようにのみアクセスメモリ不足、可能な低最後にカーネルメモリ一時バッファジャンプとして割り当てられ、ここではハイエンドでデータキャッシュメモリにコピーします。この追加データは、「バウンスバッファリング」と呼ばれるコピーし、I / Oパフォーマンスが低下します。バウンスバッファの多くは、追加のメモリを割り当てます。
ユーザー・プロセス:
hugepagesでは/ proc / meminfoの重複、どちらもLRUアクティブ/非アクティブに含まれていないでRSS / PSSのプロセスに含まれ、キャッシュに考慮しないことではないしていない独立した統計、統計やその他の項目がある/バッファ。プロセスはのhugepagesを使用した場合、そのRSS / PSSは増加しません。
使用のhugepages三つの方法:
(https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txtを参照してください)
(あなたが読んで使用している場合は(、)hugetlbfsアクセスも可能ですが、書き込みは()に動作しないのmmapを使用してアクセスすること)、その後上記のファイルを作成して、特殊なファイルシステムをマウントします。
あなたものhugepagesを使用することができたshmget /にshmatすることにより、SHM_HUGETLBマークを追加するために、コールたshmgetアプリケーションがメモリを共有しました。
mmap()することで、呼び出したときMAP_HUGETLBフラグもHuagepagesを使用することができますを指定します。
RSS、pssの、USS
メモリユーザプロセスは、以下のとおりです。コード処理、malloc関数のプロセス、共有プロセス、プロセスのマッピングファイル
コードメモリUSSに固有のプロセス、プロセス・スタック、メモリと共有ファイルを共有していません
PSSは、プロセス固有のメモリプラス(マッピングファイル共有および共有/共有プロセスの数)をメモリプロセスを共有しました
プロセスのフィードは、プロセスのすべての関連するメモリであり、
キャッシュ
無料の総キャッシュファイルは、アクセス速度を加速するために、キャッシュを読み書きするためにマッピングされています
IOディスクバッファは、読み取りと書き込みのキュー、速度の不一致を調整し、読み取りと書き込みのIOをスピードアップすることができますキャッシュ
そこマッピングされたキャッシュ・マップ・ファイル、プロセスコード、ファイルシステム、カーネル内の共有メモリベースのtmpfsが実装されています
ドロップキャッシュメモリを回収することができ、ファイルシステムは、リサイクルできない
----------------
、この記事では、CSDNブロガー元の記事「ctylihuai」であり、BY-SAの著作権契約CC 4.0に従ってください。免責事項再現し、元のソースのリンクと、この文を添付してください。
オリジナルリンクします。https://blog.csdn.net/ctylihuai/article/details/93379081