쓰기 캐싱 기능이 설정되면 디스크 성능이 저하됨

기술 자료 번역 기술 자료 번역
기술 자료: 332023 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

하드 디스크가 쓰기 캐싱을 구현하고 있고 컴퓨터가 다음 운영 체제 중 하나를 사용할 경우 특정 하드 디스크 쓰기 작업이 예상보다 느리게 수행될 수 있습니다.
  • Windows 2000 SP3(서비스 팩 3)
  • 다음 Microsoft 기술 자료 문서에 설명되어 있는 핫픽스가 설치된 Windows 2000 서비스 팩 2(SP2)
    281672 "쓰기 캐시 사용" 기능을 설정하면 데이터가 손실될 수 있음 (영문)
  • Windows XP
특히, 하드 디스크 쓰기 성능이 SP3 이전의 Windows 2000 버전보다 느려질 수 있습니다. 또한 클러스터 컴퓨터에서 공유 디스크에 하드 디스크 쓰기 작업을 수행하면 각 노드 간의 쓰기 성능의 차이가 크게 날 수 있습니다.

원인

SP3 이전의 Windows 2000 버전에는 특정 디스크 명령을 실행하지 못하게 하는 버그가 포함되어 있습니다. 이들 명령은 쓰기 캐싱 기능을 설정한 디스크에만 실행됩니다. 이러한 명령은 중요한 데이터를 디스크의 write-behind 캐시에 임시로 보관하는 대신 강제로 디스크 드라이브에 즉시 기록되게 합니다.

이 버그에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
281672 "쓰기 캐시 사용" 기능을 설정하면 데이터가 손실될 수 있음 (영문)

기술 자료 문서 281672에 설명되어 있는 핫픽스가 이 버그를 수정하여 쓰기 캐싱 기능을 사용 가능하게 설정하면 이들 명령이 예상대로 디스크에 실행되도록 합니다. 이 수정은 Windows 2000 SP3에 포함되어 있습니다. Windows XP에도 유사한 수정이 포함되어 있습니다.

이들 명령은 중요한 데이터의 안전을 위해 일부 성능은 저하되도록 의도적으로 설계되었습니다. 또한 중요한 데이터가 즉시 디스크에 기록되도록 합니다. 이들 명령은 특정 디스크 장치의 쓰기 캐싱 기능이 사용 가능하게 설정되고 표준 메커니즘을 사용하여 이를 검색할 수 있는 경우에만 실행됩니다. 이러한 안전 동작을 쓰기 캐싱 기능을 구현하는 디스크에 적용하면 특정 디스크 작업 동안 성능이 떨어집니다. 자세한 내용은 본 문서의 "추가 정보" 절을 참조하십시오. 또한 클러스터 컴퓨터에서도 리소스에 장애 조치가 수행되는 경우 클러스터 리소스를 받는 노드로 하드 디스크 정보가 전달되지 않을 수 있습니다. 따라서 각 노드 간에 하드 디스크 쓰기 작업 성능이 다를 수 있습니다.

해결 방법

Windows 2000 실행 컴퓨터

경고: 업데이트된 드라이버를 설치하고 Power Protected 쓰기 캐시 옵션을 설정하여 이 수정을 구현한 경우에는 중요한 데이터가 디스크의 기본 제공 캐시에서 디스크로 나중에 기록되는 대신 즉시 디스크로 기록되게 하는 Windows 2000 디스크 드라이버에 기본 제공된 보호 기능이 제거됩니다. 해당 컴퓨터 및 이와 연결된 모든 하드 디스크가 여분 배터리 지원 전원 공급 장치 등을 포함할 수 있는 하드웨어 설계를 통해 실수로 인한 전원 손실로부터 보호되는 경우에만 이 수정을 구현하십시오. 하드웨어에서 제공되는 보호 정도를 확인하려면 해당 컴퓨터와 저장 장치의 공급업체에 문의하십시오. 수반할 수 있는 위험의 정도를 이해하고 감수할 수 있으며 이러한 위험이 적절한 하드웨어 전원 보호 기능을 통해 완화되고 있었음을 확신하는 경우에만 이 수정을 구현하십시오. 또한 클러스터 컴퓨터에서 공유 디스크에 대한 노드 간 하드 디스크 쓰기 작업의 성능 차이도 각 노드에서 Power Protected 쓰기 캐시 옵션을 설정하여 해결할 수 있습니다.

