Desempenho lento do disco quando o cache de gravação está ativado.

Traduções deste artigo Traduções deste artigo
ID do artigo: 332023 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

É possível que o desempenho de algumas operações de gravação do disco rígido sejam mais lentas se o cache de gravação dos implementos do disco rígido e o computador utilizam qualquer um dos sistemas a seguir:
  • O Windows 2000 Service Pack 3 (SP3)
  • O Windows 2000 Service Pack 2 (SP2), no qual você instalou o hotfix que é descrito no artigo da Base de Dados de Conhecimento da Microsoft a seguir:
    281672 Possível perda de dados após ativar o recurso "Cache de gravação ativado"
  • O Windows XP
É possível que o desempenho de gravação do disco rígido seja mais lento que o das versões do Windows 2000, anteriores ao SP3. Além disso, em um computador de cluster, as operações de gravação de disco rígido para os discos compartilhados podem causar grandes diferenças no desempenho da gravação entre cada nó.

Causa

As versões do Windows 2000 anteriores ao SP3 contém um bug que impede que certos comandos do disco sejam emitidos. Eles são emitidos apenas para os discos que têm o cache de gravação ativado. Eles forçam a gravação imediata dos dados críticos para os mecanismos de disco, em vez de armazená-los provisoriamente no cache de gravação temporária do disco.

Para obter mais informações sobre esse bug, clique no número a seguir para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
281672 Possível perda de dados após a ativação do recurso "Cache de gravação ativado"

O hotfix que é descrito no artigo 281672 na Base de Dados de Conhecimento corrige o bug e faz com que esses comandos sejam emitidos para o disco, como esperado quando o cache de gravação está ativado. Essa correção está incluída no Windows 2000 SP3. Há uma correção similar no Windows XP.

Esses comandos sacrificam um pouco do desempenho para garantir a segurança dos dados críticos. Eles garantem que os dados críticos sejam gravados no disco imediatamente. Os comandos são emitidos apenas se o cache de gravação estiver ativado para um mecanismo de disco específico e que ele possa ser detectado por mecanismos de utilização padrão. Quando esse comportamento de segurança é aplicado aos discos que implementam o cache de gravação, haverá perda de desempenho durante certas operações do disco. Veja a seção "Veja mais informações" deste artigo para obter mais detalhes. Além disso, é possível que em um computador de cluster, as informações do disco rígido não sejam enviadas a um nó que controla um recurso do cluster quando o recurso falhou. Por isso, ocorrem diferenças no desempenho das operações de gravação do disco rígido.

Resolução

Para os computadores que executam o Windows 2000

Aviso: Se você implementar essa correção (instalando os drivers de atualização e ligando a opção do cache de gravação Power Protected ) as proteções, que são implementadas nos drivers de disco do Windows 2000 para garantir que os dados críticos sejam gravados imediatamente para o disco em vez de serem gravados mais tarde a partir do cache interno do disco, são removidas. Não implemente essa correção a menos que o computador ou quaisquer discos rígidos conectados estejam protegidos contra quedas de energia acidentais ou inadvertidas, por meio do hardware, que pode incluir recursos como suprimentos de energia redundantes com battery backed. Entre em contato com os fornecedores do computador e dos mecanismos de armazenamento para determinar o grau de proteção oferecido pelo hardware. Não implemente essa correção sem antes ter entendido e aceitado o nível de risco envolvido, e se certificado de que o risco está atenuado por uma proteção de energia adequada do hardware. Além disso, em um computador de cluster, as diferenças nas operações de gravação do disco rígido para os discos compartilhados entre os nós, podem ser solucionadas configurando-se a opção do cache de gravação Power Protected, em cada nó.

Para obter mais informações, clique no número a seguir para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
281672 Possível perda de dados após ativar o recurso "Cache de gravação ativado"

Parte 1: Instale a atualização do Windows 2000

Um recurso que recebe suporte e que modifica o comportamento padrão do produto está agora disponível pela Microsoft, mas destina-se apenas a modificar o comportamento descrito neste artigo. Aplique-o somente aos sistemas que necessitam desse recurso. É possível que ele receba testes adicionais. Portanto, se o problema não afetá-lo de forma direta, a Microsoft recomenda que você espere pelo próximo Windows 2000 Service Pack que contenha a correção.

