U jednoho ze zákazníků si uživatelé neustále stěžují, že nové soubory ve sdílené síťové složce v systému Windows Server 2008 R2 se neobjeví okamžitě, ale s velkým zpožděním, a to ani při aktualizaci obsahu složky pomocí F5. Bez ohledu na to, zda uživatel otevře síťovou složku prostřednictvím cest UNC nebo pokud je připojen jako síťová jednotka, nové soubory a složky se neobjeví okamžitě po kopírování nebo vytvoření, ale po jedné nebo dvou minutách. Pokud navíc ručně zadáte celý název souboru cestou UNC (\\ srv1 \ share \ file1.txt
), otevře se, ačkoli to ve složce není vidět.
V některých okamžicích tedy nemusí odpovídat seznam souborů ve stejné síťové složce při prohlížení na různých počítačích. Systém Windows 7 používá systém Windows 7 jako stolní operační systém.
Skutečnost je taková, že ve verzi SMB v2.x zavedené v systému Windows 2008 / Vista (viz tabulka s verzemi protokolu SMB) se sníží přenos a počet požadavků SMB mezi klientem SMB a serverem a zrychlí se přístup ke sdíleným složkám a souborům prostřednictvím síť začala používat mechanismus ukládání do mezipaměti (což dává hmatatelný efekt při přístupu k síťové složce prostřednictvím pomalého kanálu nebo kanálu s velkými zpožděními). Proto součást Microsoft Redirector v počítačích uživatelů používá místní mezipaměť s metadaty síťového adresáře. Ve výchozím nastavení je tato mezipaměť vyprázdněna každých 10 sekund..
V případě zpoždění ve vzhledu nových souborů v síťových složkách můžete zakázat ukládání metadat do mezipaměti pro protokol SMB v2 na straně klienta.
Tip. Počítače se systémy Windows 8 a Windows 10 používají klienta SMB v2 pro přístup k síťovým složkám v systému Windows Server 2008 R2, přestože podporují novější protokol SMB v3. Chcete-li zjistit verzi protokolu SMB, pomocí které klient komunikuje se serverem, spusťte následující příkaz Powershell:Získejte spojení
Existují tři nastavení registru, která řídí nastavení mezipaměti síťových složek na straně klienta SMB. Společnost Microsoft tvrdí, že výchozí hodnoty pro tyto klíče poskytují nejlepší výkon pro většinu prostředí. Tato nastavení správy mezipaměti SMB2 jsou ve větvi registru HKLM \ System \ CurrentControlSet \ Services \ LanmanWorkstation \ Parameters.
- DirectoryCacheLifetime - životnost mezipaměti metadat síťové složky (ve výchozím nastavení 10 sekund).
- FileNotFoundCacheLifetime - mezipaměť odpovědí „Soubor nebyl nalezen“ (5 sekund).
- FileInfoCacheLifetime - ukládání do mezipaměti s informacemi o souboru (10 sekund).
Ve výchozím nastavení je tedy životnost mezipaměti ve složce SMBv2 10 sekund. Když klient aktualizuje obsah síťové složky, výsledek poslední aktualizace je uložen klientem po dobu 10 sekund. Při přístupu do tohoto adresáře se všechny aplikace nejprve pokusí použít tuto mezipaměť..
V případě, že čelíte skutečnosti, že nové soubory nejsou okamžitě zobrazeny v síťové složce, je třeba zkontrolovat hodnotu klíče registru DirectoryCacheLifetime a snížit (nebo úplně zakázat).
Chcete-li zakázat ukládání obsahu složky SMB do mezipaměti, ve větvi registru HKLM \ System \ CurrentControlSet \ Services \ LanmanWorkstation \ Parameters vytvořit DWORD parametr s názvem DirectoryCacheLifetime a změňte ji na 0 a restartujte počítač (stejným způsobem můžete změnit hodnoty parametrů FileInfoCacheLifetime a FileNotFoundCacheLifetime na 0).
Poté budou všechny změny v síťové složce okamžitě zobrazeny na klientovi (obsah složky se aktualizuje pokaždé a nepoužívá se lokální mezipaměť).