자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
281672 "쓰기 캐시 사용" 기능을 설정하면 데이터가 손실될 수 있음 (영문)

1부: Windows 2000 업데이트 설치

현재 제품의 기본 동작을 수정하는 지원 기능은 Microsoft에서 구할 수 있지만 이 문서에서 설명하는 동작을 수정하기 위한 기능일 뿐입니다. 이 기능이 특별히 필요한 시스템에만 적용하십시오.

기능을 다운로드할 수 있는 경우 기술 자료 문서의 맨 위에 "핫픽스 다운로드 가능"이 표시됩니다. 이 섹션이 표시되지 않으면 Microsoft 기술 지원 서비스에 문의하여 핫픽스를 구합니다.

참고 문제가 추가로 발생하거나 문제 해결이 필요한 경우 별도의 서비스 요청을 해야 할 수도 있습니다. 이 특정 기능으로 해결할 수 없는 추가적인 질문과 문제에 대해서는 지원 비용이 청구됩니다. Microsoft 온라인 기술 지원 전화 번호의 전체 목록을 얻거나 별도의 서비스 요청을 하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/contactus/?ws=support
참고 "핫픽스 다운로드 사용 가능" 형식에는 기능에 사용할 수 있는 언어가 표시됩니다. 사용자 언어가 표시되지 않으면 해당 언어로 기능을 사용할 수 없기 때문입니다. 이 수정의 영어 버전은 다음 표에 나열된 파일 특성 또는 그 이후의 파일 특성을 갖습니다. 이 파일의 날짜와 시간은 UTC(협정 세계시)를 기준으로 나열되어 있으며, 파일 정보를 볼 때 현지 시간으로 변환됩니다. UTC와 현지 시간의 차이를 보려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
   날짜         시간   버전  크기    파일 이름
   -------------------------------------------------------
   <Tr><Td>2003-01-15</Td>         <Td>19:42</Td>         <Td>5.0.2195.6655</Td>         <Td>34,832</Td>         <Td>Classpnp.sys</Td></Tr>
   <Tr><Td>2003-01-15</Td>         <Td>19:43</Td>         <Td>5.0.2195.6655</Td>         <Td>30,768</Td>         <Td>Disk.sys</Td></Tr></Table>
				
참고 이 핫픽스에 포함되어 있는 파일은 SP3 이후의 버전 번호를 갖고 있지만 Windows 2000 SP2 기반 컴퓨터와 Windows SP3 기반 컴퓨터 모두에서 사용할 수 있습니다. 이 핫픽스 패키지는 Windows 2000 SP2 기반 컴퓨터와 Windows 2000 SP3 기반 컴퓨터 모두에 설치됩니다.

2부: "Power Protected" 쓰기 캐시 옵션 구성

Windows 2000 업데이트를 설치하고 컴퓨터를 다시 시작하여 업데이트된 드라이버를 로드한 후에는 쓰기 캐싱 기능을 사용 가능하게 설정하고 실수로 인한 전원 손실로부터 해당 쓰기 캐시를 보호하도록 각 디스크에 대해 Power Protected 쓰기 캐시 옵션을 설정해야 합니다. Power Protected 쓰기 캐시 옵션을 설정하지 않으면 이 업데이트가 디스크 성능 동작을 변경하지 못합니다.

선택한 디스크에서 Power Protected 쓰기 캐시 옵션을 구성하려면 Dskcache.exe 도구를 사용하십시오. Dskcache.exe는 별도로 구할 수 있습니다. Dskcache.exe 도구와 "Power Protected" 쓰기 캐시 옵션을 설정하는 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
811392 Dskcache.exe 도구를 사용하여 "Power Protected" 쓰기 캐시 옵션 구성
참고 Power Protected 쓰기 캐시 옵션은 현재 있는 디스크에 대해서만 설정할 수 있습니다. 기본적으로, Power Protected 쓰기 캐시 옵션은 사용 불가능하게 해제되어 있습니다. 따라서 이 설정을 적용한 후에 추가한 디스크에 대해서 이 옵션은 사용 불가능하게 해제되어 있습니다. 디스크를 추가한 경우 추가한 디스크에 대해 설정을 적용하려면 Power Protected 쓰기 캐시 옵션을 사용 가능하게 설정하십시오.

