Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows 7

เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันและไดรฟ์เครือข่ายใน Windows ได้ช้า

ผู้ใช้ของเรากำลังบ่นเกี่ยวกับประสิทธิภาพของเครือข่ายที่ช้ามากเมื่อเปิดหรือบันทึกไฟล์ไปยังโฟลเดอร์ที่แชร์บนเครือข่ายใน Windows เมื่อผู้ใช้เปิดโฟลเดอร์ที่แชร์ผ่านเส้นทาง UNC หรือผ่านอักษรระบุไดรฟ์ (หากโฟลเดอร์ที่แชร์ถูกจับคู่เป็นไดรฟ์เครือข่าย) เนื้อหาจะปรากฏใน 10-60 วินาทีเท่านั้น เมื่อสร้างไฟล์ใหม่ในโฟลเดอร์เครือข่าย ไฟล์จะไม่ปรากฏขึ้นทันทีเช่นกัน แต่จะล่าช้าหลังจากผ่านไป 3-4 นาที (แม้ว่าคุณจะอัปเดตเนื้อหาโฟลเดอร์ด้วย F5 กุญแจ). อย่างไรก็ตาม หากคุณระบุชื่อไฟล์แบบเต็มด้วยตนเองผ่านเส้นทาง UNC (\\lon-file-srv1\public\new_file.docx ) จะเปิดขึ้นแม้ว่าจะไม่ปรากฏใน File Explorer

เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันและไดรฟ์เครือข่ายใน Windows ได้ช้า

Windows ใช้ ตัวเปลี่ยนเส้นทางเครือข่ายพิเศษ คอมโพเนนต์เมื่อเข้าถึงไฟล์ที่ใช้ร่วมกันและทรัพยากรเครือข่ายอื่นๆ บนคอมพิวเตอร์ระยะไกล เริ่มต้นด้วย SMB v2.x (ดูตารางที่มีเวอร์ชันโปรโตคอล Server Message Block) Network Redirector ใช้กลไกการแคชเมื่อเข้าถึงโฟลเดอร์และไฟล์ที่แชร์ผ่านเครือข่าย ซึ่งจะช่วยลดการรับส่งข้อมูลและจำนวนคำขอ SMB ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ (โดยเฉพาะอย่างยิ่งมีผลกับเครือข่ายที่ช้าและไม่น่าเชื่อถือ) โดยค่าเริ่มต้น แคชนี้จะถูกล้างทุกๆ 10 วินาที

หากคุณประสบปัญหาการเข้าถึงการแชร์เครือข่ายช้าบนอุปกรณ์ไคลเอ็นต์ Windows คุณสามารถลองปิดใช้งานการแคชข้อมูลเมตาของ SMB ที่ฝั่งไคลเอ็นต์หรือในการตั้งค่าโฟลเดอร์ที่ใช้ร่วมกันได้

คุณสามารถปิดใช้งานการแคช SMB ในการตั้งค่าโฟลเดอร์ที่ใช้ร่วมกัน เปิดคุณสมบัติของโฟลเดอร์ที่ใช้ร่วมกัน และไปที่ การแบ่งปัน แท็บ -> การแบ่งปันขั้นสูง -> แคช . เลือกตัวเลือกที่สอง “ไม่มีไฟล์หรือโปรแกรมจากโฟลเดอร์ที่แชร์ใช้งานแบบออฟไลน์ ”.

เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันและไดรฟ์เครือข่ายใน Windows ได้ช้า

หรือใช้คำสั่ง PowerShell:

Set-SMBShare -Name MySharedDocs -CachingMode None

การดำเนินการนี้จะปิดใช้งานทั้งการเข้าถึงแคชและออฟไลน์สำหรับโฟลเดอร์ที่ใช้ร่วมกันนี้ (ดูบทความเกี่ยวกับการใช้ไฟล์ออฟไลน์ใน Windows)

มีพารามิเตอร์รีจิสตรีสามตัวที่จัดการการตั้งค่าแคชของโฟลเดอร์แชร์เครือข่ายทางฝั่งไคลเอ็นต์ SMB Microsoft ระบุว่าค่าเริ่มต้นสำหรับตัวเลือกรีจิสทรีเหล่านี้ให้ประสิทธิภาพที่ดีที่สุดสำหรับสภาพแวดล้อมส่วนใหญ่ การตั้งค่าแคช SMB จะอยู่ภายใต้คีย์รีจิสทรี HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters .

  • DirectoryCacheLifetime คืออายุการใช้งานของแคชข้อมูลเมตาของโฟลเดอร์ที่ใช้ร่วมกัน (ค่าเริ่มต้น 10 วินาที)
  • FileNotFoundCacheLifetime – แคชการตอบสนอง “ไม่พบไฟล์” (5 วินาที);
  • FileInfoCacheLifetime – เวลาในการเก็บแคชด้วยข้อมูลไฟล์ (10 วินาที)
คุณสามารถค้นหาข้อมูลเกี่ยวกับการตั้งค่ารีจิสทรีเหล่านี้ได้ในบทความเกี่ยวกับการปรับการตั้งค่าเซิร์ฟเวอร์ไฟล์ Windows ให้เหมาะสม:https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/file-server/

ตามค่าเริ่มต้น อายุการใช้งานแคชสำหรับโฟลเดอร์แชร์ SMB จะอยู่ที่ 10 วินาทีเท่านั้น เมื่อไคลเอนต์รีเฟรชเนื้อหาของโฟลเดอร์ที่ใช้ร่วมกัน ผลลัพธ์ของการอัปเดตล่าสุดจะถูกเก็บไว้โดยไคลเอนต์เป็นเวลา 10 วินาที เมื่อเข้าถึงการแชร์เครือข่ายนี้ แอปพลิเคชันทั้งหมดจะพยายามใช้แคชนี้ก่อน

