우리는 일부 Esxi 5.0 서버를 보유하고 있습니다(64GB각 srvr의 메모리) 및 snmp가 활성화되었습니다. 내 연구에 따르면 사용/사용 가능 메모리 OID에 대한 oid는 없습니다.시간 메모리 크기.0. 그래서 사용된 메모리를 계산하기 위해 수학도 수행하는 bash 스크립트를 사용하여 모든 프로세스에서 사용되는 메모리를 가져오려고 했습니다.
USEDMEM=`snmpwalk -v2c -c PUBLIC -m "/cfg/mibs/HOST-RESOURCES-MIB" $HOST |grep hrSWRunPerfMem. | awk '{print $4}' | awk '{ sum += $1 } END { print sum }'`
RAW_MEM_BYTES=`echo "scale=3; $USEDMEM*1024" |bc -l`
RAW_MEM_GB=`echo "scale=3; $RAW_MEM_BYTES/1073741824" |bc -l`
echo $USEDMEM Kbits
echo $RAW_MEM_BYTES Bytes
echo $RAW_MEM_GB GB
결과...
66858364 Kbits
68462964736 Bytes
63.761 GB
하지만 ESXI 클라이언트에서는60GB사용된. 위 스크립트를 사용하여 Windows 서버의 사용된 메모리를 수집하려고 하면 동일한 현상이 발생합니다. 이것이 컴퓨팅 포럼 버그일 수 있습니까? 계산에 *1000을 사용해 보았으나 결과가 여전히 올바르지 않습니다. hrSWRunPerfMem을 통해 사용된 메모리를 계산하려고 하면 ESXI 및 Windows Server에서도 이런 현상이 발생합니다. Windows의 경우 이 목적을 위한 표준 snmp oid가 있으므로 사용된 메모리를 얻는 다른 방법이 많이 있습니다. 하지만 저는 이 esxi (5) 서버에 대해 아무것도 모릅니다 :(
정확한 결과를 얻으려면 어떻게 해야 합니까?