성능 개요

성능은 특정 워크로드에 대해 컴퓨터 시스템이 작동하는 방식을 나타냅니다. 성능은 시스템 응답 시간, 처리량 및 자원 활용 면에서 측정합니다.

성능은 다음의 영향도 받습니다.
  • 시스템에서 사용 가능한 자원
  • 이러한 자원을 얼마나 잘 사용하고 공유하는지 여부
일반적으로 비용 편익 비율을 향상시키도록 시스템을 조정하게 됩니다. 특정 목표에는 다음이 포함될 수 있습니다.
  • 처리 비용을 늘리지 않고 크거나 요구가 많은 워크로드 처리
  • 처리 비용을 늘리지 않고 신속한 시스템 응답 시간 또는 높은 처리량 확보
  • 사용자에 대한 서비스를 줄이지 않고 처리 비용 감축

자원의 효율적인 사용과 같은 성능 튜닝의 일부 장점과 시스템에 사용자를 추가하는 기능은 실제로 확인할 수 있습니다. 빠른 응답 시간으로 인한 사용자의 만족도 증가와 같은 기타 장점은 실제로 파악하기 어렵습니다.

성능 튜닝 지침

성능 튜닝에 대한 전체적인 접근 방법을 개발할 때 다음의 지침을 잊지 마십시오.
  • 수익 체감의 법칙 기억: 가장 큰 성능 이점은 보통 초기 노력을 통해 얻을 수 있습니다.
  • 튜닝만을 위해 튜닝하지 않음: 식별된 제한조건을 완화할 경우에 튜닝하십시오. 성능 문제의 기본 원인이 아닌 자원을 튜닝하면 이후 튜닝 작업이 실제로 훨씬 어려워질 수 있습니다.
  • 전체 시스템 고려: 격리 상태에서 하나의 매개변수 또는 자원을 조정할 수 없습니다. 조정하기 전에 변경으로 인해 시스템 전체에 미치는 영향을 고려하십시오. 성능 튜닝은 다양한 시스템 자원 간 트래이드 오프가 필요합니다. 예를 들어, 입출력 성능을 향상시키기 위해 버퍼 풀 크기를 증가시킬 수 있지만 버퍼 풀이 크면 추가 메모리가 필요하고 이로 인해 성능의 다른 측면이 저하될 수 있습니다.
  • 한 번에 하나의 매개변수 변경: 한 번에 하나의 인수만 변경하십시오. 모든 변경이 이로울 것으로 확신하는 경우에도 각 변경의 기여도를 평가할 수 있는 방법은 없습니다.
  • 레벨에 따른 측정 및 구성: 한 번에 하나의 시스템 레벨만 조정하십시오. 시스템 레벨은 다음과 같습니다.
    • 하드웨어
    • 운영 체제
    • 애플리케이션 서버 및 리퀘스터
    • 데이터베이스 관리자
    • SQL 및 XQuery문
    • 애플리케이션 프로그램
  • 하드웨어 및 소프트웨어 문제점 검사: 일부 성능 문제는 하드웨어, 소프트웨어 또는 둘 다에 서비스를 적용하여 정정할 수 있습니다. 하드웨어 또는 소프트웨어에 서비스를 적용하기 전에 시스템을 모니터링하고 튜닝하는 데 너무 많은 시간을 사용하지 마십시오.
  • 하드웨어 업그레이드 전 문제점 이해: 추가 스토리지 또는 프로세서 성능이 성능을 즉시 향상시킬 수 있다고 판단된 경우에도 시간을 들여서 병목 현상이 있는 위치를 파악하십시오. 처리 성능 또는 이를 이용하는 채널이 없음을 발견하기 위해서만 추가 디스크 스토리지에 비용을 많이 들 수 있습니다.
  • 튜닝 시작 전 폴백(fallback) 프로시저를 올바른 위치에 배치: 튜닝으로 인해 예기치 않은 성능 저하가 발생한 경우 대체 방법을 시도하기 전에 변경한 사항을 되돌려야 합니다. 보존하지 않을 변경사항을 쉽게 실행 취소할 수 있도록 원래의 설정을 저장하십시오.

성능 향상 프로세스 개발

성능 향상 프로세스는 성능의 모니터링 및 튜닝 측면에 대한 반복적인 접근 방식입니다. 이 성능 모니터링의 결과에 따라 데이터베이스 서버의 구성을 조정하고 데이터베이스 서버를 사용하는 애플리케이션을 변경합니다.

데이터를 사용하는 애플리케이션 유형 및 데이터 액세스 패턴에 대한 지식에 따라 성능 모니터링 및 튜닝 결정을 내리십시오. 애플리케이션 유형이 다르면 성능 요구사항이 다릅니다.

성능 향상 프로세스에는 다음과 같은 기본 단계가 포함됩니다.
  1. 성능 목표 정의
  2. 시스템의 주요 제한조건에 대한 성능 표시기 설정
  3. 성능 모니터링 계획 개발 및 실행
  4. 모니터링 결과의 계속적인 분석을 통해 튜닝이 필요한 자원 판별
  5. 한 번에 하나의 조정 수행

일정한 시점에 데이터베이스 서버 또는 애플리케이션을 튜닝하여 성능을 더 이상 향상시킬 수 없는 경우 하드웨어를 업그레이드할 시기입니다.

사용자가 제공할 수 있는 성능 정보

시스템에 튜닝이 필요한 첫 번째 신호는 사용자의 불만일 수 있습니다. 성능 목표를 설정하고 종합적인 방식으로 모니터링하고 조정할 수 있는 시간이 충분하지 않은 경우 사용자의 불만사항을 듣고 성능 문제를 해결할 수 있습니다. 다음과 같은 몇 가지 간단한 질문을 하는 것으로 시작하십시오.
  • 느린 응답은 정확히 무슨 뜻입니까? 예상보다 10% 정도 느리거나 수십 배 느립니까?
  • 언제 문제가 발견되었습니까? 최근 또는 계속해서 발생했습니까?
  • 다른 사용자가 동일한 문제를 경험했습니까? 이러한 사용자는 한두 명의 개인이거나 전체 그룹입니까?
  • 사용자 그룹이 동일한 문제를 경험한 경우 이러한 사용자들이 동일한 근거리 통신망에 연결되어 있습니까?
  • 문제가 특정 유형의 트랜잭션 또는 애플리케이션 프로그램과 관련이 있는 것 같습니까?
  • 발생에 어떤 패턴이 있습니까? 예를 들어, 문제가 하루 중 특정 시간에 발생하거나 연속적으로 발생합니까?

성능 튜닝 한계

성능 튜닝의 이점은 한정되어 있습니다. 시스템 성능을 향상시키는 데 필요한 시간과 비용을 고려할 때 추가 시간 및 비용 투자가 시스템의 사용자에게 도움이 되는 수준을 평가해야 합니다.

시스템에 응답 시간 또는 처리량 문제가 발생한 경우 주로 튜닝으로 성능이 향상될 수 있습니다. 그러나 추가 튜닝만으로 도움이 되지 않는 경우가 있습니다. 이 경우 목표 및 예상을 수정하십시오. 성능을 상당히 높게 향상시키려면 추가 디스크 스토리지, 속도가 빠른 CPU, 추가 CPU, 추가 주기억장치, 속도가 빠른 통신 링크 또는 이들의 조합을 추가해야 합니다.