메모리 사용률이 급증한 경우

2024. 9. 30. 10:57·Linux/Trouble shooting
반응형

nfs로 마운트한 파일시스템에 i/o가 다량으로 발생할 경우(예 : 서버아이스캔, 백신 스캔, find 명령어) 메모리 사용률(정확히는 캐시 메모리 중 slab영역)이 과도하게 증가한다.

리눅스의 커널, 디바이스 드라이버, 파일시스템 등은 inode, task구조체, 장치 구조체 등을 저장할때 Slab자료 구조를 사용하는데 파일을 사용할떄 마다 이 자료구조를 메모리에 적재하게 되며 그 결과 다량의 파일에 액세스하게 되면 이 Slab이라는 캐시 메모리 영역이 비정상적으로 높아지게 된다.

확인 방법

  1. cat /proc/meminfo | grep -i slab : 타 서버에 비해 비정상적으로 높은 slab메모리 사용을 확인할수 있다.
  2. cat /proc/meminfo | grep -i srclaimable : 회수 가능한 slab 메모리 사용량 확인 가능
  3. slabtop 명령어 시 타 서버에 비해 값들이 과도하게 높은 항목을 확인할 수 있다. ex) dentry, inode가 포함 된 항목 등등

해결 방법

  1. 기본적으로 가장 안전한 방법은 문제 원인을 중지시킨 후 그냥 기다리는것 뿐, 보통 아주 조금씩 메모리가 반환되다가 특정 시간마다 한번씩 크게 반환 된다.
  2. 아래 명령으로 반환 속도를 높일 수 있다. 단 정상적인 메모리 영역까지 반환을 야기할 수 있어 값이 너무 높으면 커널 패닉을 야기할수있다. 기본값은 100이며 10000까진 안전하다(끝났으면 기본값으로 변경)

 

#echo 10000 > /proc/sys/vm/vfs_cache_pressure 또는 sysctl vm.vfs_cache_pressure=10000

위에서 설정을 변경하는 것과 달리 단발성으로 캐시를 비우도록 할수있다. 단 캐시를 비우기 때문에 수행 전에 sync명령어를 통해 캐시 데이터를 저장 장치게 기록시켜야 하며 그렇게 한다고 해도 안전을 보장할순 없다.

 

#echo 1 > /proc/sys/vm/drop_caches : page cache(일반 캐시영역) 해제

#echo 2 > /proc/sys/vm/drop_caches : inode, dentry cache 해제

#echo 3 > /proc/sys/vm/drop_caches : page cache, inode, dentry cache 해제 (전체 캐시 삭제라 오래걸릴수도있음)

반응형

'Linux > Trouble shooting' 카테고리의 다른 글

coredump  (0) 2024.12.10
서버 성능 모니터링  (0) 2024.09.30
리눅스 NTP 연동이 되고 있음에도 시간이 안맞는 경우  (0) 2024.09.30
리눅스에서 cpu,mem 사용률 증가원인 분석방법  (0) 2024.09.30
리눅스에서 NFS를 통한 NAS 마운트 시 디렉토리 소유자 정상출력방법  (0) 2024.09.30
'Linux/Trouble shooting' 카테고리의 다른 글
  • coredump
  • 서버 성능 모니터링
  • 리눅스 NTP 연동이 되고 있음에도 시간이 안맞는 경우
  • 리눅스에서 cpu,mem 사용률 증가원인 분석방법
Lee seongwoo
Lee seongwoo
1st System Engineer
  • Lee seongwoo
    시스템/클라우드 관리 및 기술 공부하는 블로그입니다.
    Lee seongwoo
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Linux
        • Note
        • Trouble shooting
        • build
        • Work
        • Service
        • Start
        • Shell Script
        • APM
      • Docker
        • Configure
        • Command
        • Container 관리
        • Docker image 생성
        • 다양한 볼륨 활용
        • Network
      • Kubernetes
        • Chapter 1
      • Network
        • 스위치
        • 라우터
      • Windows
        • 인증서
        • 원격 접속
        • 암호 변경
        • 실행 Command
        • 사용자명 변경
        • Windows 점검
        • 방화벽
        • DB 절체(장애조치 클러스터)
      • Security
        • 보안 운영장비
        • 작업
        • 실무
      • Cloud
        • AWS
        • Azure
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Lee seongwoo
메모리 사용률이 급증한 경우
상단으로

티스토리툴바