Sdílet prostřednictvím


Důležité informace o výkonu transakčního systému souborů NTFS

Transakční SYSTÉM SOUBORŮ NTFS (TxF) byl pečlivě navržen pro výkon a obvykle bude fungovat lépe než alternativy transakcí pro obecné účely v podobných scénářích. Transakce systému souborů však mají větší režijní náklady než neprovedené operace a některé snížení výkonu vstupně-výstupních operací v porovnání s neaktučními vstupně-výstupními operacemi se očekává. Aplikace kritické pro výkon by měly provádět cyklus kvalifikace osvojení technologií a vyhodnocovat dopad operací transakčního systému souborů na výkon.

Přehled operací TxF

TxF používá vrácení zpět protokolování k zaznamenání změn potřebných k vrácení systému souborů zpět do konzistentního stavu, označovaného také jako vrácení zpět, pokud dojde k přerušení transakce. Toto protokolování zpět generuje další vstupně-výstupní operace a je zdrojem režijních nákladů na výkon TxF v porovnání s neakčními operacemi systému souborů.

Souhrnný přehled toho, jak TxF funguje, je následující:

  • Při pokroku transakce TxF zapisuje zpět záznamy do souboru protokolu pro každou úpravu, které provádí v systému souborů. Pokud dojde k přerušení, tyto záznamy zpět se parsují, aby se systém souborů vrátil zpět do stavu, který byl před zahájením transakce.
  • Změna metadat záznam vrácení zpět popisuje změnu pouze metadat systému souborů. Mezi příklady patří přesuny, přejmenování, připojení a změny atributů. U záznamů o změně metadat zpět jsou všechny informace potřebné k vrácení změny zpět v záznamu a uloženy v souboru protokolu.
  • Záznam přepsání vrácení zpět popisuje přepsání části souboru. Když dojde k přepsání souboru, původní obsah souboru se uloží do speciálního souboru zpět ve skrytém adresáři a záznam zpět přepíše na tento soubor. Když se aktualizace souborů nakonec vyprázdní z mezipaměti na disk, musí se také vyprázdnit obsah souboru zpět, takže transactovaný soubor by mohl vygenerovat až dvě nadbytečné náhodné vstupně-výstupní operace: jeden pro čtení starých dat a jeden pro zápis do souboru zpět. Tyto další vstupně-výstupní operace představují náklady na výkon TxF.
  • Když dojde k potvrzení, TxF nejprve vyprázdní všechny informace o vrácení zpět, pak vyprázdní skutečné změny souboru a pak zapíše a vyprázdní záznam potvrzení. Pokud nejsou k dispozici žádné soubory pro vrácení zpět, jediným dodatečným režijním zatíženíM TxF vzhledem k neproveděným vstupně-výstupním operacím je samotné vyprázdnění protokolu. Vyprázdnění protokolu ale vede k efektivním sekvenčním zápisům, takže náklady na výkon jsou minimální.
  • TxF je optimalizovaný pro potvrzení. Očekává se, že většina transakcí bude úspěšná a nemusí se vrátit zpět, proto se očekává, že všechny záznamy vrácení zpět pro transakci budou nepoužívané. Z hlediska výkonu jsou operace potvrzení TxF rychlé a vrácení zpět jsou náročné na prostředky.
  • Vrácení zpět je náročnější na prostředky než potvrzení. Během vrácení zpět je nutné zrušit všechny změny provedené v transakci. Obecně platí, že doba vrácení zpět může být přibližně stejná, než se původně provedly změny. Pokud například trvalo provedení všech změn 1 sekundu, mohlo by trvat přibližně 1 sekundu, než je vrátíte zpět. U velmi dlouhých transakcí může vrácení zpět vytvořit další dopady na výkon. Například čas spuštění systému může být zpožděn, pokud systém musí automaticky vrátit transakci zpět v případě, že systém přestane reagovat a musí provést nenaplánované restartování.

Souhrnné závěry o výkonu, které lze získat z předchozího seznamu, jsou následující:

  • Náklady na výkon TxF pro transakce zahrnující přepsání souborů mohou být významné.
  • Náklady na výkon TxF pro transakce zahrnující pouze operace metadat mohou být relativně nízké, za předpokladu, že se používají velké transakce. Velká transakce je, když existuje mnoho záznamů vrácení zpět pro každý záznam potvrzení.

Doporučení pro zajištění nejlepšího výkonu

Amortizace režie TxF nad většími transakcemi. Pokud máte například N sady změn, které se mají provést, pokud má každá změna M kroky a máte možnost to udělat buď jako N transakce M kroky, nebo provést všechny jako jednu transakci s M*N kroky, druhá možnost by byla efektivnější.

Zvažte možný dopad na spouštění velmi velkých transakcí. Jak už bylo uvedeno dříve, vrácení zpět může být pomalé a zpozdí čas spuštění, pokud systém potřebuje provést automatické vrácení zpět jako čas spuštění. Čím větší transakce, tím delší je zpoždění.

Transakce uchovávejte převážně operace metadat. To je to, co TxF je optimalizované a obecně platí, že výkon je přibližně stejný jako vstupně-transakční vstupně-výstupní operace souborů pro velké transakce metadat. Příklady efektivních funkcí TxF metadat jsou MoveFileTransacted, SetFileAttributesTransacted, CopyFileTransacted, DeleteFileTransacted , CreateHardLinkTransacteda připojené zápisy (volání funkce WriteFile, když je soubor ukazatel na konci souboru, EOF). Příkladem operací náročných na prostředky, které nejsou metadaty, jsou volání WriteFile funkce, pokud ukazatel souboru není v EOF.

Shrnutí očekávání výkonu TxF

U místních aktualizací bude přepsání oddílu souboru mnohem pomalejší než vstupně-výstupní operace transaktovaného souboru, zatímco výkon TxF pro operace metadat systému souborů (například vytvoření, přesunutí a připojení) je srovnatelný s vstupně-výstupními operacemi neaktutovaného souboru pro velké transakce.