Posts Tagged ‘sync’
Bildiğiniz gibi uygulamaların stabil çalışmasını sağlamak için linux her ilklendirilen uygulama ile bir miktar hafızayı bu yazılımın kullanması için rezerve eder.
Bu ayrılmış hafızaya yazılanlarıda diske geçirmek için varsayılan olarak 30sn. de bir update daemonı devreye girip “sync” komutu ile diske yazar.
normalde bu hafızayı sisteminiz optimize olarak takip etmelidir, ama yeni linux sürümlerinde genelde sanal sistemler, java tabanlı ideler veya masaüstü efektleri kullanıyorsanız, bu hafızayı yeniden tahsis etmediğinden bir süre sonra swapte çalışmaya başlarsınız. Bu da sistem başarımınızı büyük oldukça düşürücektir. P4 den inip P3 e binmek gibi birşey
Peki bu cache (ayrılmış) hafızadan nasıl kurtulup RAM imizi boşa çıkartırız?
user@ubuntu:~$ free
total used free shared buffers cached
Mem: 3095788 2940844 154944 0 86000 1445084
-/+ buffers/cache: 1409760 1686028
Swap: 5871748 69676 5802072
şimdi bakıyoruz ki RAM imizin yarısı cached (ayrılmış) olarak duruyor. ayrılmış olan bu hafızayı temizlemeden önce içindeki veriyi yazması gerekiyor.
Bu yüzden “sync” le başlıyoruz.
suse, redhat, fedora kullanıyorsanız;
su - root
sync; echo 3 > /proc/sys/vm/drop_caches
ubuntu ve debian da ise
sudo sync
sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
Şeklinde bu hafızayı yeniden kullanıma açıyoruz, bakalım;
user@ubuntu:~$ free
total used free shared buffers cached
Mem: 3095788 1503308 1592480 0 364 139352
-/+ buffers/cache: 1363592 1732196
Swap: 5871748 69668 5802080
ayrımış hafıza miktarı yaklaşık 10 da bire düştü ve oldukça rahatladık.
iyi de biz bunu sürekli mi yapcaz, olmaz ki dimi?
o zaman linux hafıza kullanımını biraz daha karıştıralım
/proc/sys/vm/swappiness dosyasındaki değer sisteminizin disk mi hafıza mı kullanıcağınımı belirliyor.
burda ki değer 0 ila 100 arası alabilir ve varsayılanı 60 dır. yani uygulamalara ayrılan belki bir defa kullanıp bir daha kullanmıyacakları RAM için
korunma ihtimali başka bir uygulamaya verilemesine varsayılan olarak düşük.
o halde bu değeri değişirsek
sudo sysctl -w vm.swappiness=30
sistemimiz hafızayı programlar arasında geçişi daha çok, swap disk kullanımı daha az olacaktır.
Bu değerin tabi varsayılan 60 olmasının bir nedeni var. çok düşürürseniz mesela 20 nin altına cpu kullanımınız oldukça artıcaktır.
Tags: buffer cache, cache memory, Linux, swappiness, sync, sysctl