Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Web Sunucusu Disk I/O Optimizasyonu: Nginx ve LiteSpeed için tmpfs Kullanarak Geçici Dosyaları RAM'de Tutma

devnix

Üye
Katılım
14 Mart 2026
Mesajlar
20
Merhaba arkadaşlar, bugün sizlere özellikle yüksek trafikli sunucularınızda disk I/O yükünü hafifletecek ve sitenizin hızını gözle görülür şekilde artıracak bir optimizasyon yönteminden bahsedeceğim. Benim de kendi sunucularımda sıkça uyguladığım bu yöntem, Nginx ve LiteSpeed gibi web sunucularının oluşturduğu geçici cache dosyalarını, yavaş disk yerine hızlı RAM belleğinde tutmayı sağlıyor. Bu sayede önbellek okuma/yazma işlemleri inanılmaz hızlanıyor.

🎯 tmpfs Nedir ve Ne İşe Yarar?

tmpfs, Linux'ta geçici dosyaları depolamak için kullanılan ve tamamen RAM üzerinde çalışan bir dosya sistemidir. Disk I/O, özellikle SSD'lerde bile, RAM'e kıyasla çok daha yavaş kalır. Web sunucunuzun önbellek dosyalarını (örneğin, Nginx FastCGI cache veya LiteSpeed cache) buraya taşıdığınızda, sunucunuz bu dosyalara anında erişir. Şu ayara çok dikkat etmelisiniz: tmpfs'in içeriği sunucu yeniden başlatıldığında silinir. Bu nedenle sadece yeniden oluşturulması sorun olmayan, geçici veriler için kullanılmalıdır.

⚙️ Adım 1: tmpfs Bağlama Noktası Oluşturma

İlk olarak, RAM'deki bu özel alanı sunucumuzda bir dizin olarak bağlayacağız. Genelde /tmp zaten tmpfs olarak gelir, ama biz web cache'i için özel ve daha kontrollü bir alan oluşturacağız.

Terminal'e bağlanıp aşağıdaki komutla dizini oluşturalım:

Bash:
sudo mkdir -p /var/cache/ramdisk

Şimdi, bu dizini tmpfs olarak sistem açılışında otomatik bağlanacak şekilde /etc/fstab dosyasına eklememiz gerekiyor. Bu dosyayı düzenlerken çok dikkatli olun, yanlış bir giriş sistemin açılmamasına neden olabilir.

Bash:
sudo nano /etc/fstab

Dosyanın en altına aşağıdaki satırı ekleyin. Burada size=512M parametresi, bu alan için maksimum 512 MB RAM ayrılacağını belirtir. Sunucunuzun RAM miktarına göre bu değeri (örn: 1G, 2G) artırabilirsiniz.

Kod:
tmpfs   /var/cache/ramdisk   tmpfs   defaults,size=512M,noatime,nodiratime,mode=1777   0   0

Dosyayı kaydedip çıkın (Ctrl+X, sonra Y, sonra Enter). Değişikliği hemen etkinleştirmek için aşağıdaki komutu çalıştırın:

Bash:
sudo mount -a

Komutun hiçbir hata vermediğinden emin olun. Ardından, bağlama işleminin başarılı olup olmadığını kontrol edelim:

Bash:
df -h | grep ramdisk

Çıktıda /var/cache/ramdisk satırını ve "tmpfs" yazdığını görmelisiniz.

🔧 Adım 2: Nginx için FastCGI Cache Dizininin Taşınması

Eğer Nginx kullanıyorsanız ve FastCGI caching aktifse, cache dizinini yeni oluşturduğumuz ramdisk'e yönlendirelim. Öncelikle mevcut Nginx cache konfigürasyon dosyanızı bulun. Genellikle /etc/nginx/nginx.conf veya /etc/nginx/sites-available/siteniz dosyasındadır.

İçinde şuna benzer bir satır arayın:

NGINX:
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=MYCACHE:100m inactive=60m;

Buradaki disk yolu olan /var/cache/nginx kısmını, ramdisk içinde oluşturacağımız yeni bir alt dizine işaret edecek şekilde değiştirelim. Önce ramdisk içinde dizini oluşturalım:

Bash:
sudo mkdir -p /var/cache/ramdisk/nginx
sudo chown -R www-data:www-data /var/cache/ramdisk/nginx

Şimdi Nginx konfigürasyon satırını şöyle güncelleyin:

NGINX:
fastcgi_cache_path /var/cache/ramdisk/nginx levels=1:2 keys_zone=MYCACHE:100m inactive=60m;

Değişiklikten sonra Nginx'i test edip yeniden başlatalım:

Bash:
sudo nginx -t
sudo systemctl reload nginx

⚠️ Dikkat Edilmesi Gerekenler

Bu optimizasyon güçlü olsa da bazı noktalara dikkat etmezseniz sorun yaşayabilirsiniz:
1. RAM Boyutu: size= parametresi ile ayırdığınız alan, toplam RAM'inizi aşmamalı. Cache için ayırdığınız miktar, sunucunuzda çalışan diğer servislerin (MySQL, PHP-FPM) ihtiyacından çalmamalı.
2. Veri Kalıcılığı: RAM'deki veriler sunucu yeniden başlatılınca kaybolur. Bu, cache için sorun değildir (yeniden oluşturulur), ancak kalıcı olması gereken hiçbir veriyi buraya koymayın.
3. Swap Kullanımı: Eğer tmpfs için ayırdığınız alan dolmaya başlarsa ve RAM de tükenirse, sistem swap kullanmaya başlayabilir ki bu durum performansı tam tersine çok kötü etkiler. free -h komutu ile RAM kullanımınızı düzenli takip edin.

💡 LiteSpeed Kullanıcıları İçin

LiteSpeed Web Server kullanıyorsanız, işlem benzer. LiteSpeed'in cache dizini genellikle /tmp/lscache veya /usr/local/lsws/cachedata gibi bir yerdedir. Yapmanız gereken, LiteSpeed yapılandırma arayüzünde (WebAdmin Konsolu) veya doğrudan konfigürasyon dosyalarında (/usr/local/lsws/conf/httpd_config.xml) cache path'ini ramdisk'e işaret edecek şekilde değiştirmek. Örneğin, önce ramdisk'te bir dizin oluşturun:

Bash:
sudo mkdir -p /var/cache/ramdisk/lscache
sudo chown -R lsadm:lsadm /var/cache/ramdisk/lscache

Ardından LiteSpeed ayarlarında cache yolunu bu yeni dizin olarak güncelleyin ve servisi yeniden başlatın.

Sonuç olarak, bu optimizasyon özellikle disk I/O'nun darboğaz olduğu durumlarda sitenize ciddi bir nefes aldıracaktır. Benim sunucularda genelde kullandığım yöntem budur ve özellikle yoğun trafik anlarında farkı hissedersiniz.

Peki siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yönteminiz veya eklemek istediğiniz bir püf noktası var mı? Ya da takıldığınız bir yer olursa aşağıya yazmaktan çekinmeyin, beraber çözelim.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri