
123456
PID를 기반으로 특정 프로세스의 RAM 사용량에 해당하는 바이트 수(예: CLI)를 얻으려고 합니다 . 특별한 소프트웨어 없이 모든 Linux 배포판에서 작동해야 합니다. 형식이나 "kB" 또는 추가 정보가 없습니다. 출력으로 정수 값만 사용합니다.
늘 그렇듯이, 웹은 잡음이 많은 기사로 가득 차 있지만 실제로 유용한 정보는 없습니다.
답변1
다음 방법 중 하나를 시도해 보세요.
# process id
pid=$$
# memory page size
psz=$(grep -m1 KernelPageSize /proc/$pid/smaps |tr -d -c [0-9])
# assume by “RAM usage” OP wants “resident size”
printf '
1. with “ps” command : %d
2. from /proc/pid/status: %d
3. from /proc/pid/statm : %d
4. from /proc/pid/stat : %d
' $( ps -p $pid ho rsz ) \
$( grep -m1 VmRSS /proc/$pid/status |tr -d -c [0-9] ) \
$( read -a s < /proc/$pid/statm; echo $(( ${s[1]} * $psz )) ) \
$( read -a s < /proc/$pid/stat; echo $(( ${s[23]} * $psz )) )
1. with “ps” command : 12160
2. from /proc/pid/status: 12160
3. from /proc/pid/statm : 12160
4. from /proc/pid/stat : 12160
※ /proc
파일시스템은 다음을 참고하세요.리눅스 커널 문서
※ ps
명령어 확인을 위해그 매뉴얼