DA 가이드

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

서버 성능 개선

DB설계와 이용
데이터베이스 성능개선
서버 성능 개선
작성자
admin
작성일
2021-02-10 16:15
조회
1737

객체 튜닝

테이블, 인덱스, 세그먼트에 관련한 사항이 대상이다.


  • 객체는 성능을 고려하여 설계되어야 한다.
  • 저장 장치를 이루는 블록, 확장 영역, 세그먼트에 관련된 사항을 튜닝한다.
  • 인덱스는 삭제, 갱신으로 스큐 현상이 심한 경우는 재구성 작업이 필요하다.
  • IO 병목이 발생하지 않게 물리적인 배치를 실시한다.

인스턴스 튜닝

DBMS 인스턴스는 메모리 부분과 프로세스가 튜닝 대상이다. 이는 DBMS 종속적인 요소가 많으므로 DBMS별 확인이 필요하다.


메모리
  • 메모리는 Buffer 캐시, library 캐시 등의 히트율(HIT ratio)에 의해서 평가하여 조정한다.
  • sort area, hash area는 스와핑(swapping) 발생 여부에 따라 사이즈를 결정한다. 특정한 대형 작업은 작업을 실시하는 세션에서 조정하여 작업을 실시한다.
프로세스
  • 대부분의 DBMS가 다중 프로세스 시스템이고 필요에 따라서 추가적인 프로세스 가동이 가능하다.
Latch 경합
  • 트랜잭션 처리를 위한 경합이 발생한다.
  • 객체 생성이나 변경 등으로 경합이 발생할 수 있다.

환경 튜닝

환경 튜닝은 하드웨어나 운영체제 관점에서의 튜닝이다. CPU, 메모리, 디스크 I/O, 네트워크가 환경 튜닝 대상이다. 환경 튜닝은 기본값으로 설정되어 있는 경우를 제외하고 많은 성능의 향상을 기 대하기 어렵다. 하드웨어 성능이나 구성에 따라 환경 설정된 상태에서 운영하기 때문이다.

예외적으로 고가용성을 위한 시스템 구성, RAID의 구성, 버전에 따른 패치 적용이 정상적이지 않을 경우에 성능에 결정적인 영향을 줄 수 있으므로 확인이 필요하다.


CPU
  • 튜닝 대상이라기보다는 성능을 평가하기 위한 기준으로 CPU 사용율(Utilization)을 평가한다.
  • SAR(System Activity Report)로 모니터링 했을 때 CPU 사용이 %usr > %sys > %wio 순으로 되는 것이 바람직하다.
  • %idle이 일반적으로 20~30%을 유지하는 것이 바람직하며, 0%인 상태가 지속적으로 유지되면 증설을 고려한다.
  • Sun - ps, HP - top 또는 glance, IBM - monitor 등의 프로세스별 모니텅링이 가능하다.

이와같은 도구는 문제 프로세스를 OS 차원에서 확인할 수 있다.


메모리 튜닝
  • Paging(page-in, page-out)과 프로세스 단위의 Paging 현상인 Swapping 발생 상태를 확인한다.
  • DBMS를 포함한 사용자 사용 메모리 크기가 전체 크기의 40 ~ 60%를 유지하는 것이 바람직하다.
I/O 튜닝
  • 데이터베이스 병목은 I/O에 의해서 발생한다.
  • 물리적인 디스크와 디스크 채널을 분산하므로 성능을 개선할 수 있다.
  • 읽기/쓰기 작업에 따른 분산이 필요하다
  • Cook Device보다는 Raw Device가 IO 성능에 유리하다.
네트워크 튜닝