Linux 서버에서 실행되는 특정 프로세스의 VSZ 값을 얻고 싶습니다.
다음 명령:
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
모든 프로세스에 대해 높은 메모리 사용량을 줄입니다.
단일 프로세스의 (VSZ) 값을 얻는 방법.
"proxyfarm"의 VSZ 값을 얻고 싶다고 가정해 보겠습니다. 다음 명령을 사용하여 이를 달성하는 방법:
ps ux | grep httpd | grep proxyfarm can fetch proxyfarm complete details.But, i need only VSZ of it.
답변1
아래에서 가상 메모리 크기(vsz) 값을 확인하세요./proc/<PID>/stats
~에 따르면/proc 사람들, 열 23은 /proc/<PID>/stats
vsz 값을 나타냅니다.바이트.
예를 들어 PID가 3917인 경우:
cat /proc/3917/stat | cut -d" " -f23
아래에 보고된 vsz 값은 /proc/PID/stats
추정치입니다.바이트, 명령의 출력은 ps -o vsz= -p "$pid"
다음과 같이 추정됩니다.킬로바이트 또는 기본 천(1KiB는 1024바이트와 같습니다).
/proc/PID/stat
vsz의 출력을 다음으로 변환하려면바이트도착하다기본 천:
cat /proc/3917/stat | cut -d" " -f23 | xargs -n 1 bash -c 'echo $(($1/1024))' args
답변2
POSIXly,
ps -o vsz= -p "$pid"
$pid
(가상) 메모리의 id 프로세스 크기를 1024바이트의 10진수 정수로 인쇄합니다.
Linux에서 procps 유틸리티를 사용하여 ps
을 바꾸면 동일한 이름을 가진 모든 프로세스에 대한 정보를 -p "$pid"
얻을 수 있습니다 .-C proxyfarm
proxyfarm
POSIX와 동일하며 프로세스 이름에 공백이나 개행 문자가 포함되어 있지 않다고 가정합니다.
ps -Ao vsz= -o comm= | awk '$2 == "proxfarm" {print $1}'
매개변수 목록 이 프로세스 이름 대신 단어로 시작하는 프로세스를 검색하려면 다음 comm
으로 바꿀 수 있습니다 .args
proxfarm