Windows XP 실행 컴퓨터

Windows 2000과 Windows XP의 설계가 다르기 때문에 이러한 Windows XP 동작에 대해 지원되는 업데이트를 출시할 계획은 현재 없습니다.

현재 상태

이 동작은 의도적으로 설계되었습니다.

추가 정보

많은 디스크 장치가 디스크에서 읽어 오는 데이터에 대해서는 미리 읽기 캐싱을 제공하고 디스크에 기록하는 데이터에 대해서는 write-behind 캐싱(또는 지연된 쓰기 또는 "지연식" 쓰기)을 제공하는 온보드 캐시(Onboard Cache)를 사용하여 향상된 성능을 제공합니다. 일부 경우에는 데이터를 나중에 유휴 상태일 때 기록하도록 디스크의 온보드 쓰기 캐시에 보관하지 않고 실제 디스크에 즉시 기록해야 합니다. 이렇게 하면 예를 들어 쓰기 캐시가 구현되는 모든 디스크나 컨트롤러의 전원이 갑자기 끊기는 경우에도 이 데이터가 손실되거나 손상되지 않습니다.

캐싱된 데이터가 강제로 실제 디스크에 즉시 기록되게 하는 데 일반적으로 사용되는 명령은 다음 두 가지가 있습니다.
  • flush buffers 명령은 SCSI 및 IDE/ATAPI 디스크 장치에 사용할 수 있으며 캐싱된 데이터를 모두 디스크에 즉시 기록하도록 지시합니다. SCSI 디스크의 경우 이 작업은 디스크에 SYNCHRONIZE CACHE 명령을 실행하여 구현됩니다. IDE/ATAPI 디스크의 경우에는 FLUSH CACHE 명령이 디스크로 보내집니다. 이 명령은 일반적으로 Windows 프로그램이 FlushFileBuffers API를 호출하면 실행됩니다. FlushFileBuffers API를 호출하고 SYNCHRONIZE CACHE 명령을 디스크로 보내는 작업의 예로 레지스트리에 쓰기 작업이 있습니다.
  • Write Through 명령은 SCSI 디스크 장치에만 사용할 수 있으며 ForceUnitAccess(FUA) 비트를 설정한 상태에서 디스크에 WRITE 명령을 실행하면 구현됩니다. 이러한 종류의 명령은 온보드 쓰기 캐시를 건너 뛰고 현재 데이터 패킷을 디스크에 즉시 쓰도록 해당 디스크에 지시합니다. 이러한 동작은 보통 Windows 프로그램이 FILE_FLAG_WRITE_THROUGH 플래그를 설정한 상태에서 CreateFile API를 호출하여 연 파일에 쓰도록 WriteFile API를 호출한 경우 발생합니다. 바이러스 검색 소프트웨어가 보통 FILE_FLAG_WRITE_THROUGH 플래그를 설정한 상태로 파일을 엽니다. FUA 비트에 대한 지원은 선택적이며 대개 RAID 배열과 반대인 개별 드라이브 같은 일부 SCSI 및 FC(Fiber Channel) 장치만이 이러한 기능을 구현합니다.
이러한 명령은 디스크로 기록되는 데이터의 안전을 유지하기 위해 일반적으로 디스크의 온보드 쓰기 캐시에서 제공하는 성능을 저하시킵니다. 이러한 데이터가 이러한 명령을 통해 즉시 디스크로 기록되지 않는 상태에서 디스크의 전원이 갑자기 끊긴 경우에는 해당 데이터가 손실되고 기록될 파일이 손상될 수 있습니다.

