Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 7

แก้ไขปัญหาการเข้าถึงโฟลเดอร์แชร์และไดรฟ์เครือข่ายช้าใน Windows

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

แก้ไขปัญหาการเข้าถึงโฟลเดอร์แชร์และไดรฟ์เครือข่ายช้าใน Windows

กลไกแคช SMB และ Network Redirector

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

ปิดใช้งานการแคชข้อมูลเมตา SMB

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

1. ผ่านการตั้งค่าโฟลเดอร์แชร์

เปิดคุณสมบัติของโฟลเดอร์แชร์ → แท็บ Sharing → Advanced Sharing → Caching เลือกตัวเลือกที่สอง “No files or programs from the shared folder are available offline”

แก้ไขปัญหาการเข้าถึงโฟลเดอร์แชร์และไดรฟ์เครือข่ายช้าใน Windows

2. ใช้คำสั่ง PowerShell

Set-SMBShare -Name MySharedDocs -CachingMode None

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

การตั้งค่ารีจิสทรีสำหรับแคชฝั่งไคลเอนต์ SMB

มีพารามิเตอร์รีจิสทรี 3 ตัวที่จัดการการตั้งค่าแคชโฟลเดอร์แชร์เครือข่ายฝั่งไคลเอนต์ SMB ตั้งอยู่ที่คีย์ HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters:

  • DirectoryCacheLifetime – อายุการใช้งานของแคชข้อมูลเมตาโฟลเดอร์แชร์ (ค่าเริ่มต้น 10 วินาที)
  • FileNotFoundCacheLifetime – แคชการตอบสนอง “File not found” (5 วินาที)
  • FileInfoCacheLifetime – เวลาที่เก็บแคชข้อมูลไฟล์ (10 วินาที)

ข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่านี้: Optimizing Windows File Server Settings

ปิดใช้งานแคช SMB ผ่านรีจิสทรี

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

สามารถปิดใช้งานแคชสำหรับโฟลเดอร์ SMB ได้โดยสร้างพารามิเตอร์ DWORD ใหม่ภายใต้คีย์รีจิสทรี HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters ดังนี้:

  • DirectoryCacheLifetime = 0
  • FileInfoCacheLifetime = 0
  • FileNotFoundCacheLifetime = 0

สร้างผ่าน regedit.exe หรือ PowerShell:

$regpath= "HKLM:\System\CurrentControlSet\Services\LanmanWorkstation\Parameters"
$Name1 = "DirectoryCacheLifetime"
$Name2 = "FileInfoCacheLifetime"
$Name3 = "FileNotFoundCacheLifetime"
New-ItemProperty -Path $regpath -Name DirectoryCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileInfoCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $regpath -Name FileNotFoundCacheLifetime -Value 0 -PropertyType DWORD -Force | Out-Null

แก้ไขปัญหาการเข้าถึงโฟลเดอร์แชร์และไดรฟ์เครือข่ายช้าใน Windows

ต้องรีสตาร์ทคอมพิวเตอร์ เพื่อให้การตั้งค่า有效 หากต้องนำไปใช้กับหลายเครื่องในโดเมน ใช้ GPO แปะการตั้งค่ารีจิสทรี

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

ปรับแต่ง SMB Client ด้วย Set-SmbClientConfiguration

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

ตรวจสอบการตั้งค่าแคชปัจจุบันของ Windows SMB Client:

Get-SmbClientConfiguration | select *cache*

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

แก้ไขปัญหาการเข้าถึงโฟลเดอร์แชร์และไดรฟ์เครือข่ายช้าใน Windows

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

สาเหตุอื่นที่ทำให้ประสิทธิภาพโฟลเดอร์แชร์ต่ำ

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