일부 RHEL Linux 상자에서 총 실제 메모리를 찾기 위해 쉘 스크립트를 입력하고 있습니다.
우선 사용 가능한 메모리 뿐만 아니라 커널이 인식 하는 총 물리적 메모리에 관심이 있음을 강조하고 싶습니다 . 따라서 / proc / meminfo 를 읽 거나 free , top 또는 sar 명령 을 사용 하라는 답변은 피하십시오 .이 모든 경우에 " total memory "값은 " available memory " 값을 의미 합니다.
첫 번째 생각은 부트 커널 메시지를 읽는 것이 었습니다.
Memory: 61861540k/63438844k available (2577k kernel code, 1042516k reserved, 1305k data, 212k init)
그러나 일부 Linux 제품에서는 EMC2의 PowerPath 소프트웨어를 사용 하고 커널 시작시 플러딩 부팅 메시지를 사용하기 때문에 유용한 부팅 커널 메시지를 사용할 수 없으며 / var / log / dmesg 파일 에서도 사용할 수 없습니다 .
두 번째 옵션은 dmidecode 명령 이었습니다 (일부 오래된 커널 및 아키텍처의 제한으로 인해 커널 인식 RAM과 실제 RAM의 불일치 가능성에 대해 경고합니다). --memory 옵션 은 스크립트를 단순화하지만 해당 명령의 이전 릴리스에는 --memory 옵션 이 없다는 것을 깨달았습니다 .
마지막 기회는 getconf 명령이었습니다. 메모리 페이지 크기를보고하지만 실제 페이지의 총 수는보고하지 않습니다. _PHYS_PAGES 시스템 변수는 총 실제 페이지가 아니라 사용 가능한 실제 페이지 인 것 같습니다.
# getconf -a | grep 페이지 페이지 크기 4096 _AVPHYS_PAGES 1049978 _PHYS_PAGES 15466409
내 질문 : 셸 스크립트로 구문 분석하기에 적합한 실제 메모리의 총량을 얻는 다른 방법이 있습니까?