반응형

▣ Windows Configuration

  • OS   
    - 버전, 패치, 버전에 따른 CPU/Memory 최대 용량 확인.
  • CPU
    - n개 모두 동일 사양으로 설치
    - max 설치 CPU 개수 확인
  • Memory 
    -  메모리 성능 체크/예측
    -  최대 메모리 용량 확인
  • Virtual Memory
    - 가상 메모리 페이징 파일 크기를 실제 메모리의 1.5배 설정
    - 가능한 시스템 디렉토리와 분리, I/O 분산, 스토리지 결정


▣ SQL Server Configuration

  • 버전
    - 최종 버전, 서비스팩, 보안 패치 확인.
  • 프로세서(병렬처리)
    - Default 로는 병렬 처리를 진행하도록 설정되어 있고, 이를 준수하도록 권장.
    - Thread Handling 과 관련하여 AV(Access Violation) 이 발생하는 경우 이 값을 disable 하여
      사용 하는 경우도 있으나, 성능 고려 시에는 병렬처리를 적용하는 것이 바람직.
  • 프로세서(Lightweight)
    - 성능 모니터 Context Switch 수치가 5000 이상이 되고, 4개 이상의 CPU 를 사용하며 CPU 사용
       률이 모두 높을 때 유용하게 사용될 수 있는 옵션으로 스레드 대신  SQL Server 파이버 모드로
       전환하여 사용되는 것으로  컨텍스트 전환이 줄어듬.
    - 위의 조건이 적용되지 않는 경우 Default(사용 안 함)를 적용 할 것을 권장.
  • 프로세서(Priority Boost)
    - 다른 Process에 비해 SQL Server가 CPU를 우선하여 사용 할 수 있도록 아래 항목을 설정.
    - 단, SMP 서버에서만 유효한 것으로 이의 설정 시 Windows 2000 스케줄러의 기준 우선 순위인
       13으로 실행.
    - 기본 값인 0으로 설정하면 우선 순위 기준 7 로 수행되지만 우선 순위가 너무 높을 시 운영 체제
       및 네트워크 기능에 필요한 리소스를 사용하게 되어 SQL Server 종료나 서버에 있는 다른 운영
       체제 사용에 문제가 발생하므로 신중을 기해 설정.
  • 메모리
    - 각 항목별 SQL Server 메모리 사용량 체크.
    - 기타 Application이 수행될 영역을 고려하지 않고 DB 전용 서버라면 동적 메모리 사용을 권장.
    - 기타 Application을 고려할 경우 Max와 Min메모리를 적절하게 적용 SQL Server에게 충분한
       메모리가 확보되도록 설정.


▣ Database Configuration

  • default to local cursor
    - 재귀 커서를 사용하게 될 경우 default to local cursor를 ON 으로 설정.
  • auto shrink
    - 이 옵션이 ON으로 설정되면, 데이터베이스 파일이 정기적으로 축소.
    - 하지만 이 옵션은 작업 부하가 크기에 설정하지 않도록 적정 사이즈로 설정.
  • auto create/update statistics
    - 조건자에서 사용되는 열에 대해 자동으로 통계가 생성되는 옵션으로 통계를 추가하면 SQL
       Server 쿼리 최적화 프로그램이 쿼리 평가 방법을 더 잘 결정하여 성능이 향상.
    - 항상 이 두 옵션이 ON되도록 설정. 
       단, 큰 테이블의 경우 수작업으로 적정한 시점에 update statistics를 진행.
  • DB Recovery Model
    - 복구 모델은 최대/대량로그/단순의 3가지로 업무 성격과 복구 성격에 따라  선택할 수 있음.
    - OLTP성 DB에는 최대를 선택하고, 통계나 DSS용 DB에서는 대량로그나 단순 모델을 선택하여 
       백업/복구 전략과 함께 관리.
  • 적절한 데이터베이스 및 로그 크기 산출
    - 데이터베이스 생성시 사용량을 예측하여 적절한 데이터베이스 크기 결정.
    - 트랜잭션 로그는 데이터 파일의 20 - 25%로 권장.
       (트랜잭션 로그는 Round-Robin 방식으로 파일을 여러개 둘 필요 없음)


▣ Storage Configuration

  • Feilgroup Allocation
    파일간 디스크 I/O 경합을 줄이기 위해 파일 그룹으로 분리
    - Primary 그룹과 데이터 파일 그룹 분리
    - 데이터 파일 그룹과 인덱스 파일 그룹 분리
    - 데이터/인덱스 파일 그룹과 Temporary 파일 그룹 분리
    - 데이터 파일 그룹과 Transaction Log 파일의 분리
  • Default Filegroup
    - 관리자나 사용자의 실수로 인한 파일 그룹 미지정 예방 위해 디폴트 파일 그룹 설정.
  • 자동 증가
    - 파일 사이즈의 경우 사용량을 체크하여 미리 적정 크기로 증가 시켜 놓음.
    - 유사시 파일이 Full나는 경우를 대비하여 자동증가 설정.
    - 증가 크기가 너무 작으면 잦은 자동 증가 부하 발생.
    - 증가 크기가 너무 크면 자동 증가 발생시 대기 발생.
  • 자동 축소
    - 성능 저하의 원인이 될 수 있으므로 사용 금지.
  • Tempdb Allocatioin
    - Tempdb는 조인, 정렬, 임시테이블등에 사용되므로 일반 사용자 DB 파일과 분리.
    - 휘발성 데이터이므로 스토리지는 가장 빠르면서 저렴한 Raid-0(또는 10?) 유리.
    - CPU 개수별로 파일 스레드가 생성되므로 CPU 개수의 배수로 Tempdb 파일 생성.







반응형

+ Recent posts