top
명령어를 실행한 후 M을 눌러 'RES'나 'SHR' 열에 메모리 점유율이 지나치게 높은 프로세스가 있는지 확인합니다.cat /proc/meminfo | grep -i shmem
cat /proc/meminfo | grep -i SUnreclaim
cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize"
HugePages_Total
의 출력값이 0인 경우 기타 메모리 문제의 전형적인 사례 분석을 참조하여 자세한 문제 원인을 파악합니다.HugePages_Total
의 출력값이 0이 아닌 경우 Hugepage 메모리가 설정되어 있다는 의미입니다. Hugepage 메모리의 크기는 HugePages_Total*Hugepagesize
이며, Hugepage가 다른 악성 프로그램을 위해 설정된 것은 아닌지 확인해야 합니다. Hugepage 메모리가 필요하지 않다면 /etc/sysctl.conf
파일의 vm.nr_hugepage
설정 항목에 주석을 달고 sysctl -p
명령어를 실행하여 Hugepage 메모리 설정을 해제합니다.free
명령어 출력의 의미가 다를 수 있기 때문에 free
명령어 출력 정보만으로 메모리 사용률을 계산할 수는 없습니다. 그러므로 다음 절차를 따라 Tencent Cloud 모니터링을 통해 메모리 사용률을 확인하시기 바랍니다.(Total - available)100% / Total
= (Total - (Free + Buffers + Cached + SReclaimable - Shmem))100% /Total
= (Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total
Total
, Free
, Buffer
, Cached
, SReclaimable
, Shmem
매개변수는 /proc/meminfo
에서 획득할 수 있습니다. 다음은 /proc/meminfo
예시입니다.1. [root@VM_0_113_centos test]# cat /proc/meminfo2. MemTotal: 16265592 kB3. MemFree: 1880084 kB4. ......5. Buffers: 194384 kB6. Cached: 13647556 kB7. ......8. Shmem: 7727752 kB9. Slab: 328864 kB10. SReclaimable: 306500 kB11. SUnreclaim: 22364 kB12. ......13. HugePages_Total: 014. Hugepagesize: 2048 kB
매개변수 | 설명 |
MemTotal | 시스템 총 메모리입니다. |
MemFree | 시스템 잔여 메모리입니다. |
Buffers | 블록 디바이스가 점유하는 캐시 페이지입니다. 직접 읽기/쓰기 블록 디바이스와 파일 시스템 메타데이터가 여기에 포함됩니다(예: SuperBlock이 사용하는 캐시 페이지). |
Cached | page cache입니다. tmpfs의 파일 POSIX/SysV shared memory 및 shared anonymous mmap이 포함됩니다. |
Shmem | tmpfs 등 공유 메모리를 포함합니다. |
Slab | 커널 slab 할당자가 할당한 메모리는 slabtop로 조회할 수 있습니다. |
SReclaimable | 회수할 수 있는 slab입니다. |
SUnreclaim | 회수할 수 없는 slab입니다. |
HugePages_Total | Hugepage 메모리의 총 수량입니다. |
Hugepagesize | Hugepage 메모리 1페이지의 크기입니다. |
문제 해결에 도움이 되었나요?