배포판에 관계없이 Linux 터미널에서 특정 PID가 사용하는 원시 바이트 수를 얻는 방법은 무엇입니까?

배포판에 관계없이 Linux 터미널에서 특정 PID가 사용하는 원시 바이트 수를 얻는 방법은 무엇입니까?

123456PID를 기반으로 특정 프로세스의 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명령어 확인을 위해그 매뉴얼

관련 정보