REHBERLER

Sayfa dosyası ve oyunlar — kapatmak neden ters teper

Windows programlara ancak RAM'in ile sayfa dosyasının toplamı kadar bellek sözü verebilir. Sayfa dosyasını kaldırırsan bu tavan RAM'inin hemen altına iner ve ona ulaşan bir oyun donabilir ya da çökebilir.

32 GB RAM'in var, bu yüzden bir rehber sana sayfa dosyasının küçük makinelerden kalma bir şey olduğunu ve kaldırılabileceğini söyledi. Ya da Görev Yöneticisi bol boş RAM gösterirken bir oyun bellek yetersizliği (out of memory) hatasıyla çöktü. Ya da maçın ortasında Windows "Bilgisayarınızda bellek azaldı" dedi ve programları kapatmanı istedi.

Üçü de aynı mekanizmadan geliyor ve bu, kapatma tavsiyesinin varsaydığı mekanizma değil.

Sayfa dosyası ne işe yarar

Windows belleği iki adımda dağıtır. Bir program önce belleği ayırır (commit); bu, Windows'un o alanın var olduğuna dair verdiği sözdür. Programın oraya yazması ancak daha sonra gelir. Microsoft'un sayfa dosyasına giriş yazısı bu sözlerin tavanını tanımlıyor: sistemin ayırma sınırı (commit limit), fiziksel bellek ile tüm sayfa dosyalarının toplamıdır.

Tüm sözlerin toplamı ayırma yüküdür (commit charge) ve kullanılan RAM ile aynı şey değildir. Microsoft'un ayrılmış bellek üzerine performans kılavuzu, ayrılmış belleğe henüz yazılmamış ya da dokunulmamış olabileceğine dikkat çekiyor; bu yüzden yük, bolca fiziksel bellek hâlâ kullanılabilirken sınıra ulaşabilir. Görev Yöneticisi boş RAM gösterirken bir oyunun belleğinin tükenmesi böyle olur.

Sayfa dosyasının ikinci bir işi var: değiştirilmiş ama nadiren kullanılan belleği tutmak; böylece Windows onu RAM'den çıkarıp o RAM'i daha meşgul bir şeye verebilir. Üçüncü işi olan çökme dökümlerinin aşağıda kendi bölümü var.

Sayfa dosyası olmadan ne olur

Sayfa dosyası yokken, Microsoft'un sayfa dosyası boyutlandırma kılavuzuna göre ayırma sınırı takılı fiziksel bellekten biraz daha az olur. Artık her programın sözleri, verilmiş ama henüz kullanılmamış bellek de dahil, RAM'in içine sığmak zorundadır.

Yük sınıra ulaştığında, giriş yazısına göre sistem ve işlemler ayrılmış bellek alamayabilir; bu da donmaya, çökmeye ve başka arızalara yol açabilir. Mark Russinovich 2008'de Windows sanal belleği hakkında yazarken bunu açıkça söyledi: ayırma sınırına ulaşıldığında bellek ayıran istekler başarısız olur. O anda bellek isteyen bir oyun onu alamaz.

Hız argümanına da cevap verdi. Russinovich'e göre bazıları sayfa dosyası olmamasının daha iyi performans sağladığını düşünüyor ve bazı iş yüklerinde bu doğru olabilir; ama genel olarak bir sayfa dosyası Windows'un etkin kullanılmayan sayfaları diske yazmasını sağlar ve bu da sisteme daha fazla kullanılabilir bellek bırakır. Microsoft'un giriş yazısı bazı ürünlerin ve hizmetlerin sayfa dosyası gerektirdiğini ekliyor.

Çökme dökümlerinin de ona ihtiyacı var

Windows bir Durdurma hatasıyla çöktüğünde, neyin başarısız olduğunun kaydı varsayılan olarak sayfa dosyası üzerinden yazılır. Microsoft'un döküm belgelerine göre RAM'in içeriği Windows'un kurulu olduğu bölümdeki sayfa dosyasına yazılır, döküm özelliğinin çalışması için sayfa dosyası önyükleme biriminde olmalıdır ve başka bir birime taşındıysa geri taşınması gerekir. Varsayılan döküm türü olan Otomatik bellek dökümü ve Sistem yönetimli boyut ayarındaki bir sayfa dosyasıyla Windows, sayfa dosyasını bir çekirdek bellek dökümü genellikle yakalanabilecek şekilde boyutlandırır.

Sanal Bellek penceresi bu konuda kendisi uyarıyor: disk belleği dosyasını devre dışı bırakırsan ya da başlangıç boyutunu belirli bir megabayt değerinin altına ayarlarsan ve bir sistem hatası oluşursa, Windows sorunu belirlemeye yardımcı olabilecek ayrıntıları kaydetmeyebilir. Bu ayrıntılar olmadan oyunun neden çöktüğünü bulmak zorlaşır.

Tavana ne kadar yakın olduğunu kontrol et