SP3 이전의 Windows 2000 버전에서는 이러한 명령이 예상될 때 디스크 장치에 올바르게 실행되지 않습니다. 예를 들어, 프로그램이 FlushFileBuffers를 호출하고 파일이 FILE_FLAG_WRITE_THROUGH를 설정한 상태로 열린 경우에 FUA 비트가 WRITE 명령에 대해 설정되어 있지 않으면 SYNCHRONIZE CACHE 명령이 디스크에 대해 실행되지 않습니다. 기술 자료 문서 281672에 설명되어 있는 핫픽스가 이 문제를 해결합니다. 의도한 대로 이 명령을 실행하면 그 결과 중요한 데이터가 손실되지 않도록 예상한 보호 기능을 제공합니다.

참고Microsoft SQL Server에서는 로컬 데이터베이스 데이터, 로그 파일 및 백업 파일에 FILE_FLAG_WRITE_THROUGH를 광범위하게 사용합니다. 로컬 데이터베이스 데이터에는 SCSI 드라이브 및 SAN 드라이브의 데이터가 포함될 수 있지만 NAS 드라이브의 데이터는 포함되지 않습니다. write-through cache를 보호하는 하드웨어에서 Power Protected Storage 기능을 사용하지 않는 경우 대형 데이터베이스의 검사점 프로세스 동안 SQL Server의 성능에 영향을 줄 수 있습니다.

장치 관리자에서 디스크 장치에 대해 쓰기 캐시 사용 옵션을 구성하면 다음 두 가지 동작이 나타납니다.
  • 쓰기 캐싱 기능을 설정하거나 해제하는 명령이 디스크 장치로 보내집니다.
  • 디스크 드라이버가 디스크에 쓰기 캐시 관리 명령(Flush, Write-Through)을 실행할지 여부를 결정하는 데 사용하는 레지스트리 값이 저장됩니다.
이 문서에 설명되어 있는 핫픽스는 또 다른 구성 옵션 즉, Power Protected 쓰기 캐시 옵션을 추가로 제공합니다. 쓰기 캐싱 옵션과 Power Protected 옵션이 모두 설정되어 있으면 디스크 드라이버 등을 통해 디스크의 쓰기 캐시가 설정되고 인식되지만 디스크 드라이버가 디스크에 쓰기 캐시 관리 명령(Flush, Write-Through)을 실행하지는 않습니다. 따라서 쓰기 캐시에서 디스크 미디어로 데이터를 플러시할 경우에 발생할 성능 손실을 피할 수는 있지만 디스크의 쓰기 캐시에 디스크로 아직 쓰여지지 않은 데이터가 있을 때 전원이 끊기면 디스크가 손실되거나 손상될 위험이 있습니다.

다음 표는 쓰기 캐싱 옵션과 Power Protected 옵션의 효과를 요약한 것입니다.
표 축소표 확대
쓰기 캐싱 Power Protected
효과
사용 안 함 해당 없음 디스크가 쓰기를 캐시하지 않습니다.
드라이버가 Flush/Write-Through 명령을 실행하지 않습니다.
하드웨어에서 쓰기 캐싱 기능을 사용 가능하게 설정하지 않은 드라이브에만 가능한 동작입니다.
Enabled 사용 안 함 디스크가 쓰기를 캐시합니다.
드라이버가 Flush/Write-Through 명령을 실행합니다.
SP3, 그리고 이 업데이트를 적용한 경우 하드웨어에서 쓰기 캐싱 기능을 사용 가능하게 설정한 드라이브의 기본 동작입니다.
Enabled Enabled 디스크가 쓰기를 캐시합니다.
드라이버가 Flush/Write-Through 명령을 실행하지 않습니다.
SP3 이전 버그로 인한 것으로 하드웨어에서 쓰기 캐싱 기능을 사용 가능하게 설정한 드라이브에서 나타나는 동작입니다.

속성

기술 자료: 332023 - 마지막 검토: 2008년 9월 11일 목요일 - 수정: 12.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 서비스 팩 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 서비스 팩 3
  • Microsoft Windows 2000 Professional SP2
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 서비스 팩 3
키워드:?
kbautohotfix kbhotfixserver kbfix kbbug kbqfe KB332023

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com