Para obter o recurso imediatamente, entre em contato com o Atendimento Microsoft. Visite o seguinte site da Microsoft a seguir para obter uma lista completa dos telefones do Atendimento Microsoft e informações sobre custos do suporte:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS(site em inglês)
A versão em inglês dessa correção tem os atributos do arquivo (ou posterior) listados na tabela a seguir. As datas e as horas para esses arquivos estão listadas em UTC (coordinated universal time). Ao consultar as informações sobre o arquivo, ele é convertido para a hora local. Para verificar a diferença entre o UTC e a hora local, utilize a guia Fuso horário na ferramenta de Data e Hora no Painel de controle.
   Data         Hora   Versão        Tamanho     Nome do arquivo
   -------------------------------------------------------
   15-Jan-2003  19:42  5.0.2195.6655  34,832  Classpnp.sys
   15-Jan-2003  19:43  5.0.2195.6655  30,768  Disk.sys
				
Observação Os arquivos incluídos nesse hotfix têm os números de versão posteriores ao SP3, mas podem ser utilizados em computadores baseados no Windows 2000 SP2 e no Windows SP3. O pacote de hotfix irá instalar tanto em computadores baseados no Windows 2000 SP2 como em computadores baseados no Windows 2000 SP3.

Parte 2: Configure a opção do cache de gravação "Power Protected"

Após instalar a atualização do Windows 2000 e reiniciar o computador, carregando os drivers de atualização, você deve também ativar a opção de cache de gravação Power Protected para cada disco que tenha o cache de gravação ativado e protegido contra perda acidental de energia. Se a opção do cache de gravação Power Protected estiver ligada, essa atualização não implementa nenhuma alteração no comportamento ou no desempenho do disco.

Para configurar a opção de cache de gravação Power Protected nos discos selecionados, utilize a ferramenta Dskcache.exe. Ela está disponível separadamente. Para obter informações adicionais sobre a ferramenta Dskcache.exe e sobre como ativar a opção do cache de gravação "power protected", clique no número a seguir para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
811392 Obtenha a ferramenta Dskcache.exe para configurar a opção do cache de gravação "Power Protected"
Observação É possível ativar a opção do cache de gravação Power Protected apenas para os discos que estão presentes. Por padrão, a opção do cache de gravação Power Protected fica desativada. Como resultado disso, a opção fica desativada para quaisquer discos que sejam adicionados depois que você aplicou a configuração. Se forem adicionados novos discos, ative a opção do cache de gravação Power Protected para esses discos, para que a configuração seja implementada.

Para os computadores que executam o Windows XP

Por causa das diferenças de design entre o Windows 2000 e o Windows XP, não há atualmente nenhum plano para lançar uma atualização que receba suporte para esse comportamento para o Windows XP.

Situação

Esse comportamento é devido à natureza do aplicativo.

Mais Informações

Muitos dispositivos de disco oferecem desempenho aprimorado por meio da utilização de um cache onboard que oferece um cache de leitura antecipada para os dados que estão sendo lidos do disco e um cache de gravação temporária (ou gravações demoradas ou gravações "lentas"), para dados que estão sendo gravados no disco. Em alguns casos, é importante que os dados sejam gravados imediatamente no disco físico e não retidos no cache de gravação onboard do disco para serem gravados mais tarde em um momento de pouca atividade. Isso evita a perda ou a corrupção desses dados se o disco ou o controlador (onde quer que o cache seja implementado) sofre uma perda repentina de energia, por exemplo.

Existem dois comandos que são tipicamente utilizados para forçar os dados do cache a serem gravados imediatamente no disco rígido:
  • Um comando flush buffers, que está disponível para os dispositivos de disco SCSI e IDE/ATAPI, instrui o disco a gravar imediatamente todos os dados do cache. Para os discos SCSI, isso é implementado pelo envio do comando SINCRONIZAR O CACHE ao disco. Para os discos IDE/ATAPI, o comando ESVAZIAR O CACHE é enviado ao disco. O envio desse comando resulta do chamado da API FlushFileBuffers, por um programa do Windows. Gravar no registro é um exemplo de operação que resulta no chamado do API FlushFileBuffers e no envio do comando SINCRONIZAR O CACHE ao disco.
  • Um comando Write Through, que está disponível apenas para dispositivos de disco SCSI, é implementado pelo envio de um comando GRAVAR para o disco com o bit FUA (ForceUnitAccess) definido. Esse tipo de comando instrui o disco a gravar imediatamente o pacote atual de dados no disco, ignorando o cache de gravação onboard. Isso ocorre geralmente como resultado de um programa do Windows que chama o API Gravar arquivo para gravar em um arquivo que ele abriu ao chamar o API Criar arquivo com o sinalizador FILE_FLAG_WRITE_THROUGH definido. Os softwares de escaneamento de vírus geralmente abrem os arquivos com o sinalizador FILE_FLAG_WRITE_THROUGH definido. O suporte para o bit FUA é opcional e apenas alguns dispositivos de SCSI e de FC (Fiber Channel), geralmente unidades individuais (em oposição às matrizes RAID), implementam essa funcionalidade.