Görev Yöneticisi'ni aç, Performans'a git ve Bellek'i seç. Tamamlanan iki sayı gösterir: önce ayırma yükü, sonra ayırma sınırı. Oynarken ilki ikincisine yaklaşıyorsa, Kullanılan (Sıkıştırılmış) ne derse desin, bu sayfanın anlattığı tavana yakınsın.

İki Microsoft kılavuzu bu oran için biraz farklı eşikler veriyor. Yukarıda bağlantısı verilen performans kılavuzu %75'in üstündeki her şeyi tükenmeye yakın sayıyor; Microsoft'un güncel performans sorun giderme kılavuzu ise %0 ile %50 arasını sağlıklı, %60 ile %80 arasını uyarı ve %80 ile %100 arasını kritik olarak listeliyor.

Sözleri hangi programın tuttuğunu görmek için Ayrıntılar sekmesinde her işlem için bir Ayırma boyutu sütunu var; gizliyse Sütunları seç onu ekler. Windows'un belleği zaten azaldıysa Windows, Sistem günlüğüne Microsoft-Windows-Resource-Exhaustion-Detector kaynağından 2004 numaralı olayı, en çok sanal bellek tüketen programları adlandıran bir iletiyle yazar. Bu PowerShell komutu son beşini listeler:

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-Resource-Exhaustion-Detector'; Id=2004} -MaxEvents 5 | Format-List TimeCreated, Message

Hiçbir olay bulunamadığını bildirirse günlükte böyle bir olay yok demektir.

Ne kadar büyük olmalı

Sistem yönetimli boyut ayarında bırak. Boyutlandırma kılavuzu sayfa dosyalarının varsayılan olarak sistem tarafından yönetildiğini, doğru boyutun çökme dökümü ayarına ve en yüksek ayırma yüküne bağlı olduğunu, her sisteme özgü olduğunu ve genellenemeyeceğini söylüyor. Russinovich de eski RAM çarpanı formüllerini aynı sebeple işe yaramaz buldu.

Sistem tarafından yönetilen bir sayfa dosyası kendiliğinden büyür. Ayırma yükü sınırın yüzde 90'ını geçtiğinde RAM'inin üç katına ya da 4 GB'a kadar, hangisi büyükse, büyür; ama birimin sekizde birinden fazla olmaz ve yalnızca diskte boş alan varsa büyür. Sayfa dosyasının bulunduğu sürücüde biraz boş yer bırak.

Belgelenmiş bir istisna var. Windows 10 ve Windows 11 için listelenen KB 4055223 makalesinde Microsoft, sık bellek ayıran programlarda, otomatik bir sayfa dosyası büyürken yaşanan gecikmeden kaynaklanabilen rastgele bellek yetersizliği hatalarını anlatıyor. Geçici çözümü, başlangıç boyutu RAM'inin 1,5 katı olan ve hatalar sürerse daha da yükseltilen özel bir boyut. Bu, yukarıdaki genellenemeyeceği yönündeki ifadeyle ve Russinovich'le çelişiyor; o yüzden onu bir kural olarak değil, o tek belirtinin çözümü olarak gör.

Ayarı değiştirmek için Win+R'ye bas ve SystemPropertiesAdvanced çalıştır. Performans altında Ayarlar... düğmesini seç, Gelişmiş sekmesini aç ve Sanal bellek altında Değiştir... düğmesini seç. En üstteki onay kutusu Tüm sürücülerde disk belleği dosyası boyutunu otomatik yönet. Altında her sürücü için Özel boyut, Sistem yönetimli boyut ve Disk belleği dosyası yok var. Ayarla seçimi o sürücüye uygular; sonra Tamam'ı seç ve bilgisayarı yeniden başlat.

SSD aşınması

Kaldırmak için öne sürülen diğer sebep SSD aşınması. Microsoft'un Windows 7 mühendislik blogu 2009 telemetrisinde sayfa dosyası okumalarının yazmalardan yaklaşık 40'a 1 oranında fazla olduğunu bildirdi ve bir SSD'ye koymak için sayfa dosyasından daha iyi az dosya olduğu sonucuna vardı. Bunlar 2009 rakamları; onları bugünün sayıları olarak değil, bir örüntü olarak al.

Daha yeni bir disk için ölçek vermek gerekirse, Samsung'un 2022 tarihli 990 PRO veri sayfası 1 TB model için, beş yıllık sınırlı garanti kapsamında ve hangisi önce dolarsa, 600 TB yazma değeri veriyor. Eşit dağıtıldığında bu, beş yıl boyunca günde yaklaşık 330 GB yazma demek; bu bölme Samsung'un değil, bizim.

İşe yaramayanlar

İlgili

Bu sayfa yardımcı oldu mu?

Eksik olan neydi, ya da ne işe yaramadı? Bunların hepsini okuyoruz.

Bu sayfa sorununu çözmediyse bize yaz — hangi makaleyi okuduğunu da ekle, o makaleyi düzeltelim.