it-swarm.dev

어떤 프로세스가 모든 메모리를 차지하고 있는지 찾는 방법은 무엇입니까?

CPU 사용량과 같은 것을 찾고 있습니다. 이것을하는 top에 대한 명령 줄 인수가 있습니까? 현재 내 메모리가 가득 차서 'man top'조차도 메모리 부족으로 실패합니다. :)

87
ripper234

top 내부에서 다음을 시도 할 수 있습니다.

  • 프레스 SHIFT+f
  • % MEM에 해당하는 문자를 누릅니다
  • 프레스 ENTER

시도해 볼 수도 있습니다.

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

메모리 사용량에 따라 상위 5 개의 프로세스가 제공됩니다.

107
Steven D

설치했다면 htop을 (를) 시작한 후 f6down arrow (MEM%), enter 메모리별로 정렬합니다.

11
xenoterracide

top이 시작되면를 누릅니다 F 정렬 필드 화면으로 전환합니다. 왼쪽에 나열된 키를 눌러 나열된 필드 중 하나를 선택하십시오. 당신은 아마 원한다 N MEM%

7
Michael Mrozek

Solaris에서 필요한 명령은 다음과 같습니다.

prstat -a -s size

내림차순 프로세스 이미지 크기 순으로 모든 프로세스가 나열됩니다. 후자는 상주하는 실제 메모리 사용이 아니라 OS가 프로세스에 커밋 한 메모리를 기반으로합니다.

Solaris에서 사용할 수있는 "최상위"버전이 있지만 표준 설치의 일부는 아닙니다.

6
Joel Hoff

top의 좋은 대안은 htop입니다. 그것을 확인하십시오, 그것은 일반 상단보다 훨씬 사용자 친화적입니다.

5
Klark

여러 가지 방법으로 얻을 수 있습니다. 가장 좋아하는 것은 다음과 같습니다.

PS 방식 :

  1. [[email protected] ~]$ ps -eo pid,cmd,%cpu,%mem --sort=-%mem

    어디,

    • -e : 모든 프로세스를 선택합니다
    • -o : 출력 형식에 적용
    • pid, cmd, %cpu, %mem : 정확한 순서로 출력 형식. 여기서 pcpupmem 대신 %cpu%mem.
    • 그러나 슬프게도 (이유를 모른다) 작동하지 않음 일부 시스템 (Oracle Linux) 및 일부 구형 시스템에서는. 다음과 유사한 대안을 사용할 수 있습니다.
  2. [arif[email protected] ~]$ ps -eo pid,cmd,%cpu,%mem --sort -rss

    어디,

    • -rss : 태스크가 사용한 스왑되지 않은 실제 메모리의 상주 세트 크기
  3. [[email protected] ~]$ ps --cols 120 aux --sort -rss

    어디,

    • --cols 100 : 때때로 cmd이 매우 길어질 때 출력의 열 너비를 지정합니다. 인수가있는 축소 명령을 원하지 않는 경우에는 필요하지 않습니다.
    • aux : BSD 구문을 사용하여 시스템의 모든 프로세스를 보려면

최상의 방법 :

[[email protected] ~]$ top -b -o +%MEM

어디,

  • -b : topbatch 모드로 사용합니다.
  • -o : 정렬 필드 이름을 무시하고 필드 이름을 %MEM

또한 head 및/또는 tail을 사용하여 출력을 제어 할 수 있습니다.

1
muhammad

이 명령은 최상위 메모리 소비 프로세스를 식별합니다.

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"
1
user90191

Globally : Splunk, ELK 등과 같은 기록 로그를 기록하는 데 항상 로그 분석기 도구를 사용하는 것이 좋습니다. 따라서 쿼리 언어를 사용하면 CPU 및 메모리에서 PID와 사용법을 쉽게 얻을 수 있습니다.

AT SERVER/OS LEVEL : 내부에서 다음을 시도 할 수 있습니다.

 Press SHIFT+M  ---> This will give you a process which takes more memory in descending order.

시도해 볼 수도 있습니다.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10

이렇게하면 메모리 사용량별로 상위 10 개의 프로세스가 제공됩니다. 또한 vmstat 유틸리티를 사용하여 기록이 아닌 RAM 사용법을 찾을 수 있습니다.

0
Santosh Garole

당신은 시도 할 수 있습니다 ps aux --sort -rss | head 또는 ps aux | sort -nk +4 | tail

0
David Okwii