Powolne działanie dysku, gdy jest włączone buforowanie zapisu

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 332023 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Działanie niektórych operacji zapisu na dysku twardym może być wolniejsze niż oczekiwane, jeśli na dysku twardym jest włączone buforowanie zapisu, a na komputerze jest używany jeden z następujących systemów operacyjnych:
  • System Windows 2000 z dodatkiem Service Pack 3 (SP3)
  • System Windows 2000 z dodatkiem Service Pack 2 (SP2), na którym została zainstalowana poprawka opisana w następującym artykule bazy wiedzy Microsoft Knowledge Base:
    281672 Możliwość utraty danych po włączeniu funkcji „Bufor zapisu włączony” (j. ang.)
  • System Windows XP
Wydłużenie czasu zapisywania na dysku twardym może być bardziej odczuwalne zwłaszcza w porównaniu z wersjami systemu Windows 2000 starszymi niż z dodatkiem SP3. Ponadto na komputerze w konfiguracji klastrowej operacje zapisu na dysku twardym mogą powodować duże różnice w wydajności zapisu między poszczególnymi węzłami.

Przyczyna

W wersjach systemu Windows 2000 starszych niż z dodatkiem SP3 jest błąd uniemożliwiający wydawanie pewnych poleceń dyskowych. Polecenia te są wydawane tylko dla tych dysków, dla których jest włączone buforowanie zapisu. Sprawiają one, że zamiast przechowywać krytyczne dane tymczasowo w buforze dysku przeznaczonym do zapisu z opóźnieniem, zapisuje się je natychmiast na urządzeniach dyskowych.

Aby uzyskać dodatkowe informacje dotyczące tego błędu, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
281672 Możliwość utraty danych po włączeniu funkcji „Bufor zapisu włączony” (j. ang.)

Poprawka opisana we wspomnianym artykule bazy wiedzy Microsoft Knowledge Base usuwa ten błąd, dzięki czemu po włączeniu buforowania zapisu polecenia są wydawane dla dysków zgodnie z oczekiwaniami. Poprawka ta jest zawarta w dodatku SP3 dla systemu Windows 2000. Podobna poprawka jest także zawarta w systemie Windows XP.

Zgodnie z zamierzeniem twórców polecenia te mają lepiej chronić krytyczne dane, ale kosztem wydajności. Gwarantują natychmiastowe zapisywanie na dysku krytycznych danych. Te polecenia są wydawane tylko wtedy, gdy dla konkretnego dysku jest włączone buforowanie danych i gdy można to wykryć przy użyciu standardowych mechanizmów. Jeśli zabezpieczenie to jest egzekwowane na dyskach, na których jest stosowane buforowanie zapisu, użytkownik odczuwa wydłużenie czasu wykonywania niektórych operacji dyskowych. Bardziej szczegółowe informacje można znaleźć w sekcji „Więcej informacji” w tym artykule. Ponadto na komputerze w konfiguracji klastrowej informacje z dysku twardego mogą nie zostać dostarczone do węzła, który przejmuje zasób klastra w trakcie pracy awaryjnej. W związku z tym między poszczególnymi węzłami występują różnice w wydajności operacji zapisu na dysku twardym.

Rozwiązanie

Na komputerach z systemem Windows 2000

Ostrzeżenie: Zastosowanie tej poprawki — przez zainstalowanie zaktualizowanych sterowników i włączenie opcji buforowania zapisu Power Protected (Ochrona zasilania) — spowoduje wyłączenie mechanizmów ochrony wbudowanych w dyski systemu Windows 2000, których zadaniem jest zapewnianie, aby krytyczne dane były zapisywane na dysku natychmiast, a nie później, podczas przenoszenia ich z wbudowanej pamięci podręcznej dysku. Poprawki tej nie należy implementować, jeśli komputery i podłączone do nich dyski twarde nie są sprzętowo zabezpieczone przed przypadkowym lub niespodziewanym odcięciem zasilania, na przykład przy użyciu takich elementów, jak nadmiarowe zasilacze z bateriami zapasowymi. W celu ustalenia poziomu zabezpieczeń wymaganych przez sprzęt należy skontaktować się z producentami komputera i urządzeń dyskowych. Poprawki tej nie należy implementować, dopóki nie stwierdzi się, jakie stwarza to ryzyko, nie zaakceptuje się go i nie zastosuje odpowiednich rozwiązań sprzętowych chroniących przed awarią zasilania, które niwelowałyby poziom tego ryzyka. Ponadto na komputerze w konfiguracji klastrowej różnice wydajności operacji zapisu na współużytkowanych dyskach między poszczególnymi węzłami można rozwiązać, ustawiając opcję buforowania zapisu Power Protected.

