모든 프로세스와 메모리 목록을 볼 수 있습니다.
ps aux
VSZ 및 RSS를 찾아보세요.
이 명령의 출력을 RSS 값의 내림차순으로 정렬하는 방법이 있습니까?
답변1
답변2
빠르고 더러운 방법은 출력을 명령 ps aux
으로 파이프하는 것입니다.sort
$ ps aux | sort -rn -k 5,6
예
$ ps aux | sort -rn -k 5,6
...
root 1584 0.0 0.0 22540 1236 ? S 07:04 0:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)
root 1575 0.0 0.0 22536 872 ? S 07:04 0:00 /usr/libexec/hald-addon-generic-backlight
root 1574 0.0 0.0 22536 880 ? S 07:04 0:00 /usr/libexec/hald-addon-leds
root 1565 0.0 0.0 22536 876 ? S 07:04 0:00 /usr/libexec/hald-addon-rfkill-killswitch
saml 2507 0.0 0.0 22232 500 ? S 07:05 0:00 dbus-launch --sh-syntax --exit-with-session
root 1671 0.0 0.0 22156 936 ? Ss 07:04 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
...
이는 출력과 혼합된 열 헤더를 처리하지 않지만 명령줄에서 기억하기 쉽고 해당 출력을 수동으로 볼 때 원하는 작업을 수행하는 데 허용되는 방법입니다.
예
root 1791 0.0 0.0 4140 536 tty2 Ss+ 07:04 0:00 /sbin/mingetty /dev/tty2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 996 0.0 0.0 0 0 ? S 07:04 0:01 [kdmflush]
root 982 0.0 0.0 0 0 ? S 07:04 0:00 [kvm-irqfd-clean]
추가 팁
또 다른 방법은 전체 출력을 다른 명령(예: )으로 파이프하는 것입니다 less
. 이렇게 하면 한 번에 한 페이지의 정보를 볼 수 있고 화살표 키와 페이지 위로/아래로 키를 사용하여 출력을 앞뒤로 스크롤할 수도 있습니다.
$ ps aux | sort -rn -k 5,6 | less
출력이 많이 래핑되는 경우 -S
스위치를 적게로 사용할 수도 있습니다. 이렇게 하면 모든 출력이 한 줄에 유지됩니다. 그런 다음 화살표 키를 사용하여 왼쪽/오른쪽/위/아래로 이동하여 모든 것을 볼 수 있습니다.
$ ps aux | sort -rn -k 5,6 | less -S
ps 내에서 정렬
일부 버전에서는 ps
의 사용을 제공합니다 --sort
. 그런 다음 이 스위치는 +
접두사가 a 또는 a인 키를 사용하여 -
가장 작은 것에서 가장 큰 것 또는 가장 큰 것에서 가장 작은 것까지 정렬 순서를 나타낼 수 있습니다.
예
vsz,-rss
$ ps aux --sort=vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
+vsz,+rss
$ ps aux --sort=+vsz,+rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
-vsz, -rss
$ ps aux --sort=-vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1832 0.0 0.0 2088924 3312 ? Sl 07:04 0:00 /usr/sbin/console-kit-daemon --no-daemon
saml 3517 0.2 1.2 2073196 100492 ? Sl 07:06 0:34 /home/saml/.dropbox-dist/dropbox
saml 3516 0.0 0.8 2071032 67388 ? Sl 07:06 0:07 /home/saml/.dropbox-dist/dropbox
saml 2657 0.1 0.7 1580936 57788 ? Sl 07:05 0:27 nautilus
답변3
이 명령은 ps가 사용된 실제 메모리를 반영하지 않는 경우에도 유용합니다.
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 "" }'
답변4
쉬운 방법은 설치하는 것입니다.맨 위
PID, CPU 비율, MEM을 기준으로 프로세스를 정렬할 수 있습니다.
더 복잡한