Linux sunucularda disk throughput testi, depolama birimlerinin veri okuma ve yazma hızlarını ölçmek için kritik bir işlemdir.
Linux sunucularda disk throughput testi, depolama birimlerinin veri okuma ve yazma hızlarını ölçmek için kritik bir işlemdir. Bu testler, sunucunun genel performansını değerlendirmede temel rol oynar; çünkü yavaş diskler, veritabanı sorgularını, dosya aktarımlarını ve uygulama yanıt sürelerini olumsuz etkiler. Kurumsal ortamda, yüksek trafikli web sunucuları veya büyük veri işleme sistemleri için disk throughput’unun optimize edilmesi, kesintisiz hizmet sunmanın anahtarıdır. Bu makalede, Linux tabanlı sunucularda disk throughput testini adım adım ele alacak, yaygın araçları inceleyecek ve pratik uygulamalarla rehberlik edeceğiz. Test sonuçlarını yorumlayarak, olası iyileştirmeleri belirleyebilirsiniz.
Disk throughput, saniyede okunan veya yazılan veri miktarını (MB/s veya GB/s cinsinden) ifade eder. Sıralı (sequential) ve rastgele (random) erişim türleri arasında ayrım yapmak önemlidir; sıralı testler büyük dosya kopyalamalarını, rastgele testler ise veritabanı gibi gerçek dünya senaryolarını simüle eder. Linux’ta bu testler, kernel modülleri ve kullanıcı alanı araçlarıyla gerçekleştirilir. Test öncesi, sunucunun boşta olması ve test dosyasının RAM’e sığmayacak kadar büyük (en az 10 GB) olması önerilir, böylece önbellek etkileri minimize edilir.
Throughput ölçümü, IOPS (Input/Output Operations Per Second) ile birlikte değerlendirilmelidir. Örneğin, SSD’lerde yüksek IOPS beklenirken, HDD’lerde throughput ön plandadır. Testler sırasında, blok boyutu (bs parametresiyle), derinlik (iodepth) ve okuma/yazma oranı gibi parametreleri ayarlayarak gerçekçi sonuçlar elde edebilirsiniz. Bu temel anlayış, test araçlarını etkili kullanmanızı sağlar.
dd, Linux’un yerleşik aracıdır ve kurulum gerektirmez. Sıralı okuma testi için şu komut kullanılır: dd if=/dev/zero of=testfile bs=1M count=10240 oflag=direct. Burada bs=1M blok boyutunu, count=10240 10 GB dosya boyutunu, oflag=direct önbelleği atlamayı sağlar. Yazma hızı saniyede MB cinsinden raporlanır. Okuma testi için: dd if=testfile of=/dev/null bs=1M iflag=direct. Sonuçları kaydetmek için time ile sarın: time dd .... Bu yöntem, hızlı başlangıç için idealdir ancak latency ve IOPS raporlamaz; sadece ham throughput verir. Test sonrası dosyayı silin: rm testfile.
fio, esnek bir I/O test aracıdır; EPEL deposundan kurulur: yum install fio veya apt install fio. Konfigürasyon dosyası ile karmaşık senaryolar tanımlanır. Örnek config (test.fio): [global] ioengine=libaio direct=1 size=1G runtime=60 [seqread] rw=read bs=128k iodepth=32 numjobs=4 filename=/tmp/testfile. Çalıştırma: fio test.fio. Bu, 4 iş parçacığıyla sıralı okuma yapar ve read: IOPS, BW=XXMB/s gibi detaylı çıktı verir. Rastgele yazma için rw=randwrite kullanın. fio, SSD/HDD ayrımını netleştirir ve raporları JSON olarak dışa aktarır.
hdparm, SATA/SSD’ler için DMA ve önbellek testleri yapar: hdparm -tT /dev/sda. /dev/sda diskinizi değiştirin; Cached ve Buffered read hızlarını gösterir. iostat ise sürekli izleme için uygundur: iostat -dx 1 10. %util sütunu kullanım oranını, r/s ve w/s IOPS’ları verir. Bu araçlar, fio gibi kapsamlı değil ama anlık teşhis için pratiktir. Kurumsal sunucularda cron job ile periyodik çalıştırabilirsiniz.
Test sürecini standartlaştırmak için şu adımları izleyin: 1) Sunucuyu yeniden başlatın ve yükü temizleyin (sync; echo 3 > /proc/sys/vm/drop_caches). 2) Diski tanımlayın (lsblk). 3) Test dosyasını oluşturun. 4) Araçları çalıştırın. 5) Sonuçları loglayın (> throughput.log). Benchmark’lar: SSD için 500+ MB/s sıralı okuma bekleyin; düşükse firmware güncelleyin.
Çıktılarda BW (bandwidth) değeri ana metriktir; %10 sapma normaldir. Düşük throughput’ta RAID konfigürasyonunu kontrol edin (cat /proc/mdstat). Rastgele IOPS düşükse, queue depth artırın (elevator=deadline ile). Grafik araçlar olmadan bile, birden fazla test ortalaması alın. Örnek: fio’da BW=250MB/s ise, ağ bant genişliğini sınırlamış olabilir; ethtool ile doğrulayın.
Throughput’u artırmak için: TRIM etkinleştirin (fstrim -v /), noatime mount ekleyin (/etc/fstab’a), ionice ile öncelik verin (ionice -c1 fio ...). LVM veya ZFS kullanıyorsanız, stripe boyutunu ayarlayın. Kurumsal olarak, testleri baseline olarak kaydedin ve aylık tekrarlayın. Bu yaklaşımla, disk bottleneck’larını proaktif yönetebilirsiniz.
Sonuç olarak, Linux sunucularda disk throughput testi, performans optimizasyonunun vazgeçilmez parçasıdır. Düzenli testler ve analizlerle, sistem kararlılığını artırabilir, maliyetleri düşürebilirsiniz. Pratik adımları uygulayarak kendi sunucunuzda hemen başlayın ve sonuçları izleyin.