Esses comandos sacrificam um pouco do desempenho (que seria normalmente oferecido pelo cache de gravação onboard do disco) para manter a segurança dos dados que estão sendo gravados no disco. Se tais dados não são gravados no disco imediatamente por esses comandos, e houver falta de energia repentina, os dados se perdem e o arquivo que está sendo gravado pode ser corrompido.

Nas versões anteriores ao SP3 do Windows 2000, esses comandos não são enviados corretamente aos dispositivos de disco. O comando SINCRONIZAR O CACHE , por exemplo, não é enviado para um disco quando um programa chama o FlushFileBuffers e o bit FUA não é definido para os comandos GRAVAR quando o arquivo é aberto com o FILE_FLAG_WRITE_THROUGH definido. O hotfix que é descrito no artigo 281672 da Base de Dados de Conhecimento corrige esse problema, permitindo que os comandos sejam enviados corretamente e que forneçam a proteção esperada contra a perda dos dados críticos.

Observação O Microsoft SQL Server utiliza o FILE_FLAG_WRITE_THROUGH extensivamente em dados de base de dados local, em arquivos de log e em arquivos de backup. Os dados da base de dados local podem incluir dados sobre unidades de SCSI e de SAN, mas não dados sobre unidades de NAS. Se o recurso Armazenamento com Power Protected não estiver ativado em um hardware que proteja o cache com write-through, o desempenho do SQL Server pode ser afetado durante o processo de ponto de verificação de uma base de dados de grande porte.

Quando a opção Cache de gravação ativado está configurada para um dispositivo de disco no Gerente de dispositivo, ocorrem dois fatos:
  • Um comando para ligar ou desligar o cache de gravação é enviado ao dispositivo de disco.
  • Um valor de registro é salvo e utilizado pelo driver de disco para determinar o envio dos comandos de gerenciamento do cache de gravação (flush, write-through) para o disco.
O hotfix que é descrito neste artigo fornece uma opção adicional de configuração, que é a opção do cache de gravação Power Protected. Quando as opções Cache de gravação e Power Protected estão ligadas, o cache de gravação do disco é ativado e reconhecido pelo driver do disco, mas não envia a ele os comandos de gerenciamento do cache de gravação (flush, write-through). Isso evita o prejuízo do desempenho que ocorreria ao liberarem-se os dados do cache de gravação para a mídia de disco, mas envolve um risco de perda ou corrupção dos dados do disco quando há falta de energia, enquanto existirem dados no cache de gravação do disco que ainda não tenham sido gravados no disco.

A tabela a seguir resume os efeitos das opções Cache de gravação e Power Protected:
Recolher esta tabelaExpandir esta tabela
Cache de gravação Power Protected
Efeito
Desativado N/A O disco não coloca em cache as gravações.
O driver não envia comandos Flush/Write-Through.
(Único comportamento possível para as unidades que não têm cache de gravação ativado no hardware.)
Ativado Desativado O disco coloca em cache as gravações.
O driver não envia comandos Flush/Write-Through.
(Comportamento padrão como o do SP3, e com essa atualização aplicada, para unidades que têm o cache de gravação ativado no hardware.)
Ativado Ativado Disk caches writes.
O driver não envia comandos Flush/Write-Through.
(Único comportamento possível para as unidades que não têm cache de gravação ativado no hardware.)

Propriedades

ID do artigo: 332023 - Última revisão: quinta-feira, 13 de abril de 2006 - Revisão: 12.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 3
Palavras-chave: 
kbbug kbfix kbqfe kbhotfixserver KB332023

Submeter comentários

 

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