Disk türü, disk sayısı ve RAID seviyenize göre efektif IOPS ve sıralı bant genişliğini hesaplayın. Linux VDS sunucunuzda doğrudan çalıştırabileceğiniz fio test komutlarını oluşturun.
1 disk arızasına dayanıklı.
Eşzamanlı ACID sorguları ve indeks aramaları
Yoğun sepet güncellemeleri ve PHP oturumları
RAID dizilerinde disk arızalarına karşı veri güvenliği (parity/mirroring) sağlamak için her yazma işlemi disk seviyesinde birden fazla I/O işlemine yol açar (RAID 1/10 için 2 I/O, RAID 5 için 4 I/O, RAID 6 için 6 I/O). Bu sebeple veritabanı gibi yazma yoğun sistemlerde RAID 5 yerine RAID 10 tercih edilir.
Linux VDS sunucunuza bağlanıp disk hızınızı test edin. --direct=1 parametresi OS bellek önbelleğini devre dışı bırakarak gerçek NVMe disk hızını ölçer.
fio --name=fio-randrw-4k --ioengine=libaio --direct=1 --rw=randrw --rwmixread=70 --bs=4k --size=2G --numjobs=4 --iodepth=32 --runtime=60 --time_based --group_reporting
fio --name=fio-seq-128k --ioengine=libaio --direct=1 --rw=read --bs=128k --size=4G --numjobs=2 --iodepth=16 --runtime=60 --time_based --group_reporting
fio --name=fio-latency-qd1 --ioengine=libaio --direct=1 --rw=randread --bs=4k --size=1G --numjobs=1 --iodepth=1 --runtime=30 --time_based --group_reporting
Modern bulut ve sanal sunucu (VDS) altyapılarında NVMe Gen4 diskler endüstri standardı haline gelmiştir. Geleneksel SATA SSD'ler maksimum 500-550 MB/s sıralı hız ve ~85.000 4K IOPS sınırına takılırken, Enterprise NVMe diskler 4.000+ MB/s hızlara ve 400.000+ IOPS değerlerine 20-50 mikrosaniye gibi son derece düşük gecikmelerle ulaşabilmektedir.
Disk yedekliliği sağlarken yazma performansı RAID mimarisine göre doğrudan etkilenir. Örneğin RAID 5'te her tekil yazma işlemi için önce eski veri ve eski eşlik okunur, ardından yeni veri ve yeni eşlik yazılır (4 I/O). Bu sebeple yoğun veritabanı (OLTP) çalıştıran sunucularda RAID 5 yerine 2x ceza oranına sahip RAID 10 veya doğrudan NVMe aynalaması (RAID 1) tercih edilmelidir.
Basit dd komutları genellikle Linux işletim sisteminin RAM tabanlı disk önbelleğini (page cache) ölçtüğü için yanıltıcı şekilde 10 GB/s gibi gerçekçi olmayan sonuçlar üretir. fioaracında kullanılan --direct=1 bayrağı önbelleği atlayarak doğrudan fiziksel veya sanal disk denetleyicisinin gerçek I/O yeteneğini ölçer.