Bu bölümde, iki Windows Server 2022 düğümü arasında 1 Gbps bağlantı üzerinden büyük VM yedeklerini çoğaltırken bant genişliği kullanımını azaltmam gerekti. SMB sıkıştırmasını etkinleştirmek basit bir kazanç gibi görünüyordu — ancak dağıtım öncesi gerçek CPU maliyetini ölçmek istedim. İşte PowerShell kullanarak sıkıştırma zorunlu kılma ve PerfMon ile etkisini izleme adımları.
SMB Sıkıştırma'yı PowerShell ile Etkinleştirme
Temel komut basit: sunucu genelinde SMB sıkıştırma bayrağını true olarak ayarla. Bu, paylaşıma veya istemciye özel olarak geçersiz kılınmadıkça tüm uyumlu SMBv3 bağlantıları için sıkıştırma zorunlu kılar.
Set-SmbServerConfiguration -EnableCompression $true -Force
-Force bayrağı, onay istemini atlar ve bu da otomasyonlarda faydalıdır. Bu komutu çalıştırdıktan sonra ayarı şu komutla doğruladım:
Get-SmbServerConfiguration | Select EnableCompression
Bu, True döndürdü ve değişikliğin hemen etkili olduğunu doğruladı — yeniden başlatma gerekmedi. Ancak bu ayar sadece yeni bağlantıları etkiler; mevcut SMB oturumları, yeniden kurulana kadar mevcut ayarlarını kullanmaya devam eder.
Sıkıştırılacak İçeriği Seçme
Varsayılan olarak, SMB sıkıştırma, belirli bir eşiği aşan dosyaları hedefler ve JPEG, ZIP veya PDF gibi zaten sıkıştırılmış formatları atlar. Gerekirse bu davranışı ayarlayabilirsiniz. Örneğin, sıkıştırma için minimum dosya boyutunu 8KB'ye (varsayılan 64KB) düşürmek için:
Set-SmbServerConfiguration -CompressionThreshold 8192
Ben, iş yüküm büyük VHDX ve ISO dosyalarını içeriyordu — bu dosyalar eşiğin çok üzerindeydi — bu yüzden varsayılan değeri bırakıdım. Küçük dosyalarla çalışıyorsanız, bu eşiği ayarlamak, sıkıştırılamayan verilere CPU harcamayı önlemek için faydalı olabilir.
PerfMon ile CPU Etkisini İzleme
Gerçek maliyeti ölçmek için, şu alanlara odaklanan bir PerfMon veri toplama aracı kurdum:
Processor(_Total)\% Processor TimeSMB Server Shares\*(özellikleBytes Total/secveCompressed Bytes/sec)Memory\Available MBytes
Sıkıştırma etkinleştirilmeden önce 10 dakikalık bir baz ölçüm yakaladım, ardından sunucular arasında 20 GB’lık bir VM yedekleme dosyasını taşıyan kontrol edilmiş bir robocopy işi çalıştırdım. Baz ölçüm yakaladıktan sonra sıkıştırma yeniden etkinleştirdim (sıfırlanmış olma ihtimaline karşı) ve aynı ağ ve disk koşullarında transferi tekrarladım.
Sonuçlar şöyle gösterdi:
- Baz ölçüm: Transfer sırasında ortalama %15 CPU kullanımı, ~110 MB/s veri hızı
- Sıkıştırma ile: Ortalama %28 CPU kullanımı, ~160 MB/s etkili veri hızı
CPU kullanımı neredeyse iki katına çıktı, ancak düşük kablo trafiği sayesinde etkili veri hızı %45 artarak ~160 MB/s oldu. 1 Gbps bağlantıda bu, transfer süresinin yaklaşık 5 dakikadan 3 dakikaya düşerek tamamlanması anlamına geliyor — gece yedekleme pencereleri için anlamlı bir iyileştirme.
Ne Zaman Kullanılmalı (veya Kaçınılmalı) SMB Sıkıştırma
SMB sıkıştırma şu durumlarda etkili olur:
- Ağ darboğazıdır (WAN, tıkanan LAN veya sınırlı uplink)
- Sıkıştırılabilir veri aktarılır (VM diskleri, günlükler, metin yedekleri, ISO görüntüleri)
- Dosya sunucusunda CPU kapasitesi mevcuttur
Aşağıdaki durumlarda kaçınılmalı veya dikkatle test edilmelidir:
- Sunucular yoğun saatlerde zaten CPU ile sınırlıdır
- Önceden sıkıştırılmış medya ile çalışılır (video, ses, şifreli dosyalar)
- Düşük performanslı eski NIC'ler veya offload desteği zayıf sürücüler kullanılır — sıkıştırma CPU yükü artırarak kesintiyi azaltma mekanizmalarına müdahale edebilir
Linux tc'yi VoIP için ayarlama konulu gönderimimde bahsettiğim gibi, offload ve CPU bütçesi daima birbirine bağlıdır — bir tarafta kazandığınız şey, diğer tarafta kaybettikleriniz olabilir.
İpucu: Daha İyi Dengeli Performans İçin SMB Multichannel ile Birleştirin
NIC'leriniz RSS veya RDMA'yı destekliyorsa, sıkıştırma ile birlikte SMB Multichannel'i etkinleştirmeyi düşünün. Bu, birden fazla CPU çekirdeğinin SMB trafiğini işlemesini sağlar ve sıkıştırmanın her çekirdek üzerindeki etkisini azaltır. Multichannel durumunu şu komutla kontrol edebilirsiniz:
Get-SmbMultichannelConnection
Kurulumumda, her iki özelliği de etkinleştirerek tek bir çekirdek kullanımını %35'in altında tutarken yüksek throughput'u korudum — sadece sıkıştırma kullanıldığına kıyasla çok daha akıcı bir profil elde ettim.
Son Düşünceler
Windows Server 2022'de SMB sıkıştırmasını zorunlu kılmak, düşük çaba yüksek görünürlük sağlayan bir ayarlama — ama ücretsiz değil. Önce ölçüm yap, varsayma yapma. Benim durumumda, CPU maliyeti, zaman tasarrufu ve ağ yükü azalmasıyla justified oldu. Yedekleri çoğaltıyorsanız veya siteler arasında büyük veri kümeleri taşıyorsanız, test etmeye değer. Sadece PerfMon'u çalıştırarak bırakın ve verilerin karar vermesini sağlayın.
Kapak görseli: Negative Space · CC0 (Openverse / kamu malı) · https://stocksnap.io/photo/macbook-laptop-X0CYLUO8E0
