RES 메모리와 관련하여 중단 또는 상단을 신뢰해야합니까? meminflate.exe -G

시스템에서 일부 메모리 사용 메트릭을 테스트하는 프로그램을 작성 중이며 대상 메모리 소비량에 도달하고 싶습니다. 메모리 meminflate.exe -G 103.1를 사용 하려면 내 프로그램을 실행하십시오 103.1 GB.

내가 실행하면 meminflate.exe -G 63.3, 나는 맨 쇼 참조 VIRT등을 63.5(OK, 너무 멀리 떨어져)하지만, RES표시 63top그것은이다 63.5htop. 이 중 어느 것을 신뢰해야합니까? 나는 그것이 htop맞을 것으로 기대 하지만, 왜 거기에 차이가 있는지 궁금합니다.



답변

Rss (상주 세트)의 정확한 바이트 수는 다음에서 얻을 수 있습니다 /proc/<pid>/stat.

echo $(($(cat /proc/$(pgrep -n meminflate.exe)/stat | cut -d' ' -f24)*4096))

설명 : 읽습니다 /proc/<pid>/stat(여기서는 PID 번호를 사용하여 찾을 수 있음 pgrep), cut24 번째 필드 (Rss) 만 선택합니다. 그런 다음 결과에 4096 (Linux의 일반 페이지 크기)을 곱합니다. kiB 단위의 크기를 얻기 위해 4를 곱하거나 MiB 단위의 크기로 256으로 나눌 수도 있습니다.