본문 바로가기

AWS 기본 환경 실습/AWS 부하 테스트

(4)
4. DB 서버 병목 원인과 대책 DB 서버 병목의 경우에도 각각의 원인은 다음과 같이 분류할 수 있다. ㅇ DB 설계 문제 ㅇ DB 사용 애플리케이션 문제 ㅇ 서버 리소스 부족 어느 경우에서도 먼저 실제 실행 시간이 걸리는 쿼리를 찾아내는 것이 가장 중요하다. ㅁ DB 설계 문제 실행 속도를 떨어뜨리기 쉬운 패턴을 3가지 꼽으라면 다음과 같다. ㅇ 인덱스 문제 인덱스 설정이 잘못되면 RDB는 매우 비효율적으로 실행된다. MySQL의 경우 SHOW CREATE INDEX로 테이블에 생성된 인덱스를 확인할 수 있다. 인덱스를 생성하는 칼럼의 기준은 다음과 같은 내용이 있지만, 실제 쿼리 실행 계획을 EXPLAIN으로 확인하면서 필요한 인덱스를 추가한다. * WHERE 절 조건으로 자주 사용되는 칼럼 * JOIN 키가 되는 칼럼 * Card..
3. 캐시 서버 병목 원인과 대책 캐시 서버가 병목이 되는 경우는 다음 두 가지이다. ㅁ 캐시 사용 방법 문제 캐시 사용 시에 웹 서버와 캐시 서버간 지속적인 접속을 사용하지 않았을 때 캐시 서버 족 CPU 리소스 사용률은 낮은 수준을 유지하지만, 캐시 사용 부분의 latency가 느려져 전체 시스템에 영향을 주는 경우가 있다. 이런 경우 캐시 서버 접속에 있어 지속적인 접속 사용을 검토하는 것이 좋다. ㅁ 서버 리소스 부족 * CPU 리소스 부족 * 메모리 리소스 부족 캐시 서버 리소스를 모니터링했을 때 CPU나 메모리 리소스 부족이 확인되면 캐시 서버의 스케일 업 또는 스케일 아웃을 검토하기 바란다. 그리고 캐시 서버의 스케일 업이나 스케일 아웃은 온라인 상태에서는 어렵고 구성 변경 중에는 캐시가 히트하지 않는 상황이 발생하기 때문에..
2. 웹 서버 병목 원인과 대책 웹 서버가 병목인 경우 다음과 같은 내용을 위에서부터 순차적으로 확인한다. 이 순서는 대책 방안을 적용했을 대 영향도가 큰 순서로 정렬한 것이다. 웹 서버를 튜닝하고 병목을 제거하면 웹 서버 Throughput이 향상 되기 때문에 웹 서버보다 저렴한 인스턴스와 더 작은 인스턴스 수로도 시스템 전체로 보게 되면 같은 성능을 낼 수 있게 된다. - 운영체제와 미들웨어 설정 문제 - 웹 프레임워크 문제 - 애플리케이션 문제 - 서버 리소스 성능 부족 ㅁ 운영체제와 미들웨어 설정 문제 Apache와 Nginx 등의 HTTP 서버나 사용 중인 프로그래밍 언어 설정을 수정한다. ㅇ TCP 포트 부족 테스트 도구와 같이 웹 서버에서 외부 서버(DB 서버나 웹 서버)와 통신을 할 때 많은 부하가 장시간 발생하면 TCP..
1. 부하 테스트 도구 병목 원인과 대책 단게별 테스트에서 병목이 부하 테스트 도구에 있다고 해도 그 원인은 다양하고 원인별 대응 방법도 다르다. 여기서는 대표적인 원인과 처리 방법을 소개 한다. ㅁ 서버와 부하 테스트 도구 설정 준비 부족 이 경우는 다음과 같은 패턴이 있다 ㅇ 파일 디스크립터 부족 파일 디스크립터(DESCRIPTOR)란 프로그램이 접근하는 파일이나 표준 출력에 할당된 식별자를 말한다. 부하가 없을 때는 문제가 되지 않지만, 많은 부하가 연속적으로 발생하게 되면 Linux에서는 부하 테스트 도중에 테스트 도구에서 사용할 수 있는 파일 디스크립터가 부족해 질 수 있다. 파일 디스크립터가 부족하게 되면 파일 오픈이 안되는 에러가 발생하지만, ulimit 명령어를 사용하여 해당 셀(shell)에서 사용 가능한 파일 디스크립터 수를 ..