Ubuntu Server ortamlarında bellek yönetimi, sistem performansını doğrudan etkileyen kritik unsurlardan biridir. Swappiness parametresi, işletim sisteminin fiziksel RAM dolduğunda sanal belleğe (swap) ne kadar hızlı yöneleceğini belirleyen bir ayardır. Varsayılan değeri genellikle 60 olarak gelir ve bu değer, RAM kullanımının belirli bir seviyesine ulaşıldığında swap alanını devreye sokar. Sunucu yöneticileri için bu parametreyi optimize etmek, aşırı swap kullanımından kaynaklanan yavaşlamaları önlemek ve uygulamanın verimliliğini artırmak adına vazgeçilmezdir. Bu makalede, swappiness’in ne anlama geldiğini, etkilerini inceleyecek ve Ubuntu Server’da pratik ayar adımlarını detaylı olarak ele alacağız.
Swappiness, Linux çekirdeğinin bellek baskısı altında swap dosyasını veya bölümünü kullanma eğilimini 0 ile 100 arasında bir ölçekle ifade eder. Değer 0 olursa sistem swap’ı yalnızca zorunlu durumlarda kullanır; 100 ise RAM dolana kadar beklemeden agresif şekilde swap’a geçer. Ubuntu Server’larda varsayılan 60 değeri, dengeli bir yaklaşım sunsa da, bellek yoğun uygulamalar (örneğin veritabanı sunucuları veya web uygulamaları) için yetersiz kalabilir. Düşük swappiness (örneğin 10-20), RAM’i ön plana çıkararak disk I/O’sunu minimize eder ve yanıt sürelerini kısaltır.
Yüksek swappiness değerleri, sistemin erken swap kullanımına yol açarak disk tabanlı gecikmelere neden olur. Özellikle SSD olmayan HDD’lerde bu, throughput’u %50’ye varan oranlarda düşürebilir. Öte yandan, çok düşük değerler RAM tükenmesine ve OOM (Out of Memory) killer’ın süreçleri sonlandırmasına yol açabilir. Sunucu yöneticileri, sistem yüküne göre bu değeri test ederek ayarlamalıdır. Örneğin, 16 GB RAM’li bir sunucuda bellek kullanımını free -h ile izleyerek ideal değeri belirleyebilirsiniz.
Ubuntu Server’da mevcut swappiness değerini öğrenmek için terminalde cat /proc/sys/vm/swappiness komutunu çalıştırın. Bu, anlık değeri doğrudan gösterir. Kalıcı konfigürasyonu görmek için grep vm.swappiness /etc/sysctl.conf kullanın; yoksa varsayılan uygulanır. Bu adımlar, sistemin mevcut davranışını anlamak için ilk adımdır ve ayarlamadan önce baseline oluşturur. Değeri not alarak, değişiklik sonrası karşılaştırma yapabilirsiniz.
İzleme için vmstat 1 5 komutuyla si (swap in) ve so (swap out) sütunlarını takip edin. Yüksek değerler swap aktivitesini gösterir ve optimizasyon ihtiyacını işaret eder. Bu yöntemle, yük altında gerçek zamanlı veri elde edersiniz.
Sistem performansını derinlemesine incelemek için htop veya top gibi araçları kullanın; MEM% ve SWAP sütunlarını gözlemleyin. swapon --show ile swap alanının kullanımını detaylandırın. Grafiksel izleme için Prometheus ve Grafana entegrasyonu önerilir, ancak temel sunucularda sar -r (sysstat paketi yüklü ise) tarihsel verileri sağlar.
Bu araçlar, swappiness’in RAM-swap dengesini nasıl etkilediğini somut verilerle gösterir. Örneğin, yoğun trafik altında swap kullanımının %10’u aşması, değeri düşürme sinyalidir. Düzenli izleme, proaktif yönetim sağlar ve kesinti riskini azaltır.
Hızlı test için sudo sysctl vm.swappiness=10 komutunu kullanın. Bu, yeniden başlatma sonrası sıfırlanır. Değişikliği doğrulamak üzere cat /proc/sys/vm/swappiness ile kontrol edin. Bu yöntem, üretim öncesi denemeler için idealdir ve riski minimize eder. Uygulama sunucularında, örneğin Apache veya Nginx ile test ederek yanıt sürelerini ölçün.
Geçici ayar, sistem yükünü simüle etmek için stress --vm 4 --vm-bytes 80% (stress paketi yüklü) ile test edilebilir. Swap aktivitesinin azaldığını gözlemleyin.
/etc/sysctl.conf dosyasını sudo nano /etc/sysctl.conf ile açın ve sonuna vm.swappiness=10 satırını ekleyin. Değişikliği etkinleştirmek için sudo sysctl -p çalıştırın. Bu, boot sonrası kalıcı olur. Dosyayı yedeklemeyi unutmayın: sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak.
Özel ayarlar için /etc/sysctl.d/ dizinine 99-swappiness.conf gibi bir dosya oluşturun: echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf. Bu, ana dosyayı kirletmez ve modüler yönetim sağlar.
Ayar sonrası free -h ve vmstat ile doğrulayın. Reboot testi için sudo reboot yapın ve değeri kontrol edin. Geri almak için sysctl.conf’tan satırı silin veya sudo sysctl vm.swappiness=60 ile varsayılana dönün.
Uzun vadeli izleme, etkinliği kanıtlar. Örneğin, veritabanı sunucularında sorgu süreleri %20-30 kısalabilir.
Swappiness optimizasyonu, Ubuntu Server’ınızın bellek verimliliğini artırarak genel performansı yükseltir. Sistem özelliklerinize göre (RAM miktarı, disk tipi, iş yükü) değerleri iteratif testlerle ince ayarlayın. Düzenli bakım ve izleme ile stabilite sağlayın; bu yaklaşım, kurumsal ortamlarda kesintisiz hizmet için temel oluşturur.