본문 바로가기

MS SQL Server/Administration&Management

SQL Server 2016 업그레이드 이후, DB 복원 성능 저하 이슈

금번 SQL Server 2016 (SQL 2016 SP1 CU8) 업그레이드 이후, Restore Server의 복원(Restore Database)수행 속도가 크게 저하되는 이슈가 있어, 

원인 및 현상을 분석한 내용과, 대응 방안 함께 공유합니다.


1. 현상

Org Svr Version

Restore Svr Version

Restore
Option

CPU %

Time Sec

Restore MiB/sec

BufferCount
(TF 3212)

Transfer Size

SQL 2008 R2 SP3 x64 STD 

SQL 2016 STD SP1 CU8 x64 STD

Default

27

426

892

6

1024 KiB

SQL 2016 STD SP1 CU8 x64 STD

Default

8

1448

262

6

1024 KiB

: 복원 원본서버를 SQL Server 2008 R2 SP3 → SQL Server 2016 SP1 CU8 업그레이드 이후, 일복원 Restore 성능이 1/3 수준으로 감소하였습니다.
(890MiB/sec → 260MiB/sec)

 

2. 환경

환경 구분

OS/DB

Backup
/ Restore Option

DB Information

Restore Server

Windows Server 2012 R2 STD x64
SQL Server 2016 STD SP1 CU8 x64 (13.0.4474)

Compressed
/ Default

Database Info:

Reserved: 380,752MiB
Compressed Backup: 138,240MiB
Compatibility Level 100

Server Spec:

Xeon-G 6128 3.40GHz / 128GiB / 100GiB for SQL Server
Data Disk: SAS 10K 1.6TB * 25 (R10, w/c 4GiB, 
실제 섹터당 바이트: 4096)
Log Disk : SAS 10K 600GB * 6 (R10, w/c 2GiB,실제 섹터당 바이트: 512)
Backup Disk: SAS 10K 8TB * 12 (R10, w/c 4GiB,실제 섹터당 바이트: 4096)

Old 원본

Windows Server 2012 R2 STD x64
SQL Server 2008 R2 STD SP3 x64 (10.50.6542)

Compressed
/ Default

New 원본

Windows Server 2012 R2 STD x64
SQL Server 2016 STD SP1 CU8 x64 (13.0.4474)

Compressed
/ Default

 


4.원인

: SQL Server 2016 이슈로 인한 복원성능저하로 확인 하였습니다. (SQL 2014~2017 해당)

> SQL Server Fix History "Slow restore performance when restoring a compressed backup on a disk with 4K sector size in SQL Server" 문서를 통해,
다음과 같은 경우에, 압축백업에 대해 복원성능 저하가 나타날 수 있음을 확인 하였습니다. 

   (https://support.microsoft.com/ko-kr/help/4088193/slow-performance-on-restoring-compressed-backup-on-disk-with-4k-sector)


>> 4K sector size Disk에 복원을 수행하는 경우. (Restoring to a disk with 4K sector size. )

>> Azure IaaS VM에 복원하는 경우 (Azure VM Disk는 sector Size 4K 입니다.) 
              (Restoring to a SQL Server hosted on an Azure Infrastructure-as-a-Service Virtual Machines (IaaS VM) (Azure IaaS VM disks will have a 4K sector size).)

     >> 512 Sector Size Disk에 1800 TF를 켜고 복원한 경우 (Restoring to a 512 sector size disk with Trace Flag (TF) 1800 enabled.))


 

5. Action Plan

: 위, MS Support 문서에 따라 SQL Server 2016 SP1 CU9 패치 이후, 아래 표와 같이 Restore Database 성능 저하 문제가 해결되는것을 확인 하였습니다.


Case

Org Svr Version

Restore Svr Version

Restore
Option

CPU %

Time Sec

Restore MiB/sec

BufferCount
(TF 3213 ON)

Transfer Size

AS-IS

SQL 2008 R2 SP3 x64 STD 

SQL 2016 STD SP1 CU8 x64 STD

Default

27

426

892

6

1024 KiB

SQL 2016 STD SP1 CU8 x64 STD

Default

8

1448

262

6

1024 KiB

TO-BE

SQL 2008 R2 SP3 x64 STD 

SQL 2016 STD SP1 CU9 x64 STD

Default

28

426

891

6

1024 KiB

SQL 2016 STD SP1 CU8 x64 STD

Default

28

454

837

6

1024 KiB

  

6. 추가 검토사항
: SQL Server 2016 SP1 외 문제가 발생할수 있는 버전
  > 위 첨부한 MS Support 문서에 따라, 증상이 발생할 수 있는 버전 대상과, 문제가 Fix된 버전은 다음과 같습니다.

         (전체 버전 대상으로 테스트 해보지 못해, 증상이 발생하기 시작하는 시점은 확인하지 못했습니다.)


증상이 발생할 수 있는 버전

Fix된 버전

SQL 2014 SP2 CU12 이하 버전

SQL 2014 SP2 CU12

SQL 2016 SP1 CU8 이하 버전

SQL 2016 SP1 CU9

SQL 2016 SP2 이하 버전

SQL 2016 SP2 CU1

SQL 2017 CU6 이하 버전

SQL 2017 CU7

 

: Disk Sector Size가 512인 경우에도 복원 성능저하 문제 발생

> 테스트 수행한 장비(SQL 2016 SP1 CU8)의 Disk Sector Size 512 Byte인 Disk Array에 대해서도 동일한 성능문제가 발생했으며, 
            이러한 경우에도 SQL 2016 SP1 CU9 업데이트를 통해 문제가 해결된 것을 확인 하였습니다.




넥슨 GameDB팀 / 차태욱