Bazı RHEL linux kutularındaki toplam fiziksel belleği bulmak için bir kabuk komut dosyası yazıyorum.
Öncelikle, yalnızca kullanılabilir bellekle değil, çekirdek tarafından tanınan toplam fiziksel bellekle ilgilendiğimi vurgulamak istiyorum . Bu nedenle, lütfen okuma / proc / meminfo veya ücretsiz , top veya sar komutlarını kullanmayı öneren yanıtlardan kaçının - Tüm bu durumlarda, " toplam bellek " değerleri " kullanılabilir bellek " olanları ifade eder.
İlk düşünce, önyükleme çekirdeği mesajlarını okumaktı:
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
Ancak bazı linux kutularında, EMC2'nin PowerPath yazılımının kullanımı ve çekirdek başlangıcındaki flooding önyükleme mesajlarından dolayı, bu yararlı önyükleme çekirdeği mesajı / var / log / dmesg dosyasında bile mevcut değildir .
İkinci seçenek dmidecode komutuydu (bazı eski çekirdek ve mimarilerin sınırlamaları nedeniyle çekirdek tarafından tanınan RAM ve gerçek RAM'in olası uyumsuzluğuna karşı uyarıldım). --Memory seçeneği komut dosyasını basitleştirir, ancak bu komutun eski sürümlerinde --memory seçeneğinin olmadığını fark ettim .
Son şansım getconf komutuydu . Bellek sayfa boyutunu bildirir, ancak toplam fiziksel sayfa sayısını bildirmez - _PHYS_PAGES sistem değişkeni, toplam fiziksel sayfalar değil, kullanılabilir fiziksel sayfalar gibi görünür.
# getconf -a | grep SAYFALARI SAYFA BOYUTU 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
Sorum: Toplam fiziksel bellek miktarını elde etmenin bir kabuk betiği tarafından ayrıştırılmaya uygun başka bir yolu var mı?