1. ホーム
  2. linux

[解決済み] シェルスクリプトで解析するのに適したlinuxの物理メモリ(RAM)の合計を調べるにはどうしたらいいですか?

2022-07-07 15:23:27

質問

私はいくつかの RHEL linux ボックスで総物理メモリを見つけるためにシェルスクリプトを入力しています。

まず第一に、私が興味を持っているのは 総物理メモリ ではなく、カーネルが認識する 利用可能なメモリ . したがって、以下のような回答は避けてください。 /proc/meminfo を読むように勧めたり フリー , トップ または サー コマンド -- これらのすべての場合において、それらの " 総メモリ量 "値は "を意味します。 使用可能メモリ "ものです。

最初に考えたのは、ブートカーネルメッセージを読むことでした。

Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)

しかし、いくつかの linux ボックスでは、EMC2 の PowerPath ソフトウェアの使用とその フラッディング ブートメッセージを使用するため、その有用なブートカーネルメッセージは /var/log/dmesg ファイルにもありません。

2つ目のオプションは dmidecode コマンドです (一部の古いカーネルやアーキテクチャの制限により、カーネルが認識する RAM と実際の RAM が不一致になる可能性があるため、警告されています)。オプションの -memory オプションはスクリプトを単純化しますが、このコマンドの古いリリースには -メモリ オプションがないことに気づきました。

私の最後のチャンスは getconf コマンドでした。それはメモリページサイズを報告しますが、物理ページの総数ではありません。 _PHYS_PAGES システム変数は利用可能な物理ページであり、総物理ページではないようです。

# getconf -a | grep PAGES
PAGESIZE 4096
_avphys_pages 1049978
物理ページ数 15466409

私の質問です。シェルスクリプトで解析するのに適した、物理メモリの総量を取得する他の方法はありますか?

どのように解決するのですか?

物理RAMに興味がある場合は、コマンド dmidecode . それはあなたに ロット しかし、使用状況によっては、システムの 8G が 2x4GB スティックから来るのか、4x2GB スティックから来るのかも知りたいかもしれません。