성능 개요
성능은 특정 워크로드에 대해 컴퓨터 시스템이 작동하는 방식을 나타냅니다. 성능은 시스템 응답 시간, 처리량 및 자원 활용 면에서 측정합니다.
- 시스템에서 사용 가능한 자원
- 이러한 자원을 얼마나 잘 사용하고 공유하는지 여부
- 처리 비용을 늘리지 않고 크거나 요구가 많은 워크로드 처리
- 처리 비용을 늘리지 않고 신속한 시스템 응답 시간 또는 높은 처리량 확보
- 사용자에 대한 서비스를 줄이지 않고 처리 비용 감축
자원의 효율적인 사용과 같은 성능 튜닝의 일부 장점과 시스템에 사용자를 추가하는 기능은 실제로 확인할 수 있습니다. 빠른 응답 시간으로 인한 사용자의 만족도 증가와 같은 기타 장점은 실제로 파악하기 어렵습니다.
성능 튜닝 지침
- 수익 체감의 법칙 기억: 가장 큰 성능 이점은 보통 초기 노력을 통해 얻을 수 있습니다.
- 튜닝만을 위해 튜닝하지 않음: 식별된 제한조건을 완화할 경우에 튜닝하십시오. 성능 문제의 기본 원인이 아닌 자원을 튜닝하면 이후 튜닝 작업이 실제로 훨씬 어려워질 수 있습니다.
- 전체 시스템 고려: 격리 상태에서 하나의 매개변수 또는 자원을 조정할 수 없습니다. 조정하기 전에 변경으로 인해 시스템 전체에 미치는 영향을 고려하십시오. 성능 튜닝은 다양한 시스템 자원 간 트래이드 오프가 필요합니다. 예를 들어, 입출력 성능을 향상시키기 위해 버퍼 풀 크기를 증가시킬 수 있지만 버퍼 풀이 크면 추가 메모리가 필요하고 이로 인해 성능의 다른 측면이 저하될 수 있습니다.
- 한 번에 하나의 매개변수 변경: 한 번에 하나의 인수만 변경하십시오. 모든 변경이 이로울 것으로 확신하는 경우에도 각 변경의 기여도를 평가할 수 있는 방법은 없습니다.
- 레벨에 따른 측정 및 구성: 한 번에 하나의 시스템 레벨만
조정하십시오. 시스템 레벨은 다음과 같습니다.
- 하드웨어
- 운영 체제
- 애플리케이션 서버 및 리퀘스터
- 데이터베이스 관리자
- SQL 및 XQuery문
- 애플리케이션 프로그램
- 하드웨어 및 소프트웨어 문제점 검사: 일부 성능 문제는 하드웨어, 소프트웨어 또는 둘 다에 서비스를 적용하여 정정할 수 있습니다. 하드웨어 또는 소프트웨어에 서비스를 적용하기 전에 시스템을 모니터링하고 튜닝하는 데 너무 많은 시간을 사용하지 마십시오.
- 하드웨어 업그레이드 전 문제점 이해: 추가 스토리지 또는 프로세서 성능이 성능을 즉시 향상시킬 수 있다고 판단된 경우에도 시간을 들여서 병목 현상이 있는 위치를 파악하십시오. 처리 성능 또는 이를 이용하는 채널이 없음을 발견하기 위해서만 추가 디스크 스토리지에 비용을 많이 들 수 있습니다.
- 튜닝 시작 전 폴백(fallback) 프로시저를 올바른 위치에 배치: 튜닝으로 인해 예기치 않은 성능 저하가 발생한 경우 대체 방법을 시도하기 전에 변경한 사항을 되돌려야 합니다. 보존하지 않을 변경사항을 쉽게 실행 취소할 수 있도록 원래의 설정을 저장하십시오.
성능 향상 프로세스 개발
성능 향상 프로세스는 성능의 모니터링 및 튜닝 측면에 대한 반복적인 접근 방식입니다. 이 성능 모니터링의 결과에 따라 데이터베이스 서버의 구성을 조정하고 데이터베이스 서버를 사용하는 애플리케이션을 변경합니다.
데이터를 사용하는 애플리케이션 유형 및 데이터 액세스 패턴에 대한 지식에 따라 성능 모니터링 및 튜닝 결정을 내리십시오. 애플리케이션 유형이 다르면 성능 요구사항이 다릅니다.
- 성능 목표 정의
- 시스템의 주요 제한조건에 대한 성능 표시기 설정
- 성능 모니터링 계획 개발 및 실행
- 모니터링 결과의 계속적인 분석을 통해 튜닝이 필요한 자원 판별
- 한 번에 하나의 조정 수행
일정한 시점에 데이터베이스 서버 또는 애플리케이션을 튜닝하여 성능을 더 이상 향상시킬 수 없는 경우 하드웨어를 업그레이드할 시기입니다.
사용자가 제공할 수 있는 성능 정보
느린 응답
은 정확히 무슨 뜻입니까? 예상보다 10% 정도 느리거나 수십 배 느립니까?- 언제 문제가 발견되었습니까? 최근 또는 계속해서 발생했습니까?
- 다른 사용자가 동일한 문제를 경험했습니까? 이러한 사용자는 한두 명의 개인이거나 전체 그룹입니까?
- 사용자 그룹이 동일한 문제를 경험한 경우 이러한 사용자들이 동일한 근거리 통신망에 연결되어 있습니까?
- 문제가 특정 유형의 트랜잭션 또는 애플리케이션 프로그램과 관련이 있는 것 같습니까?
- 발생에 어떤 패턴이 있습니까? 예를 들어, 문제가 하루 중 특정 시간에 발생하거나 연속적으로 발생합니까?
성능 튜닝 한계
성능 튜닝의 이점은 한정되어 있습니다. 시스템 성능을 향상시키는 데 필요한 시간과 비용을 고려할 때 추가 시간 및 비용 투자가 시스템의 사용자에게 도움이 되는 수준을 평가해야 합니다.
시스템에 응답 시간 또는 처리량 문제가 발생한 경우 주로 튜닝으로 성능이 향상될 수 있습니다. 그러나 추가 튜닝만으로 도움이 되지 않는 경우가 있습니다. 이 경우 목표 및 예상을 수정하십시오. 성능을 상당히 높게 향상시키려면 추가 디스크 스토리지, 속도가 빠른 CPU, 추가 CPU, 추가 주기억장치, 속도가 빠른 통신 링크 또는 이들의 조합을 추가해야 합니다.