SQL Server/SQL Server Tip

SQL Server 2014 버풀 확장

SungWookKang 2015. 7. 16. 08:34
반응형

SQL Server 2014 버풀 확장

 

  • Version : SQL Server 2014

 

 

SQL Server 2014에서 도입된 버퍼 풀 확장은 I/O 처리량을 향상 시키기 위해 비휘발성 RAM(SSD) 을 데이터베이스 엔진에서 사용 할 수 있도록 하는 기능이다.

 

데이터베이스의 주 목적은 데이터 저장 및 검색이므로 디스크 I/O에 대한 효율이 매우 중요하다. 데이터 및 인덱스 페이지는 디스크에서 버퍼 풀로 로드되고 수정된 페이지(더티 페이지)는 디스크에 다시 쓰여진다. 서버 및 데이터베이스 검사점에서 메모리가 부족하면 버퍼 캐시에 있는 핫(활성) 더티 페이지가 캐시에서 제거되고 기계식 디스크에 쓰여진 다음 다시 캐시에서 로드한다.

 

일반적으로 이러한 I/O 작업은 4KB 데이터에서 16KB 데이터 정도의 작은 임의 읽기 및 쓰기이다. 작은 임의 I/O 패턴은 잦은 검색을 유발하기 때문에 기계식 디스크의 충돌 경합이 발생하고 I/O 대기 시간이 증가하며 시스템의 총 I/O 처리량이 감소한다.

 

버퍼 풀 확장 기능은 비휘발성 저장소(SSD)로 버퍼 풀 캐시를 확장 한다. 버퍼 풀은 SQL Server의 주 메모리 할당 원본으로 사용 된다. 버퍼 풀 확장은 더 큰 데이터베이스 작업 집합을 수용하고 RAM과 SSD 간의 I/O 페이징이 강제로 수행된다. 따라서 작은 임의 I/O가 기계식 디스크에서 SSD로 효과적으로 오프로드된다. SSD의 더 낮은 대기 시간과 향상된 임의 I/O 성능 덕분에 버퍼 풀 확장은 I/O 처리량을 크게 향상 시킨다.

 

버퍼 풀 확장 기능의 이점

  • 임의 I/O 처리량의 증가
  • I/O 대기 시간의 감소
  • 트랜잭션 처리량의 증가
  • 더 큰 하이브리드 버퍼 풀로 읽기 성능 향상

 

 

SSD 저장소는 디스크 저장소 하위 시스템보다는 메모리 하위 시스템에 대한 확장으로 사용된다. 즉 버퍼 풀 확장 파일을 통해 버퍼 풀 관리자는 DRAM 및 NAND 플래시 메모리를 둘 다 사용하여 SSD에서 지원하는 비휘발성 RAM에서 비활성화된 페이지에 대해 훨씬 더 큰 버퍼 풀을 유지 관리 할 수 있다.

 

SSD에서 L1이 DRAM이고 L2가 버퍼 풀 확장인 여러 수준 캐싱 계층이 만들어 진다. L2 캐시에는 클린 페이지만 기록되므로 데이터 안전을 유지할 수 있다. 버퍼 관리자는 L1 캐시와 L2 캐시 간의 클린 페이지 이동을 처리 한다.

 

다음 그림은 버퍼 풀의 대략적인 아키텍처 이다. 버퍼 관리 구성 요소는 데이터베이스 페이지를 액세스하고 업데이트하기 위한 버퍼 관리자와 데이터베이스 파일 I/O를 줄이기 위한 버퍼 풀의 두 가지 메커니즘으로 구성되어 있다.

 

 

버퍼 풀 확장을 사용한 경우 SSD에 있는 버퍼 풀 캐싱 파일의 크기와 파일 경로를 지정한다. 이 파일은 SSD에 있는 저장소의 인접 익스텐트이며 SQL Server 인스턴스를 시작하는 동안 정적으로 구성된다. 파일 구성 매개 변수의 변경은 버퍼 풀 확장 기능이 사용하지 않도록 설정된 경우에만 수행할 수 있다. 버퍼 풀 확장이 사용되지 않도록 설정된 경우 모든 구성 설정이 레지스트리에서제거된다. 버퍼 풀 확장 파일은 SQL Server 인스턴스를 종료하면 즉시 삭제 된다.

 

 

[참고자료]

http://msdn.microsoft.com/ko-kr/library/dn133176(v=sql.120).aspx

 

 

2014-05-14 / 강성욱 / http://sqlmvp.kr

 

 

SQLSERVER, mssql, SQL튜닝, SQL강좌, sqlserver 2014, sql 2014, sql 버퍼 풀 확장

 

 

 

반응형