ในบางกรณี กลไกสำหรับการแคชข้อมูลในโฟลเดอร์ SMB ทำงานไม่ถูกต้อง (ส่วนใหญ่มักเกิดขึ้นกับโฟลเดอร์/ไดรฟ์เครือข่ายที่มีไฟล์และโฟลเดอร์นับพัน) ในกรณีนี้ ผู้ใช้อาจพบความล่าช้าอย่างมากเมื่อเปิด ดู และสร้างไฟล์ในโฟลเดอร์ที่ใช้ร่วมกัน

คุณสามารถปิดใช้งานการแคชสำหรับโฟลเดอร์ SMB ในการดำเนินการนี้ ให้สร้างพารามิเตอร์ DWORD ใหม่ภายใต้ HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters รีจิสตรีคีย์ชื่อ DirectoryCacheLifetime และมีค่า 0 . ตั้งค่าของ FileInfoCacheLifetime . ด้วย และ FileNotFoundCacheLifetime พารามิเตอร์เป็น 0 คุณสามารถสร้างพารามิเตอร์รีจิสทรีนี้โดยใช้ regedit.exe หรือด้วย cmdlet PowerShell New-ItemProperty:

$regpath="HKLM:\System\CurrentControlSet\Services\LanmanWorkstation\Parameters"
$Name1 ="DirectoryCacheLifetime"
$Name2 ="FileInfoCacheLifetime"
$Name3 ="FileNotFoundCacheLifetime"
New-ItemProperty -Path $regpath -Name DirectoryCacheLifetime -Value 0 -PropertyType DWORD -บังคับ | Out-Null
New-ItemProperty -Path $regpath -ชื่อ FileInfoCacheLifetime -Value 0 -PropertyType DWORD -บังคับ | Out-Null
New-ItemProperty -Path $regpath -ชื่อ FileNotFoundCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null

เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันและไดรฟ์เครือข่ายใน Windows ได้ช้า

คุณต้องรีสตาร์ทคอมพิวเตอร์เพื่อให้การตั้งค่ามีผล หากจำเป็นต้องใช้พารามิเตอร์เหล่านี้กับคอมพิวเตอร์โดเมนหลายเครื่อง คุณสามารถใช้ GPO เพื่อปรับใช้การตั้งค่ารีจิสทรีได้

การปิดใช้งานการแคชโฟลเดอร์เครือข่ายจะเพิ่มการรับส่งข้อมูลเครือข่ายและลดประสิทธิภาพของไฟล์เซิร์ฟเวอร์

คุณยังสามารถใช้ Set-SmbClientConfiguration cmdlet เพื่อปรับแต่งไคลเอนต์ SMB:

Set-SmbClientConfiguration -DirectoryCacheLifetime 0
Set-SmbClientConfiguration -FileInfoCacheLifetime 0
Set-SmbClientConfiguration -FileNotFoundCacheLifetime 0

คุณสามารถแสดงรายการการตั้งค่าการแคชปัจจุบันสำหรับไคลเอนต์ Windows SMB ด้วย PowerShell:

รับ-SmbClientConfiguration| เลือก *แคช*

DirectoryCacheEntriesMax :16DirectoryCacheEntrySizeMax :65536DirectoryCacheLifetime :0FileInfoCacheEntriesMax :64FileInfoCacheLifetime :0FileNotFoundCacheEntriesMax :128FileNotFoundCacheLifetime :0

เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันและไดรฟ์เครือข่ายใน Windows ได้ช้า

หลังจากนั้น การเปลี่ยนแปลงทั้งหมดในการแชร์จะแสดงบนไคลเอ็นต์ทันที (เนื้อหาของโฟลเดอร์จะรีเฟรชทุกครั้งที่เข้าถึงและไม่ได้ใช้แคชในเครื่อง)

มีสาเหตุอื่นๆ หลายประการที่ทำให้เครือข่ายแชร์โฟลเดอร์มีประสิทธิภาพต่ำ หรือเมื่อเนื้อหาของโฟลเดอร์อาจปรากฏขึ้นช้า:

  • การเปิดใช้งานตัวเลือก "Access-based Enumeration (ABE)" ในการตั้งค่าโฟลเดอร์ที่ใช้ร่วมกันอาจทำให้การอัปเดตรายการไฟล์ในโฟลเดอร์ที่ใช้ร่วมกันซึ่งมีอ็อบเจ็กต์จำนวนมากช้าลง
  • คุณอาจพบความเร็วเครือข่ายช้าบนเครื่องเสมือน Hyper-V ที่ทำงานบน Windows Server 2019 (เทียบกับ Windows Server 2016/2012R2)
  • พยายามปิดใช้งานโปรโตคอล NetBIOS ดั้งเดิมในคุณสมบัติของการเชื่อมต่อ TCP/IPv4 ของคุณบนอุปกรณ์ที่เข้าร่วมโดเมน (ncpa.cpl -> เปิดการตั้งค่า TCP/IPv4 ของอะแดปเตอร์เครือข่ายแล้วเลือก ปิดใช้งาน NetBIOS ผ่าน TCPIP บน ชนะ แท็บ);
  • ลองรีเซ็ตเครือข่ายและการตั้งค่าสแต็ก TCP/IP บนอุปกรณ์ไคลเอ็นต์ Windows ใน Windows 10+ คุณสามารถใช้ตัวเลือก รีเซ็ตเครือข่าย ในแผงการตั้งค่าหรือใช้คำสั่ง:netsh int ip reset


No