1. 모니터링 도구와 프로파일링 도구
- 부하 테스트를 실행할 때는 Throughput 모니터링 도구와 시각화 도구가 필수적입니다.
- 그러나 프로파일링 도구를 활용하면 부하 테스트를 하게 되면 프로파일링 도구의 응답 시간에 영향을 주어 시스템의 실제 성능을 왜곡할 수 있습니다.
- 이러한 문제를 해결하기 위해 다음과 같은 접근 방식이 필요합니다.
1.1 주요 모니터링 도구
시스템 모니터링을 위한 핵심 도구들:
- top 명령어와 netstat 명령어
- AWS 관리 콘솔
- Xhprof
- New Relic
2. 리소스 모니터링을 위한 top 명령어
2.1 top 명령어 기본 사용법
- 시스템을 실시간으로 모니터링하기 위한 가장 기본적인 도구인 top 명령어는 시스템 전체와 프로세스별 CPU와 메모리 사용량 등을 볼 수 있어 부하 테스트 시에 유용하게 사용됩니다.
$ top
top - 03:17:50 up 197 days, 18:54, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 234 total, 1 running, 233 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4049868k total, 2470912k used, 1578956k free, 104832k buffers
2.2 CPU 사용률 분석
- 사용자 프로세스 CPU 사용률(us): 0.2%us는 '사용자 프로세스 CPU 사용률(0.2%)'을 의미
- 시스템 프로세스 CPU 사용률(sy): 0.2%sy는 '시스템 프로세스 CPU 사용률(0.2%)'을 의미
- 유휴 CPU 비율(id): 시스템의 여유 자원을 나타냄
정보
사용자 프로세스 CPU 사용률은 미들웨어나 애플리케이션 프로그램에 사용되는 CPU 사용률을 의미합니다. 부하 테스트 중 이 수치가 높을 때는 CPU를 애플리케이션에서 사용하고 있는 비율이 높은 것으로 일반적으로 좋은 의미라고 볼 수 있다. 반대로 시스템 프로세스 CPU 사용률이 높은 경우 파일이나 네트워크 입출력 등에 CPU가 사용되고 있는 것으로 볼 수 있다.
2.3 메모리 사용량 모니터링
- 전체 메모리: 4049868k total
- 사용 중인 메모리: 2470912k used
- 가용 메모리: 1578956k free
- 버퍼/캐시: 시스템 성능 향상을 위한 버퍼와 캐시 메모리