상단의 % MEM 값이 사용 된 총 메모리에 합산되지 않는 이유는 무엇입니까?


18

현재 VPS의 성능 문제를 디버깅 중이며 어떤 프로세스가 가장 많은 메모리를 소비하는지 이해하려고합니다. 독서 상단, 여기 내가 얻는 것이 있습니다 :

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

보시다시피 내 메모리는 약 90 % 사용 (내 문제)이지만 % MEM 값을 합하면 약 50-60 %로 이동합니다. RES는 최대 350mb까지 추가하지 않습니다. 왜? 나는 그들의 의미를 오해하고 있는가?

감사


top은 디스플레이 크기로 표시된 행 수를 조정하므로 모든 프로세스가 표시되지 않을 수 있습니다.
Samik

답변:


6

어떤 프로세스가 가장 많은 메모리를 소비하는지 이해하려고합니다.

간단합니다 : 루비 !

% MEM 값을 합하면 약 50-60 % 만됩니다.

실제로 표시된대로 열을 합하면 69.2 %가 됩니다.

  • Samik이 지적했듯이 시스템에 모든 프로세스가 포함되어 있지는 않습니다 . 파일에 전체 출력을 가져 와서 파일을 공유하여 더 나은 결과를 얻을 수 있도록 출력을 붙여 넣으십시오 top -b -n 1.

  • 또한 커널은 어느 정도의 메모리를 차지하며 일부 종류의 VPS (예 : Xen, KVM)는 부팅시 내부 용으로 추가 메모리를 예약합니다. 출력 dmesg도 붙여 넣 습니다.

더 나은 메트릭스와 사용 편의성 을 위해 "userland 스레드 숨기기"옵션을 활성화 한 상태에서 top 대신 htophtop 설치 을 사용하는 것이 좋습니다 .

여기에 이미지 설명을 입력하십시오

또한보십시오 memtop:

여기에 이미지 설명을 입력하십시오


전체 출력은 다음과 같습니다. paste.ubuntu.com/1055673 및 dmesg : paste.ubuntu.com/1055674 htop을 사용하면 다른 출력을 얻을 수 있습니다! 나는 22.4 % MEM 프로세스 중 세 가지를 보았습니다. 사실, 많은 프로세스가 중복되어 있습니다 (mysqld도 여러 번). 어쨌든, 나는 출력을 더 깨끗하게 좋아한다. Memtop도 멋지다. 내 루비 앱 중 어느 것이 가장 많은 메모리를 소비하고 있는지 더 잘 이해할 수있다.)
ben

0

linux top명령은 ram사용 된 메모리뿐만 아니라 시스템 전체를 보여줍니다 . caches컴퓨터를 spenerding하기 위해 하드 디스크의 일부 영역을 리눅스 . 다른 mem 모니터를 사용하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.