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 성능에 유리하다.