Linux 메모리 사용량이 합산되지 않습니다.

Linux 메모리 사용량이 합산되지 않습니다.

우분투 서버의 메모리 사용량을 모니터링하려고 합니다. 'top' 명령을 실행하면 메모리의 70%가 사용된 것으로 표시됩니다. ('Mem:' 줄에 표시됨) 하지만 내 메모리 사용량을 가져와 합산하는 프로세스를 찾고 싶습니다. 70%와는 거리가 멀습니다. 누구든지 나에게 설명을 도와줄 수 있나요?

정말 감사합니다!

내 최고 명령 결과는 다음과 같습니다.

상단 - 20:59:06 최대 23일, 33분, 사용자 3명, 로드 평균: 0.06, 0.12, 0.09
작업: 총 92개, 실행 중 1개, 수면 91개, 정지 0개, 좀비 0개
CPU: 0.3%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
메모리: 총 4124236k, 사용된 2903104k, 사용 가능한 1221132k, 버퍼 147508k
스왑: 총 4192252k, 사용된 440k, 무료 4191812k, 캐시된 2596860k

  PID 사용자 PR NI VIRT RES SHR S %CPU %MEM TIME+ 명령
30558 mysql 20 0 311m 36m 5956 S 0 0.9 0:00.74 mysqld
28848 jiechao 20 0 50688 9244 3144 S 0 0.2 0:05.65 파이썬
  956 루트 20 0 11712 8004 2964 S 0 0.2 0:39.26 ddclient - slee
28846 jiechao 20 0 49256 7652 3280 S 0 0.2 0:07.17 파이썬
22284 지에차오 20 0 10400 6876 1664 S 0 0.2 0:00.49 bash
30433 지에차오 20 0 10344 6776 1620 S 0 0.2 0:00.46 bash
31053 지에차오 20 0 10344 6768 1612 S 0 0.2 0:00.47 bash
28847 jiechao 20 0 48168 6096 2980 S 0 0.1 0:00.59 파이썬
29178 www-데이터 20 0 228m 5392 2052 S 0 0.1 0:00.06 apache2
29179 www-데이터 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29180 www-데이터 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29181 www-데이터 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29182 www-데이터 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29183 www-데이터 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
  999 루트 20 0 11396 3948 2052 S 0 0.1 0:21.21 아파치2
  926 웁시 20 0 24572 3284 2280 S 0 0.1 0:00.18 웁시
30933 루트 20 0 9604 3104 2484 S 0 0.1 0:00.00 sshd
22164 루트 20 0 9604 3096 2484 S 0 0.1 0:00.01 sshd
30313 루트 20 0 9604 3096 2480 S 0 0.1 0:00.00 sshd
24302 루트 20 0 9632 3024 2428 S 0 0.1 0:00.07 sshd
  787 루트 20 0 6664 2424 1988 S 0 0.1 0:00.05 sshd
    1 루트 20 0 3504 1876 1276 S 0 0.0 0:01.57 초기화
24421 제차오 20 0 9632 1596 992 S 0 0.0 0:00.00 sshd
  812 syslog 20 0 31044 1484 1008 S 0 0.0 1:47.00 rsyslogd

답변1

물론 그 숫자는 프로세스와 버퍼, 파일 캐시에서 사용되는 RAM의 조합입니다. Linux에는 이러한 파일을 위해 하드 드라이브를 사용하는 대신 액세스되는 파일에 대해 RAM 사용을 최대화한다는 철학이 있습니다.

명령을 사용하거나 free이 명령을 통해 커널 자체를 살펴보십시오.cat /proc/meminfo.

무료

% free
             total       used       free     shared    buffers     cached
Mem:       7987492    7717152     270340          0     314644    2435048
-/+ buffers/cache:    4967460    3020032
Swap:      5963772       1304    5962468

고양이 /proc/meminfo

% cat /proc/meminfo 
MemTotal:        7987492 kB
MemFree:          284328 kB
Buffers:          314384 kB
Cached:          2427852 kB
SwapCached:          116 kB
Active:          4698232 kB
Inactive:        2374796 kB
Active(anon):    3756264 kB
Inactive(anon):   768392 kB
Active(file):     941968 kB
Inactive(file):  1606404 kB
Unevictable:          68 kB
Mlocked:              68 kB
SwapTotal:       5963772 kB
SwapFree:        5962468 kB
Dirty:               452 kB
Writeback:             0 kB
AnonPages:       4330964 kB
Mapped:           185540 kB
Shmem:            193864 kB
Slab:             306532 kB
SReclaimable:     261520 kB
SUnreclaim:        45012 kB
KernelStack:        6192 kB
PageTables:        94376 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9957516 kB
Committed_AS:    9671884 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      585392 kB
VmallocChunk:   34359040964 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     8237056 kB

free명령은 총 RAM인 7987492를 표시합니다. 제 경우에는 그 중 7717152가 사용되고 270340은 무료입니다. 이는 RAM, 버퍼 및 캐시의 조합입니다. 두 번째 줄은 버퍼와 캐시에서 사용되는 RAM의 양(4967460)을 보여줍니다. 즉, 실제로 3020032의 RAM이 사용 가능하다는 의미입니다.

에서itworld.com 기사메모리 사용량을 이해하는 방법:

버퍼 번호는 커널이 파일의 내용을 읽어야 하는 경우와 같이 커널이 디스크에 액세스함으로써 발생하는 메모리 내 블록을 나타냅니다. 캐시된 수치는 최근 읽은 파일의 콘텐츠를 캐시하는 데 사용되는 RAM의 양을 알려줍니다. 파일 시스템 계층을 우회하면 버퍼 수치가 증가하고 파일 시스템을 사용하면 캐시가 증가합니다. 읽기 작업이 증가하면 둘 다 증가합니다.

메모:Linux 커널의 메모리 관리자는 버퍼 및 캐시에 사용되는 모든 RAM을 해제하며 애플리케이션에 실제로 필요한 RAM을 확보합니다.

자원

관련 정보