Piszę skrypt powłoki, aby sprawdzić całkowitą pamięć fizyczną w niektórych skrzynkach linuxowych RHEL.
Przede wszystkim chcę podkreślić, że interesuje mnie całkowita pamięć fizyczna rozpoznawana przez jądro, a nie tylko dostępna pamięć . Dlatego, proszę, unikaj odpowiedzi sugerujących przeczytanie / proc / meminfo lub użycie poleceń free , top lub sar - we wszystkich tych przypadkach ich wartości „ total memory ” oznaczają „ dostępną pamięć ”.
Pierwszą myślą było przeczytanie komunikatów jądra rozruchowego:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Ale w niektórych linuksach, z powodu użycia oprogramowania PowerPath EMC2 i jego zalewających wiadomości startowych podczas startu jądra, ta użyteczna wiadomość jądra startowego nie jest dostępna, nawet w pliku / var / log / dmesg .
Drugą opcją było polecenie dmidecode (ostrzegam przed możliwym niedopasowaniem pamięci RAM rozpoznawanej przez jądro i prawdziwej pamięci RAM ze względu na ograniczenia niektórych starszych jąder i architektur). Opcja --memory upraszcza skrypt, ale zdałem sobie sprawę, że starsze wersje tego polecenia nie mają opcji --memory .
Moją ostatnią szansą było polecenie getconf . Podaje rozmiar strony pamięci, ale nie całkowitą liczbę stron fizycznych - zmienna systemowa _PHYS_PAGES wydaje się być dostępnymi stronami fizycznymi, a nie całkowitą liczbą stron fizycznych.
# getconf -a | grep STRONY ROZMIAR STRONY 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Moje pytanie: czy istnieje inny sposób uzyskania całkowitej ilości pamięci fizycznej, nadającej się do przeanalizowania przez skrypt powłoki?