InnoDB en ideal log file size belirleme.

InnoDB kullandığınız yerlerde en ideal log file size ayarlamak için aşağıdaki gibi bir test yapabilirsiniz.

Bu işlem mySQL’de InnoDB veritabanlarının 1 dakikada aşağı yukarı ne kadar log yazdığını görüyoruz.

Bu işlemi veritabanının en yoğun zamanlarında yapmanız önerilir.

Öncelikle istediğimiz veriyi alabilmemiz için pager komutu ile sequenceleri yakalıyoruz.

mysql> pager grep sequence
PAGER set to 'grep sequence'

Sonra aşağıdaki gibi show innodb status çıktısını 1 dakika aralıklarla çalıştırıp başlangıç ve bitişte ne kadar log yazmış onu buluyoruz.

mysql> show engine innodb status\G select sleep(60); show engine innodb status\G

Log sequence number 156081984562
1 row in set (0.00 sec)

1 row in set (59.99 sec)

Log sequence number 156092992419
1 row in set (0.00 sec)

Daha sonra pager i tekrar sıfırlıyoruz.

mysql> pager
Default pager wasn't set, using stdout.

Şimdi aradaki farklı Mb cinsinden buluyoruz.

mysql> select ( 156092992419 - 156081984562 ) / 1024 / 1024 as mb;
+-------------+
| mb          |
+-------------+
| 10.49791050 |
+-------------+
1 row in set (0.00 sec)

Buradan anladığımız dakikada 10 mb veri yazılmış.

Saatlik bazda bakarsak 60*10=600MB.

innodb_log_file_size parametresini 600-700 Mb arası yapabiliriz.

Yukarıda yaptığımız testi mySQL 5.0 dan sonra SHOW GLOBAL STATUS komutu ile görebiliriz.

Bu komut çıktısındaki Innodb_os_log_written parametresinden de elde edebiliriz.

mysql> SHOW GLOBAL STATUS like '%Innodb_os_log_written%';
+-----------------------+-----------+
| Variable_name         | Value     |
+-----------------------+-----------+
| Innodb_os_log_written | 632924672 |
+-----------------------+-----------+
1 row in set (0.00 sec)

Posted in Linux, MySQL on November 16th, 2012 by Kürşad DARA | | 0 Comments