Aby uzyskać dodatkowe informacje, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
281672 Możliwość utraty danych po włączeniu funkcji „Bufor zapisu włączony” (j. ang.)

Część 1. Instalowanie aktualizacji systemu Windows 2000

Firma Microsoft udostępnia obsługiwaną poprawkę, która modyfikuje to domyślne zachowanie. Jest ona jednak przeznaczona tylko do modyfikowania zachowania opisanego w tym artykule. Powinno się ją stosować tylko w przypadku systemów, które rzeczywiście tego wymagają.

Jeśli ta funkcja jest dostępna do pobrania, na początku tego artykułu z bazy wiedzy Knowledge Base jest umieszczona sekcja „Poprawka dostępna do pobrania”. Jeśli nie ma tej sekcji, w celu uzyskania poprawki należy się skontaktować z działem pomocy technicznej firmy Microsoft.

Uwaga W przypadku wystąpienia dodatkowych błędów lub konieczności rozwiązania problemu może być wymagane utworzenie osobnego zlecenia usługi. Typowe opłaty za korzystanie z pomocy technicznej będą pobierane tylko w przypadku dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu tej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta i pomocy technicznej firmy Microsoft lub utworzyć osobne zlecenie usługi, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://support.microsoft.com/contactus/?ws=support
Uwaga Sekcja „Poprawka dostępna do pobrania” zawiera listę języków, dla których ta funkcja jest dostępna. Jeśli odpowiedni język nie jest widoczny, oznacza to, że ta poprawka nie jest dostępna dla danego języka. Wersja anglojęzyczna tej poprawki ma atrybuty plików pokazane w poniższej tabeli (lub nowsze). Daty i godziny ostatniej modyfikacji plików podano zgodnie z czasem UTC (Coordinated Universal Time). Są one zamieniane na czas lokalny po wyświetleniu informacji o pliku. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, skorzystaj z karty Strefa czasowa narzędzia Data i godzina w Panelu sterowania.
   Data        Godzina    Wersja       Rozmiar    Nazwa pliku
   -------------------------------------------------------
   2003-01-15  19:42    5.0.2195.6655  34 832   Classpnp.sys
   2003-01-15  19:43    5.0.2195.6655  30 768   Disk.sys
				
Uwaga Numery wersji plików dołączonych do tej poprawki są późniejsze niż dodatek SP3, ale można je stosować zarówno na komputerach z systemem Windows 2000 z dodatkiem SP2, jak i na komputerach z systemem Windows z dodatkiem SP3. Pakiet poprawki można zainstalować zarówno na komputerach z systemem Windows 2000 z dodatkiem SP2, jak i z dodatkiem SP3.

Część 2. Konfigurowanie opcji buforowania zapisu „Power Protected”

Po zainstalowaniu aktualizacji systemu Windows 2000 i ponownym uruchomieniu komputera w celu załadowania zaktualizowanych sterowników należy także włączyć opcję buforowania zapisu Power Protected dla każdego dysku, na którym jest włączone buforowanie zapisu i którego bufor zapisu jest chroniony przed przypadkowym odcięciem zasilania. Jeśli opcja buforowania zapisu Power Protected nie jest włączona, aktualizacja ta nie powoduje żadnych zmian w wydajności ani w zachowaniu dysku.

