Linuxのfreeコマンド

  
は、Linuxのfreeコマンドの出力について説明しています。以下はフリーラン、合計4行の結果です。説明のために、列番号を追加しました。これにより、自由出力を2次元配列FO(Free Output)として扱うことができます。 FO [2] [1] = 15402628 FO [3] [2] = 12033012 freeの出力は合計4行で、4番目の動作は、合計交換金額(total)、usage(used)である交換領域の情報です。そして、いくつの自由な交換地域(自由)があるか、これは明らかです、それほど多くはありません。自由出力の2行目と3行目は混乱を招きます。両方の行はメモリ使用量を記述します。最初の列はtotal、2番目の列は使用済み、そして3番目の列は空きです。 1行目の出力は、オペレーティングシステム(OS)から見たものです。つまり、OSの観点から見ると、合計15402628KB(デフォルトの空き単位はKB)の物理メモリ、つまりFO [2] [1]、これらの物理メモリには15318812KBがあります。 ,null,null,3],2] [2])が使用され、83816KBも使用されます(すなわちFO [2] [3])が使用可能です;

ここで最初の式が得られます。
FO [2] [1] = FO [2] [2] + FO [2] [3]

FO [2] [4]は、いくつかのプロセスで共有されているメモリは現在廃止予定であり、その値は常に0であることを示します。 0ではないかもしれません、主にfreeコマンドがどのように実装されるかに依存します)

FO [2] [5]は、OSバッファが占有しているメモリを表します。 FO [2] [6]はOSキャッシュのメモリを示す。場合によっては、バッファとキャッシュという言葉が混在することがよくあります。ただし、低レベルのソフトウェアでは、これら2つの単語を区別して、外国人の外国語を見てみる必要があります。
バッファは、まだディスクに「書き込まれる」ものではありません。すなわち、バッファはディスク(ブロックデバイス)に出力されるデータを格納するために使用され、キャッシュはディスクから読み出されたデータを格納するために使用される。どちらもIOパフォーマンスを向上させるように設計されており、OSによって管理されます。

Linuxや他の成熟したオペレーティングシステム(Windowsなど)は、IOの読み取りパフォーマンスを向上させるために、常により多くのデータをキャッシュする必要があるため、FO [2] [6](キャッシュメモリ)は比較的大きくなりますそしてFO [2] [3]は小さな理由です。簡単なテストをすることができます:

1.システムキャッシュによって占められているデータを解放します;

echo 3> /proc /sys /vm /drop_caches

大きなファイルを読み、その時間を記録します。

3.ファイルを閉じます。

4.大きなファイルを読み、時間を記録します。

初めての方がずっと速いです。私はかつてBerkeleyDBの読み取り操作を行い、5Gのファイルと数千万のレコードを読み取りました。私の環境では、2回目の読み取りは1回目の読み取りよりも約9倍高速です。

2行目の空き出力は、アプリケーションから見たシステムメモリの使用量です。
FO [3] [2]、つまり-buffers /cacheの場合、アプリケーションがシステムで使用していると考えるメモリ量を示し、FO [3] [3]の場合、つまり+ buffers /cacheと指定する場合、アプリケーションは考えるシステムにあるメモリの量;

システムキャッシュとバッファによって占有されているメモリはすぐに再利用できるため、通常FO [3] [3]はFO [2] [3]よりはるかに大きくなります。

ここに2つの方程式があります。
FO [3] [2] = FO [2] [2] - FO [2] [5] - FO [2] [6] FO [ ,null,null,3],3] [3] = FO [2] [3] + FO [2] [5] + FO [2] [6]これら2つは理解するのが難しくない。

freeコマンドはprocps。*。rpm(RedhatシリーズOSの場合)で提供されています。 freeコマンドのすべての出力値は/proc /meminfoから読み取られます。

システム上に/proc /meminfoを解析するmeminfo(2)関数があるかもしれません。 procpsパッケージはmeminfo()関数自体を実装しています。 procps tarパッケージをダウンロードして特定の実装を見ることができます。最新のバージョンは3.2.8です。

Copyright © Windowsの知識 All Rights Reserved