문제가 발생한 시점에 성능 데이터를 확인하는 것은 어렵기 때문에 성능을 기록하는 도구를 사용하게 됩니다.
Linux에서는 sysstat를 사용하고 Windows 에서는 Perfmon을 사용합니다.
-------------------------------------------------------- Linux 도구 --------------------------------------------------------
SAR
리눅스에서는 sysstat 패키지를 설치하고 sysstat을 활성화 하면 /var/log/sysstat 또는 /var/log/sa에 성능을 기록합니다.
Install
sudo apt-get install sysstat
enable
sudo vi /etc/default/sysstat
ENABLED="false"를 ENABLE="true" 로 변경
수집 주기를 10 분에서 2분으로 변경
sudo vi /etc/cron.d/sysstat
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 을
*/2 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1 로 변경
sysstat 재시작
sudo service sysstat restart
정보 수집
sar
제 시스템의 경우 /var/log/sysstat/sa16 이라는 파일에 데이터가 저장되었는데 cat으로 내용이 보이지 않는 것으로보아 바이너리로 저장되는 것 같습니다.
블로그를 작성하는 날짜가 16일 이어서 sa16으로 기록되었습니다. 로그 파일이 어느 정도 오랬동안 저장되는지? 한달이 지나면 숫자가 반복되면서 overwrite 되는 것인지는 아직 확인하지 못했습니다.
sar 명령을 실행하니 CPU의 상태 정보가 기록되어 있습니다. 2분 단위로 자료 수집이 된것을 확인할 수 있습니다.
sar -r을 사용하면 메모리의 상태를 확인할 수 있습니다.
sar -b를 사용하면 IO 상태를 확인할 수 있습니다.
sar에 -s 와 -e 인자를 사용해서 시작, 끝 시간을 지정할 수 있습니다.
sar 옵션은 아래와 같습니다.
-------------------------------------------------------- Windows 도구 --------------------------------------------------------
Perfmon
Linux에 Sar이 있다면 Windows에는 perfmon이 있습니다.
시작 - 실행 - perfmon - 성능 모니터를 실행하면 아래 그림과 같이 Memory, Network Interface, PhysicalDisk Processor Information에 대한 정보를 보여 줍니다. (성능 모니터로 CPU 정보를 확인하실 때 Processor 가 아니고 Processor Information을 선택 하셔야 합니다. Processor 는 NUMA를 지원하지 않기 때문에 CPU 가 많이 장착된 시스템에서는 올바른 정보를 보여주지 못합니다.)
주기적으로 정보를 수집하고 저장하기 위해서는 사용자 정의 데이터 수집기 집합을 사용해야 합니다. (logman 명령을 사용해서 데이터 수집기 집합을 만들수도 있으니 다음 블로그를 참고 하세요 https://blogs.technet.microsoft.com/yongrhee/2015/05/16/setting-a-local-perfmon-in-a-windows-client-or-windows-server/)
성능 로그 보다 더 상세한 정보 수집을 위해 System Diagnostics를 선택 합니다.
데이터 파일이 저장될 위치를 확인할 수 있습니다. 수집된 데이터 파일을 다른 장비로 가져가서 분석 가능 합니다.
기본적으로 수집되던 성능 로그 이외에 많은 항목들이 추가 되어 있습니다. NT Kernel은 커널 정보를 추적하는 것이고 Performance Counter는 전통적인 성능 로그 그리고 구성 유형은 시스템의 각종 구성 정보를 수집하는 것입니다.
전체 자료 수집 시간은 10분 이고 1분에 한 번씩 정보를 수집 합니다.
10분이 지나면 아래와 같이 보고서 - 사용자 장의 - [정의한 이름] 아래에 시스템 성능 구성 정보를 보여줍니다. 각 구성 요소에 대한 점검을 진행하고 구성 또는 성능에 문제가 있는지를 확인해줍니다.
디스크 항목을 자세히 확인해보니 입축력이 가장 많은 파일, 디스크에 대한 IO 정보, NTFS 성능에 영향을 주는 구성 정보를 보여줍니다.
템플릿을 사용하면 시스템 구성 정보 등 더 많은 정보를 보여주는데 데이터 수집기 집합을 만들 때 수동으로 만들기를 선택 한 후 성능 카운터를 수집하도록 하면 sar와 비슷하게 성능 정보만 수집할 수 있습니다.
sar와는 다르게 perfmon은 어떤 데이터를 수집할지 선택할 수 있습니다. 각 카운터에 대해서 잘 알지 못한다면 아래 "설명 표시"를 클릭하면 해당 카운터에 대한 설명을 확인할 수 있습니다.
주의) 성능 로그가 3일 이상 수집이 되지 않을 경우 Task Scheduler - Task Scheduler Library - Microsoft - Windows - PLA의 설정에 "다음 시간 이상 실행되면 중지 3일" 이 설정되어 있는지 확인해야 합니다. Windows Server 2012에서는 이 옵션이 설정되어 있어 3일 이상 실행되면 자료 수집이 멈추는 이슈가 있었습니다.
sar와 perfmon에 대한 비교를 마칩니다. 두 도구가 완전히 동일하다고 할 수는 없겠지만 주기적으로 시스템 성능 정보를 수집할 수 있다는 점에서 유용합니다.
'Windows & (Linux | vSphere)' 카테고리의 다른 글
디스크가 가득 차는 경우 (0) | 2018.12.15 |
---|---|
부팅 과정 및 복구 (Grub) (0) | 2018.06.17 |
IO 부하 (iostat, iotop) (0) | 2018.06.06 |
시스템 부하 (top) (0) | 2018.06.03 |
시스템 부하 확인 (uptime) (2) | 2018.06.02 |