Tôi đang gõ một tập lệnh shell để tìm ra tổng bộ nhớ vật lý trong một số hộp linux của RHEL.
Trước hết tôi muốn nhấn mạnh rằng tôi quan tâm đến toàn bộ bộ nhớ vật lý được nhận ra bởi kernel, không chỉ bộ nhớ khả dụng . Do đó, xin vui lòng, tránh các câu trả lời gợi ý đọc / Proc / meminfo hoặc sử dụng các lệnh miễn phí , hàng đầu hoặc sar - Trong tất cả các trường hợp này, giá trị " tổng bộ nhớ " của chúng có nghĩa là " bộ nhớ khả dụng ".
Ý nghĩ đầu tiên là đọc các thông điệp kernel boot:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Nhưng trong một số hộp linux, do sử dụng phần mềm PowerPath của EMC2 và các thông báo khởi động tràn ngập của nó khi khởi động kernel, thông báo kernel khởi động hữu ích đó không có sẵn, ngay cả trong tệp / var / log / dmesg .
Tùy chọn thứ hai là lệnh dmidecode (Tôi được cảnh báo chống lại sự không phù hợp có thể có của RAM được nhận dạng và RAM thực do những hạn chế của một số cấu trúc và cấu trúc cũ hơn). Tùy chọn --memory đơn giản hóa tập lệnh nhưng tôi nhận ra rằng các bản phát hành cũ hơn của lệnh đó không có tùy chọn --memory .
Cơ hội cuối cùng của tôi là lệnh getconf . Nó báo cáo kích thước trang bộ nhớ, nhưng không phải là tổng số trang vật lý - biến hệ thống _PHYS_PAGES dường như là các trang vật lý có sẵn, không phải là tổng số trang vật lý.
# getconf -a | grep PAGES PAGESIZE 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Câu hỏi của tôi: Có cách nào khác để có được tổng dung lượng bộ nhớ vật lý, phù hợp để được phân tích cú pháp bởi tập lệnh shell?