MySQL veritabanı yönetiyorsanız en iyi verimi alabilmek için “performance tuning” iÅŸlerine oldukça zaman harcamışsınızdır.
Yapılan parametrik değişikliklerin MySQL veritabanınızın performansını ne kadar değiştirdiğini veya iyileştirip iyileştirmediğini veritabanınızı kullanan uygulamalarınızın hızından net olarak kestiremeyebilirsiniz.
İşte SYSBENCH bu özelliği ile öne çıkan bir benchmark aracı.
Sysbench, cpu, bellek, disk i/o gibi alışılagelmiş değerler ile ilgili testler yaptığı gibi tüm bu parametrelerden ve ayrıca veritabanı konfigürasyonundan doğrudan etkilenen MySQL veritabanının performansı ile ilgili de testler gerçekleştirebiliyor.
Uygulamanın resmi web sitesine sysbench.sourceforge.net adresinden erişilebilir.
Kaynak kodu web sitesinden indirdikten sonra derleyip kuruyorsunuz.
Her kaynaktan kurma işleminde yapılan ./configure; make; make install kurulum için yapmanız gereken tek şey (ama tabi pratikte bu böyle).
Gerekli olacak gcc, make gibi development paketlerinin haricinde başka paketlere de ihtiyaç duyabilirsiniz. Ayrıca kullandığınız Linux/Unix dağıtımına göre ./configure kullanırken parametre girmeniz gerekebilir.
Kurulum aşamasında işler pek yolunda gitmezse autogen.sh betiğini kullanmayı da bir deneyin.
Kurulum sonrasında veritabanınızda performans testleri yapmaya başlayabilirsiniz.
- sysbench –test=oltp –mysql-user=kullanici –mysql-password=sifre –mysql-db=test –mysql-host=localhost –mysql-table-engine=myisam –mysql-socket=/var/lib/mysql/mysql.sock –oltp-table-size=100000 prepare
- sysbench –test=oltp –num-threads=16 –max-requests=100000 –oltp-table-size=100000 –mysql-socket=/var/lib/mysql/mysql.sock –mysql-db=test –oltp-read-only run
Yukarıdaki komutları kullanarak testdb isimli veritabanınızda teste başlayabilirsiniz.
Komuttan da anlaşılacağı gibi ilk komut test için gerekl bench’i hazırlıyor ikinci komut ise testi çalıştırıyor.
Birinci komut seçilen veritabanında varsayılan olarak sbtest isimli bir table oluşturuyur ve yine varsayılan olarak 10000 satırlık bir rasgele veri yığını oluşturuyor. İsterseniz bu değerleri parametrik olarak değiştirebiliyorsunuz. Örneği bu testte 100000 transaction gerçekleştirilecek.
İkinci komut ise bu yığından 100000 adet select işlemi yapıyor.
Test iÅŸlemleri bittikten sonra oluÅŸturulan tabloyu elle silebilir veya
- sysbench –test=oltp –mysql-user=kullanici –mysql-password=sifre –mysql-db=test –mysql-host=localhost –mysql-table-engine=myisam –mysql-socket=/var/lib/mysql/mysql.sock –oltp-table-size=100000 cleanup
komutunu kullanabilirsiniz.
Tool’un dokümantasyonu çok yeterli olmamakla birlikte, biraz zaman harcayarak iÅŸinize yarayacak test parametrelerini oluÅŸturmanız mümükün.
Küçük bir nokta.. Dokümantasyonda
sysbench –test=oltp –mysql-table-type=myisam …..
şeklinde bir yazımla karşılaşacaksınız.
Fakat –mysql-table-type ÅŸeklinde bir parametre olmadığını söyleyen bir hata alacaksınız.
Olması gereken parametre, yukarıdaki örnekte de görüldüğü gibi –mysq-table-engine olmalı.
Karşılaşırsanız şaşırmayın..
Son olarak, mysql performans ayarları ile çok uğraşıyorsanız, Sysbench çok sok kullanacağınız bir araç olacaktır.