カーネルバージョン3.10では、/proc/meminfoにMemAvailableが表示されるのはなぜですか?

カーネルバージョン3.10では、/proc/meminfoにMemAvailableが表示されるのはなぜですか?

私はCentOS 7を使用しており、カーネルバージョンは3.10です。カーネルのバージョンを確認するために「uname -r」と入力し、次のコマンドを表示しました。3.10.0-957.1.3.el7.x86_64

私が知っている限り、MemAvailableLinuxカーネルバージョン3.14にはメトリックが導入されました。

しかし、/proc/meminfoこのコマンドを実行しましたが、メートル法が表示されましたMemAvailable

MemTotal:       3880620 kB
MemFree:        3440980 kB
MemAvailable:   3473820 kB

LinuxにMemAvailable指標が表示されるのはなぜですか?私のLinuxカーネルは3.14未満です。

答え1

カーネルはRHEL 7(およびCentOS 7)用に維持されているデフォルトのABIであるため、自分自身を3.10として識別します。 ABIは、以前のバージョンのRHEL 7で構築されたカーネルモジュールが後続のバージョンでもそのまま機能するように維持されます。

ただし、ABIを中断することなくこれを達成できる場合は、便利なカーネル機能が新しいカーネルからRHELカーネルにバックポートされます。これにMemAvailableはが含まれ、バックポートにもなりました。RHEL 6の「2.6.32」カーネルで!各カーネルバージョンの変更はリリースノートで詳しく説明されています。RHEL 7.6 カーネルの変更

自己説明については、MemAvailable以下を参照してください。ディストリビューションで移植可能な使用可能なメモリ量を取得するには?

答え2

この指標は、スワップなしで使用できる最大アプリケーションメモリサイズの見積もりを提供します。このウェブサイトから

スワップなしで新しいアプリケーションを起動するために使用できるメモリ量を見積もります。 MemFree、SReclaimable、ファイルのLRUリストサイズ、および各地域の最低透かしに基づいて計算されます。

この見積もりは、システムが正常に動作するためにいくつかのページキャッシングが必要であること、およびプロジェクトが使用されているときにすべての回収可能スラブが回収可能ではないことを考慮しています。これらの要因の影響はシステムによって異なります。

カーネル開発者/RedHat会社に問い合わせる方が良い理由については

通常、RH は以前のバージョンのカーネルで多くのバックポートを実行します。

関連情報