Aby skonfigurować opcję buforowania zapisu Power Protected na wybranych dyskach, należy użyć narzędzia Dskcache.exe. Jest ono dostępne osobno. Aby uzyskać dodatkowe informacje o narzędziu Dskcache.exe i sposobie włączenia opcji buforowania zapisu „power protected”, należy kliknąć następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
811392 Uzyskiwanie narzędzia Dskcache.exe w celu skonfigurowania opcji buforowania zapisu „Power Protected” (Ochrona zasilania)
Uwaga Opcja buforowania zapisu Power Protected może zostać włączona jedynie na dyskach, które są w danej chwili zainstalowane. Domyślnie opcja buforowania zapisu Power Protected jest wyłączona. W związku z tym na dyskach dodawanych po zastosowaniu tego ustawienia opcja ta jest wyłączona. Aby ustawienie to dotyczyło później dodanych dysków, należy na nich włączyć opcję buforowania zapisu Power Protected.

Na komputerach z systemem Windows XP

Ze względu na różnice konstrukcyjne między systemami Windows 2000 i Windows XP nie ma obecnie planów wydania obsługiwanej aktualizacji dla tego działania do systemu Windows XP.

Stan

Zachowanie takie jest zgodne z projektem systemu.

Więcej informacji

Wiele urządzeń dyskowych może działać wydajniej dzięki zastosowaniu wewnętrznego buforu umożliwiającego buforowanie odczytu danych (odczytywanych z dysku) z wyprzedzeniem oraz buforowanie zapisu danych (zapisywanych na dysku) z opóźnieniem. W niektórych przypadkach jest jednak ważne, aby dane zostały natychmiast zapisane na dysku, nie zaś przetrzymywane w wewnętrznym buforze zapisu dysku i zapisywane później, gdy dysk nie będzie zajęty innymi czynnościami. Zapobiega to utracie lub zniszczeniu danych w sytuacji, gdyby na przykład nagle zostało odcięte zasilanie dysku lub kontrolera (w zależności od tego, gdzie jest wdrożony bufor zapisu).

Aby spowodować natychmiastowe zapisanie buforowanych danych na dysku fizycznym, stosuje się zazwyczaj dwa polecenia:
  • Polecenie opróżnienia buforów, które jest dostępne dla urządzeń dyskowych SCSI i IDE/ATAPI i oznacza, że wszystkie buforowane dane mają zostać natychmiast zapisane na dysku. W przypadku dysków SCSI wymaga to wydania dla dysku polecenia SYNCHRONIZE CACHE. W przypadku dysków IDE/ATAPI do dysku jest wysyłane polecenie FLUSH CACHE. Polecenie to jest zazwyczaj wydawane w rezultacie wywołania przez program systemu Windows interfejsu API FlushFileBuffers. Operacją, która powoduje wywołanie interfejsu API FlushFileBuffers i wysłanie polecenia SYNCHRONIZE CACHE do dysku, jest na przykład zapisanie danych w rejestrze.
  • Polecenie zapisania bezpośrednio, które jest dostępne wyłącznie dla urządzeń dyskowych SCSI, wymaga wydania dla dysku polecenia WRITE z ustawionym bitem ForceUnitAccess (FUA). Tego rodzaju polecenie oznacza, że bieżący pakiet danych ma zostać natychmiast zapisany na dysku z pominięciem wewnętrznego buforu zapisu. Zazwyczaj ma to miejsce w rezultacie wywołania przez program systemu Windows interfejsu API WriteFile w celu zapisania danych do pliku, który został otwarty przez wywołanie interfejsu API CreateFile z ustawioną flagą FILE_FLAG_WRITE_THROUGH. Pliki z ustawioną flagą FILE_FLAG_WRITE_THROUGH otwierają zazwyczaj programy szukające wirusów. Obsługa bitu FUA jest opcjonalna i w funkcję tę są wyposażone tylko niektóre urządzenia SCSI i FC (Fibre Channel) — zazwyczaj dyski indywidualne (w przeciwieństwie do macierzy RAID).
Zgodnie z zamierzeniem twórców polecenia te gwarantują bezpieczeństwo danych zapisywanych na dysku, ale kosztem wydajności (która normalnie byłaby większa, gdyby korzystać z wewnętrznego buforu zapisu dysku). Gdyby takie dane nie zostały natychmiast zapisane na dysku za pomocą tych poleceń, a dysk utraciłby nagle zasilanie, dane zostałyby utracone, a zapisywany plik mógłby ulec uszkodzeniu.

