|
INNODB_LOG_FILE 过于小,会直接触发CHECKPOINT,导致频繁IO请求; 多大是合适的?
========================================
root@127.0.0.1 : (none) 16:13:13> pager grep sequence
PAGER set to 'grep sequence'
root@127.0.0.1 : (none) 16:13:14>
root@127.0.0.1 : (none) 16:13:15> SHOW engine innodb STATUS\G SELECT sleep(60); SHOW engine innodb STATUS\G
Log sequence number 1450 485101299
1 row in set (0.09 sec)
1 row in set (1 min 0.01 sec)
Log sequence number 1450 505024667
1 row in set (0.00 sec)
root@127.0.0.1 : (none) 16:14:37> nopager
PAGER set to stdout
root@127.0.0.1 : (none) 16:14:43> select (505024667-485101299)/1024/1024;
+---------------------------------+
| (505024667-485101299)/1024/1024 |
+---------------------------------+
| 19.00040436 |
+---------------------------------+
1 row in set (0.00 sec)
========================================
Notice the log sequence number. That's the total number of bytes written to the transaction log.
我们在高峰期间采样可以得到,1分钟产生19M的日志; 我觉得这个INNODB LOG大小设成 19M*60=1140M 已经足够了;
60分钟是一个经验值, 你也可以适当调大,比如 500M,3个文件 ;这相对来说是安全的;
当然你也可以用以下命令来查看日志产生的大小:
show status like 'Innodb_os_log_written'; select sleep(60); show status like 'Innodb_os_log_written'; |
|