RDS 퍼포먼스 인사이트에 관해 다루겠습니다
RDS 모니터링에 관한 마지막
강의입니다만 여러분이 숙지하셔야 하고
전반적으로 멋진 도구입니다
퍼포먼스 인사이트는 데이터베이스
성능을 시각화하고 데이터베이스에
영향을 미치는 변수를 분석할 수 있게 해줍니다
즉 데이터베이스 부하를 시각화하고
4가지 유형의 지표로
부하를 필터링할 수 있는 것입니다
1번은 Waits입니다
Waits는 아리송하지만 기본적으로 병목 현상이
될 자원을 보여줍니다
CPU, IO 또는 어떤 lock일 수도 있습니다
데이터베이스를 다른 유형의 인스턴스로
업그레이드하는 방법을 알고 싶고 CPU나
IO를 최적화하길 원한다면 Waits는
데이터베이스가 가장 많이
대기하는 것이 무엇인지 실마리를 제공합니다
CPU인지 IOS인지 등 말입니다
SQL statements로도 필터링할 수 있습니다
SQL문이 어떠한 이유로 기본 상태에서 데이터베이스를
차단하거나 크롤링하게 하는 경우 그 SQL문을
식별할 수 있습니다
그 명령문을 실행하는 팀이나
애플리케이션에 연락해
그 명령문을 어떻게 최적화할지
이해하기 위해서 말입니다
Hosts에 따라 필터링할 수도 있습니다
호스트에 따라 필터링하고 그룹화함으로써
데이터베이스에 과부하를 일으키는
서버나 애플리케이션 서버를 찾을 수 있습니다
그래서 접근을 차단하거나 데이터베이스를 많이 쓰는
이유에 대해 통신을 하고 이해하는 등
조치를 취할 수 있습니다
복제품이 필요한가 봅니다
마지막은 Users입니다
사용자 이름으로 연결하여 많은 양의
데이터베이스를 사용하는
사용자를 찾는 것입니다
이러한 퍼포먼스 인사이트는
누가, 어디서, 또는 어떤 명령문이
CPU, IO, lock 등의 대기를 사용하는지
알 수 있게 해줍니다
데이터베이스 로드는 데이터베이스
엔진을 위한 활성 세션의
수로 산출됩니다
이 모든 것들은 결국 데이터베이스에 로드되는
SQL 쿼리를 확인하는 것을 포함해
문제 해결을 가능하게 해줍니다
우리 데이터베이스는 흥미롭지 않습니다
특별한 걸 실행하는 게 아니기 때문입니다
애플리케이션이 없으니 여러분이
무엇을 보게 될지 스크린샷을 보여드리겠습니다
퍼포먼스 인사이트입니다
Amazon 블로그에서 가져온 것입니다
여기 보시면 줄이 있는데
CPU의 최대치를 보여주고 있습니다
이 아래에 있다면 괜찮은 것이지만
초과했다면 데이터베이스가
최대 수용 능력으로 실행된다는 뜻입니다
오른쪽에서 Waits로 그래프를 자르면
무엇이 데이터베이스를 사용 중인지 보입니다
CPU는 겨우 0.32입니다
io/table/sql/handler는 1.82입니다
따라서 IO를 최적화하고
개선해야 할 것 같습니다
더 나은 디스크를 사용한다든지 말입니다
이것이 Slice by Waits를 이용하는 핵심인데
발생하고 있는 모든 것의 리스트를
제공해서 무엇이 데이터베이스를
막고 있는지 이해할 수 있습니다
이제 실행 중인 SQL 쿼리도
분석할 수 있습니다
보시다시피 이것은 1.38로
시간이 오래 걸리는 SQL 쿼리인데
UPDATE 'schema 3' . 'table1'
SET 's1' = 'md5'('rand'())LIMIT?
기본적으로 많은 작업이고 많은 자원이 필요합니다
이 SQL문을 실행하는 팀과 소통해
왜 실행하고 있는지
더 나은 방법이 있는지
이해할 필요가 있습니다
이것은 어떤 SQL 쿼리가 가장 오래 걸리는지
문제 해결하는 꽤 멋진 방법입니다
그 다음 Users로 볼 수도 있습니다
오른편을 보면 rds_user는
4개 연결되어 있고 jeremiah는 2개입니다
다시 말하지만 출처는 블로그입니다
데이터베이스에서 누가 무엇을 하는지에
대한 정보를 많이 제공하는데
이것 또한 큰 도움이 될 수 있습니다
어떤 응용 프로그램이 1000개의 연결을
열어서 즉시 알아야 할 수도 있습니다
Hosts는 그래프가 없지만
기본적으로 어떤 애플리케이션 서버가
데이터베이스에 연결됐는지 알려줍니다
전반적으로 이 모든 것은 도움이 됩니다
퍼포먼스 인사이트는 문제 해결을
돕는 훌륭한 도구입니다
AWS 콘솔에서
어디 있는지 보여드리겠습니다
Performance Insights는
왼쪽에 있습니다
퍼포먼스 인사이트를
활성화해야 하는데
그러려면 데이터베이스로
가서 수정해야 합니다
DB Instances를 클릭하고
Modify를 클릭합니다
하지만 우리는 t2 유형의 인스턴스를 사용하는데
안타깝게도 현재 db.t2 인스턴스 클래스에서는
퍼포먼스 인사이트가 지원되지 않습니다
그래서 우리는 사용할 수가 없고
그래서 스크린샷을 보여드린 것입니다
스크린샷을 보시면 어떻게 작동하는지 아실 것입니다
하지만 t2.micro 유형이 아닌 인스턴스가 있다면
Modify DB Instance에서
퍼포먼스 인사이트를 활성화할 수 있을 것입니다
보시다시피 db.m4.large를 클릭하고
끝까지 스크롤을 내리면
Performance Insights가 보입니다다
이것을 활성화하고
데이터 보존 기간을 정할 수 있습니다
지금 하지는 않겠지만 이해하셨을 것입니다
이제 RDS 전문가가 되셨습니다
축하드립니다
다음 강의에서 뵙겠습니다