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

เปิดใช้งาน SMB Compression สำหรับการถ่ายโอนไฟล์เร็วขึ้นบน Windows 11/Windows Server 2022

ด้วยโปรโตคอล SMB เวอร์ชันที่นำเสนอใน Windows Server 2022 และ Windows 11 คุณสามารถใช้ฟีเจอร์ SMB compression แบบอินไลน์เมื่อคัดลอก ย้าย หรือเปิดไฟล์ผ่านเครือข่าย ซึ่งช่วยให้การถ่ายโอนไฟล์เร็วขึ้น ลดแบนด์วิธและเวลาเลตтенซีของการดำเนินการเครือข่ายเมื่อถ่ายโอนไฟล์ขนาดใหญ่ผ่านเครือข่าย (เช่น ไฟล์ดิสก์ VM, อิมเมจ ISO ฯลฯ) ในบทความนี้ เราจะแสดงวิธีเปิดใช้งานและกำหนดค่า SMB compression สำหรับโฟลเดอร์ที่แชร์ใน Windows

ขอบคุณการใช้ SMB compression (อย่าสับสนกับ NTFS compression) คุณไม่จำเป็นต้องใช้เครื่องมือภายนอกเพื่อบีบอัดไฟล์ล่วงหน้าก่อนถ่ายโอนผ่านเครือข่ายช้า (หรือมีมิเตอร์) อัลกอริทึมการบีบอัดเริ่มต้นคือ XPRESS (LZ77) คุณยังสามารถเปิดใช้งานอัลกอริทึมการบีบอัด XPRESS Huffman (LZ77+Huffman), LZNT1 หรือ PATTERN_V1* ใน Windows

คุณสามารถเปิดใช้งาน SMB compression ได้ทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ SMB

ใน Windows Server 2022 คุณสามารถเปิดใช้งาน SMB compression สองวิธี:

  • ใช้ Windows Admin Center (WAC): Files and File Sharing → File Shares → เลือกโฟลเดอร์เครือข่ายที่แชร์ และติ๊กตัวเลือก Compress data ในการตั้งค่าของมัน
  • ใช้ PowerShell: เมื่อสร้างโฟลเดอร์ที่แชร์ใหม่ (New-SmbShare -Name "Public" -Path "E:\Public" -CompressData $true) หรือสำหรับการแชร์ที่มีอยู่ (Set-SmbShare -Name "Public" -CompressData $true) คุณสามารถแสดงรายการไดเรกทอรีทั้งหมดที่เปิดใช้งาน SMB compression: Get-SmbShare -CompressData $true

SMB compression อาจถูกเปิดใช้งานฝั่งไคลเอ็นต์ด้วย แล้วไม่สำคัญว่าเซิร์ฟเวอร์รองรับ SMB compression หรือไม่

คำสั่งต่อไปนี้อนุญาตให้แมปไดรฟ์เครือข่ายที่แชร์ใน Windows 11 พร้อม SMB compression เปิดใช้งาน:

net use * \\munfs01\images /requestcompression:yes

หรือ:

New-SmbMapping -LocalPath "U:" -RemotePath "\\munfs01\images" -CompressNetworkTraffic $true

มาลองวัดความเร็วและเวลาการถ่ายโอนไฟล์ VMDK (ดิสก์เครื่องเสมือน VMware) ด้วย SMB compression เปิดใช้งาน คุณสามารถสร้างโฟลเดอร์ที่แชร์พร้อมและไม่มีตัวเลือก SMB compression หรือใช้ตัวเลือก /compress ของ robocopy เพื่อบังคับคัดลอกไฟล์โดยใช้ SMB compression นี่คือตัวอย่างคำสั่ง:

robocopy z:\ c:\VM\without_smb_compression.vmdk srv02.vmdk

robocopy z:\ c:\VM\with_smb_compression.vmdk srv02.vmdk /compress

ในตัวอย่างของผม ใช้เวลาน้อยลง 20% ในการคัดลอกไฟล์ VMDK ขนาด 3GB ด้วย SMB compression เทียบกับไม่ใช้ (29 วินาที vs 37 วินาที)

ในรุ่น RTM ของ Windows 11 และ Windows Server 2022 SMB compression ถูกใช้สำหรับไฟล์ทุกไฟล์ไม่ว่าขนาด

เพื่อใช้ SMB compression สำหรับการถ่ายโอนไฟล์เสมอ คุณสามารถตั้งค่าพารามิเตอร์ EnableCompressedTraffic = 1 ภายใต้คีย์รีจิสทรี HKLM\System\CurrentControlSet\Services\LanManWorkstation\Parameters คุณสามารถตั้งค่าพารามิเตอร์รีจิสทรีนี้โดยใช้ PowerShell:

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name EnableCompressedTraffic -Value 1

หากคุณต้องการให้ SMB compression ใช้กับไฟล์ขนาดใหญ่เท่านั้น (มากกว่า 100 MB) ให้ตั้งค่าแอตทริบิวต์ต่อไปนี้ในคีย์รีจิสทรีเดียวกัน:

  • CompressibilitySamplingSize = 524288000
  • CompressibleThreshold = 104857600

หากคุณตั้งค่า CompressibleThreshold = 0 และ CompressibilitySamplingSize = 4294967295 แล้ว SMB compression จะถูกใช้เมื่อคุณเข้าถึงไฟล์ใดๆ ในโฟลเดอร์ SMB ผ่านเครือข่าย

หากคุณต้องการปิดใช้งานการใช้ SMB compression บน Windows ทั้งหมด ให้ตั้งค่า DisableCompression = 1:

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters\ -Name DisableCompressedTraffic -Value 1

หรือใช้คำสั่งด้านล่าง:

Set-SmbClientConfiguration -DisableCompression $true

ฟีเจอร์ SMB Compression รองรับการเข้ารหัสและการเซ็น SMB, SMB over QUIC, SMB multichannel และ Hyper-V Live Migration SMB Direct และ RDMA ยังไม่รองรับ คุณสามารถใช้ตัวเลือก /compress ใหม่ในเครื่องมือ Robocopy และ Xcopy เพื่อบังคับใช้ SMB compression เมื่อคัดลอกไฟล์ผ่านเครือข่าย