W wersjach systemu Windows 2000 starszych niż z dodatkiem SP3 wydawanie tych poleceń urządzeniom dyskowym nie działa zgodnie z oczekiwaniami. Na przykład polecenie SYNCHRONIZE CACHE nie jest wydawane dla dysku, gdy program wywoła interfejs FlushFileBuffers, a bit FUA nie był ustawiony podczas wydawania polecenia WRITE, jeśli plik został otwarty z ustawioną flagą FILE_FLAG_WRITE_THROUGH. Poprawka opisana w artykule 281672 bazy wiedzy Microsoft Knowledge Base usuwa ten problem, aby polecenia działały w zamierzony sposób, zapewniając jednocześnie oczekiwaną ochronę przed utratą krytycznych danych.

UwagaProgram Microsoft SQL Server w dużym stopniu używa flagi FILE_FLAG_WRITE_THROUGH dla lokalnych baz danych, plików dzienników i plików kopii zapasowych. Dane lokalnych baz danych mogą obejmować dane na dyskach SCSI oraz dyskach SAN, nie mogą jednak obejmować danych na dyskach NAS. Jeśli w przypadku sprzętu chroniącego pamięć tymczasową zapisu nie jest włączona funkcja Power Protected Storage, wydajność programu SQL Server może ulec zmniejszeniu podczas wykonywania procesu punktu kontrolnego dla dużej bazy danych.

Gdy w Menedżerze urządzeń zostaje skonfigurowana opcja Bufor zapisu włączony dla urządzenia dyskowego, dzieją się dwie rzeczy:
  • Do urządzenia dyskowego jest wysyłane polecenie włączenia lub wyłączenia buforowania zapisu.
  • Zostaje zapisana wartość rejestru, na podstawie której sterownik dysku decyduje, czy wydawać dla dysku polecenia sterujące buforowaniem zapisu (Flush, Write-Through).
Poprawka opisana w tym artykule udostępnia dodatkową opcję konfiguracji, czyli opcję buforowania zapisu Power Protected. Jeśli jest włączona zarówno opcja Buforowanie zapisu, jak i opcja Power Protected, bufor zapisu dysku zostaje włączony przez sterownik dysku i jest przez niego rozpoznawany, ale sterownik nie wydaje dla dysku poleceń sterujących buforowaniem zapisu (Flush, Write-Through). Pozwala to uniknąć pogorszenia wydajności wynikającego z opróżnienia buforu zapisu i zapisania danych na nośniku dysku, ale jednocześnie zwiększa ryzyko utraty lub zniszczenia danych, gdyby zasilanie zostało odcięte w chwili, gdy w buforze zapisu znajdowały się dane jeszcze niezapisane na dysku.

Poniższa tabela zawiera podsumowanie efektów włączenia i wyłączenia opcji Buforowanie zapisu oraz Power Protected w poszczególnych kombinacjach:
Zwiń tę tabelęRozwiń tę tabelę
Buforowanie zapisu Power Protected
Efekt
Wyłączona Brak Dysk nie korzysta z buforowania zapisu.
Sterownik nie używa poleceń opróżniania i zapisu bez wstrzymywania (Flush/Write-Through).
(jedyne zachowanie możliwe w przypadku dysków, w których buforowanie zapisu nie jest włączone sprzętowo.)
Włączona Wyłączona Dysk korzysta z buforowania zapisu.
Sterownik wydaje polecenia Flush/Write-Through
(zachowanie domyślne, jeśli jest zainstalowany dodatek SP3 i jest zastosowana niniejsza aktualizacja, w przypadku dysków, w których buforowanie zapisu jest włączone sprzętowo).
Włączona Włączona Dysk korzysta z buforowania zapisu.
Sterownik nie używa poleceń opróżniania i zapisu bez wstrzymywania (Flush/Write-Through).
(zachowanie wynikające z usterki występującej przed zainstalowaniem dodatku SP3 w przypadku dysków, w których buforowanie zapisu jest włączone sprzętowo.)

Właściwości

Numer ID artykułu: 332023 - Ostatnia weryfikacja: 31 grudnia 2008 - Weryfikacja: 12.2
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Professional SP2
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Service Pack 3
Słowa kluczowe: 
kbautohotfix kbhotfixserver kbfix kbbug kbqfe KB332023

Przekaż opinię

 

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