Geçtiğimiz günlerde işyerinde DB admin arkadaşın bir Oracle veritabanı sunucusun yazma hızının diğer oracle vertiabanı sunucularına göre daha düşük olduğunu söylemesiyle kendimi RAID konfigürasyonuyla uğraşırken buldum.
Tabi bu noktaya gelmeden önce, gerçekten bir yavaşlık olup olmadığını tespit etmek için, SAN, FCP/iSCSI bağlantısı, RAID yapısı gibi faktörlerin test sonucu etkilemediğinden emin olmak için biraz uğraşmak gerekti.
Birkaç benchmarking ve oracle tarafından sağlanan test araçları ile sunucuda gerçekten bir yavaşlık olduğunu tespit ettik.
Sunucu sistem kaynaklarının kullanımı ve disk I/O değerlerinde görünür bir problem yoktu. Dolayısıyla sıra RAID konfigürasyonuna gelmişti.
Sunucunun RAID writepolicy değeri writethrough olarak set edilmişti. O an yavaşlığın sebebi belli olmuştu.
İşin hikaye kısmını geçersek;
Writepolicy değerini writeback olarak ayarlayıp birkaç test yaptıktan sonra sunucunun yazma hızında ciddi anlamda bir fark olduğunu tespit ettik.
Peki, nedir bu writeback(WB) ve writethrough(WT).
Bu iki yazma caching yöntemi arasında temel olarak şöyle bir fark var:
- WT yönteminde veri bloğu RAID controller belleğine ve fiziksel diske aynı anda yazılır ve veri her iki alana da yazılana kadar yeni veri bloğu yazılmaya başlanmaz. RAID controller veriyi RAM hızlı bir şekilde yazmayı tamamlar ama verinin diske yazılması biraz daha zaman alacaktır.
- WB yönteminde ise veri bloğu ilk olarak RAID controller belleğine yazılır. Cache belleğinin dolması veya herhangi bir nedenle ihtiyaç olması durumunda veri diske yazılmaya başlanır. Diske veri yazma ihtiyacının çok sık olmamasından dolayı WB caching, WT caching’den daha yüksek bir yazma hızı sağlar.
Ama..
Cache’lenen data, kısa bir süre olsa da, sadece RAID controller RAM’inde bulunduÄŸu için, RAID kartı da pille beslenmiyorsa, enerji kesintisi esnasında o an cache’de bulunan data kaybolacaktır. Böyle bir durumda kaybolan verinin geri getirilebilmesi gibi bir imkanınız da olmayacaktır.
Sonuç olarak:
Daha yüksek hızla yazma ihtiyacınız varsa RAID writepolicy olarak writeback kullanabilirsiniz. Fakat  writeback kullanıyorsanız RAID kartlarınızın pillerine daha fazla önem vermeniz gerekecektir.