libcurl로 메모리 누수 대응 기록

4475 단어 memoryLeakzabbixcurl

개요



Zabbix Agent의 외부 스크립트로 외부 페이지의 생존 확인을 쉘 실행하고 있어, 메모리가 서서히 소비해 가는 현상의 대응 기록으로서 남깁니다
변함없이 선인들의 정보로 어떻게든 문제 해결을 할 수 있었으므로, 이 자리를 빌려 답례를 말씀드립니다!

덧붙여 발생시의 캡쳐를 취득하고 있지 않았으므로, 아래와 같은 화상의 수치의 무결성은 없기 때문에 양해 바랍니다 Orz
같은 대응을 하는 경우는 붉은 테두리의 개소를 확인해 주시면 좋을까 생각합니다.

구현하는 외부 스크립트



매우 평범한 쉘 스크립트입니다.

curl -LI -Ss -w '%{http_code}\n'  -H 'Cache-Control: no-store' -A 'XXX-HealthChecker' $URL -o /dev/null

환경


  • Amazon Linux AMI release 2018.03
  • Zabbix agent 3.4.6-1.el6
  • libcurl 7.53.1-16.84.amzn1

  • 문제 확인 시계열



    1. Zabbix의 메모리 사용량이 점점 늘어나는···

    2. top 명령으로 자원 정보 표시
    구현하고 있는 java 앱은 600M 정도입니다만, buffer/cache가 약 1.7GB도 소비되고 있다

    3. vmstat 명령으로 가상 메모리 및 디스크 I/O 통계 정보 표시
    1초마다 메모리 정보 표시
       > vmstat 1
    

    cache가 서서히 늘어나는・・・

    4. slabtop 명령으로 slab 캐시 정보 표시
    dentry로 하면 메모리 소비되고 있습니다(본래는 1.7GB 정도 소비되고 있습니다)


    대응



  • 캐시 메모리 삭제 (관리자 권한)
    sync 명령으로 메모리 데이터를 파일로 출력한 후 메모리 삭제를 실행!
    # 1・・・ページキャッシュのみ
    # 2・・・Slabキャッシュ
    # 3・・・ページキャッシュ&Slabキャッシュ
    
    > sync && echo 2 > /proc/sys/vm/drop_caches
    

  • libcurl 캐시 사용 설정
    curl 실행시 캐시에 오로지 모으는 대신 캐시에서 사용할 수 있다는 설정을 합니다.
    우선 모든 사용자에게 적용할 수 있도록 다음 환경 변수를 설정합니다.
    "사용자별로 지정하는 경우 실행 사용자에게이 환경 변수를 적용하십시오."

    /etc/environment
    NSS_SDB_USE_CACHE=yes
    

    ※libcurl이나 nss-xxxx의 버전 업등의 대책도 있지만, 벌써 최신의 것을 사용하고 있었으므로 환경 변수로 대응했다

  • 대응 후의 그래프



    상기 대응 후 일정량으로 안정됩니다


    하지만 하지만!



    파일의 복사, 작성 등을 했을 때에도 Slab 캐시가 늘어나겠습니다만!
    원래 리눅스의 구조상 파일을 항상 캐쉬하는 것으로 처리 속도를 높이고 있으므로, Slab 캐쉬로 소비되고 있어도 필요에 따라서 해방해 줍니다. 그래서 위와 같은 버그 이외의 시간은 신경 쓰지 않아도 좋을지도 모릅니다.

    참고 사이트


  • htp://s-타지마. 는 bぉ. jp/엔트리/2015/02/20/233615
  • htps : // 이 m / ぢ ギ ぺあ k / ms / 4b39fdcb8 7d09f406
  • htp://에서 xぁb. 네 t/푸키우ぃ키/그리고 x. php? 메모 %2F
  • 지금까지 들을 수 없는 Linux와 메모리의 기초 & vmstat의 상세한 사용법
  • h tp // 에나이 00. 하테나 bぉg. 코m/엔트리/20110906/1315315488
  • htps : // Chie 만. Reasonse t. 네 t/아 r ゔぇs/ぃゔぇぃthぃぬ x/732

  • Slab 메모리란?


  • htps //w w. 이 bm. 이 m/로 ゔぉぺぺr를 rks/jp/ぃぬx/ぃbら ry/l-ぃぬx-sぁb-아아와 r/그리고 x. HTML
  • 좋은 웹페이지 즐겨찾기