Bilgi Bankası →5 dk okumaGüncellendi: 2026-09-21

Windows 11'de WSL2 bellek ve CPU kullanımı nasıl sınırlandırılır

WSL2, Linux’u Windows’un yanında çalıştırmaz — onu hafif bir yardımcı sanal makine içinde çalıştırır ve Görev Yöneticisi bu makineyi Vmmem süreci olarak gösterir. Güncel Windows 11 derlemelerinde sanal makine RAM’in %50’sine kadar büyüyebilir (eski derlemeler %80’e izin veriyordu) ve mantıksal işlemcilerin yarısını alabilir; Linux da kendisine verilen her şeyi doldurmaktan çekinmez. Çözüm, kullanıcı profili klasöründeki .wslconfig adlı düz metin dosyasıdır: memory=6GB ve processors=4 gibi birkaç satır makineye tavan çeker ve tek bir wsl --shutdown komutu değişikliği uygular.

Vmmem neden RAM'inizi yiyor ve .wslconfig neyi kontrol eder

WSL2, Linux’un boşalttığı belleği Windows’a geri vermek yerine sayfa önbelleği olarak tutar — dağıtım içinde çalışan tüm programlar kapalı olsa bile büyük bir derlemeden sonra Vmmem’in devasa kalmasının sebebi budur. Bu normal çekirdek davranışıdır, bellek sızıntısı değil; ancak dağıtımlar makineyi bir tarayıcı, bir IDE ve diğer sanal makinelerle paylaşıyorsa tavanın yazılı olması gerekir. Varsayılan %50, makineler boşken anlamlıydı; beş aç gözlü uygulama tarafından paylaşılan 16 GB’lık bir makinede fazlasıyla fazla.

Direksiyon %UserProfile%\.wslconfig dosyasıdır ve sanal makine başlarken bir kez okunur — her düzenlemenin etkili olması için wsl --shutdown gerekir. Sınırlar tüm dağıtımlara aynı anda uygulanır; bu dosyayla dağıtım başına ayrı tavan mümkün değildir. Yalnızca WSL2’yi etkiler: ilk nesil Linux çağrılarını Windows’un kendisinde çalıştırır; ne sanal makine ne de sınırlanacak bir Vmmem vardır.

  • memory=6GB — sanal makinenin tamamı, yani tüm dağıtımların toplamı için RAM tavanı
  • processors=4 — WSL2’nin görmesine izin verilen mantıksal CPU çekirdeği sayısı
  • swap=4GB — WSL2’nin sığına bileceği Linux takas dosyasının boyutu (varsayılan: RAM’in %25’i, en çok 8 GB)
  • autoMemoryReclaim=gradual — Linux’un boşalttığı belleği Windows’a geri veren deneysel seçenek (WSL 1.3.10+)
  • sparseVhd=true — dosyalar silindiğinde ext4.vhdx diskinin küçülmesine izin veren deneysel seçenek

Sınırları adım adım ayarlamak

Not Defteri’ni açın, [wsl2] bölüm başlığını ve altına memory=6GB, processors=4 ve swap=4GB satırlarını yapıştırın, sonra dosyayı %UserProfile%\.wslconfig olarak kaydedin. Kayıt iletişim kutusunda “Farklı kaydet türü”nü “Tüm dosyalar (*.*)” ve kodlamayı UTF-8 yapın; yoksa Windows sessizce bir .wslconfig.txt oluşturur ve WSL onu asla okumaz. Birimsiz bir değer, örneğin memory=6, bayt olarak yorumlanır — GB eki süs değil, zorunluluktur.

PowerShell veya Windows Terminal açıp wsl --shutdown çalıştırın, on saniye civarı bekleyin, sonra dağıtımınızı yeniden başlatın. Linux’un içinde free -h artık fiziksel RAM’in tamamı yerine sınırlandırılan miktarı gösterir ve nproc izin verdiğiniz çekirdek sayısını yazdırır. wsl --version 1.3.10 veya daha yeni bildiriyorsa [wsl2] bloğunun altına autoMemoryReclaim=gradual ve sparseVhd=true içeren bir [experimental] bölümü ekleyip kapatmayı tekrarlayabilirsiniz; eski WSL’de önce yükseltilmiş bir komut isteminden wsl --update çalıştırın.

Sayıları ne zaman gözden geçirmeli

Bir hafta boyunca normal çalışma sırasında Görev Yöneticisi’nde Vmmem’i izleyin: gezinme, düzenleme ve hafif kapsayıcılar için 4–6 GB bol bol yeter; ağır Docker derlemeleri ya da büyük JavaScript araç zincirleri dürüstçe 8 GB ve fazlasını isteyebilir. memory= değerini tek bir hamlede değil, 2 GB’lık adımlarla değiştirin ve 16 GB ya da altı RAM’li makinelerde fiziksel belleğin en az yarısını Windows’a bırakın. Dağıtımlarınızın bulunduğu disk sürekli büyüyorsa sparseVhd=true, ext4.vhdx dosyasının tek yöne genişlemesini durdurur. Her büyük Windows güncellemesinden sonra tekrar kontrol edin — arada WSL paketini değiştirip davranışını bozabiliyorlar.

Sorular ve yanıtlar

WSL2'ye ne kadar bellek vermeliyim?

16 GB’lık bir makinede 6 GB, günlük geliştirmeyi pay vererek karşılar; toplam 8 GB RAM’de Windows takaslamaya başlamasın diye 4 GB’de kalın. Tavanı küçük adımlarla ve yalnızca derlemeler gerçekten bellek yetersizliği hatasıyla başarısız olduğunda yükseltin.

Linux içinde her şeyi kapattığım halde Vmmem neden hâlâ devasa?

Çekirdek boşalttığı belleği sayfa önbelleği olarak tutar ve bunu kendi inisiyatifiyle Windows’a geri vermez. Günü bitirirken wsl --shutdown çalıştırın ya da WSL 1.3.10+ üzerinde autoMemoryReclaim=gradual seçeneğini etkinleştirin; kullanılmayan bellek kendiliğinden geri aksın.

.wslconfig WSL1 dağıtımlarıyla da çalışır mı?

Hayır. WSL1, Linux çağrılarını Windows’un kendisinde çevirir — sanal makine yok, Vmmem yok, sınırlandırılacak bir şey yok. Limit istiyorsanız dağıtımı önce wsl --set-version <name> 2 ile dönüştürün.

Satın almadan önce lisans kapsamını öğrenin.

Tek seferlik 30 dakikalık deneme temel araçları kapsar. PRO özellikleri ücretli lisans etkinleştirilene kadar kilitlidir.

Bunları da okuyun

Tüm yazılar · SSS

Bize yazın: [email protected]