배치별 프로세스 메트릭(CPU, Memory 등)을 시각화해 본 소감

동기 부여로서는, 복수의 배치가 병행해 실행되고 있는 서버로, 각각의 배치마다의 CPU 사용률이나 메모리 사용량을 가시화하고 싶었다



시각화가 좋았던 점
  • 배치 서버의 CPU 사용률 또는 메모리 사용량을 줄이고 싶을 때 어떤 배치를 개조해야하는지 즉시 결정하기 쉬워졌습니다.
  • 그 후, 배치의 개수에 의해 CPU 사용률 or 메모리 사용량이 감소했는지 어떤지를 한눈에 알게 되었다

  • 기존 플러그인 등에 적합한 것이 없었기 때문에 자작했다.

    구현 방법



    htps : // 기주 b. 코 m / 요헤이무타 / ぃ ん x x 게 t ds d t
    htps : ///메타 c판. 오 rg/포 d/ぃぬ x::게 t피 ds타 t
  • Perl제
  • linux-get-pidstat라는 명령 줄 도구와 함께 제공됩니다.
  • 이름대로 Linux 용

  • pidfile을 기반으로 프로세스 메트릭을 수집하고 Mackerel에 보내는 명령 줄 도구
  • 내보내는 대상은 Mackerel이 아닌 파일 일 수 있습니다


  • 특징

  • pidstat(1)의 출력 결과를 Mackerel로 보내기
  • 예를 들어 60 초 동안 초당 pidstat를 실행 한 결과의 평균값을 출력하는 등
  • 자식과 손자의 결과를 더할 수 있습니다

  • 적절한 폴더에있는 pidfile을 대상 프로세스로 읽습니다.

    준비: pidfile 만들기
  • 대상 배치 프로세스가 시작할 때 pidfile을 만들고 종료시 삭제합니다.
  • perl 의 프로그램이었으므로 Proc::PID::File 를 사용했다


  • 준비: linux-get-pidstat 설치
    cpanm Linux::GetPidstat
    

    linux-get-pidstat 정기 실행
  • crontab에서 매분 실행
  • * * * * * user linux-get-pidstat  --no-dry_run --pid_dir=/var/tmp --mackerel_api_key=your_api_key --mackerel_service_name=your_service 2>&1 >> /tmp/linux-get-pidstat.log
    
  • 명령 옵션은 다음과 같습니다
  • $ carton exec -- linux-get-pidstat --help
    Usage:
            linux-get-pidstat - command description
              Usage: command [options]
              Options:
                --pid_dir               A directory path for pid files
                --res_file              A file path to be stored results
                --interval              Interval second to be given as a pidstat argument (default:1)
                --count                 Count number to be given as a pidstat argument (default:60)
                --dry_run               Dry run mode. not run the side-effects operation (default:1) (--no-dry_run is also supported)
                --datetime              Datetime (ex. '2016-06-10 00:00:00') to be recorded
                --include_child         Flag to be enabled to include child process metrics (default:1) (--no-include_child is also suppoted)
                --max_child_limit       Number to be used for limiting pidstat multi processes (default:30) (skip this limit if 0 is specified)
                --mackerel_api_key      An api key to be used for posting to mackerel
                --mackerel_service_name An mackerel service name
              Requirement Programs: pidstat and pstree commands
    

    좋은 웹페이지 즐겨찾기