近期发现MySql占用CPU较高,长期保持在35%-80%之间,想做一些优化,先查了一些优化的策略,下述提到的方法暂未实施求证,仅作参考。
[b]关于MySql 5.0.20及其以前版本性能跳水的说法[/b]
参考:http://tweakers.net/reviews/649/7/database-test-sun-ultrasparc-t1-vs-punt-amd-opteron-mysql-vs-punt-postgresql.html
下图显示,当并发越过30时,MySql性能大副下降,先不深究其原因,将其列为性能瓶颈的参考因素。比较简单的方法是升级为MySql 5.0.30,这个版本已经修复了性能跳水的问题。
[img]http://tweakers.net/ext/i.dsp/1153018093.png[/img]
[b]Robbin提供的性能优化参数[/b]
Robbin在[url=http://robbin.iteye.com/blog/461382]《MySQL InnoDB性能调整的一点实践》[/url]一文中提到:
[align=center]innodb_flush_method=O_DIRECT是必须的,而innodb_log_file_size也不宜太大。[/align]
其/etc/my.cf配置文件参数如下
memlock
innodb_buffer_pool_size = 2G
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
innodb_flush_method=O_DIRECT
innodb_buffer_pool_size官方推荐使用物理内存的50%-80%
[b]选择数据库引擎的问题:innordb还是myisam[/b]
参考:http://www.cnblogs.com/niniwzw/archive/2008/06/03/1213112.html
对于我而言,目前使用的数据库引擎为innordb。文中提到:[b]只是做简单的查询,更新,删除,那么用myiasm是最好的选择。[/b]
[b]关于MySql 5.0.20及其以前版本性能跳水的说法[/b]
参考:http://tweakers.net/reviews/649/7/database-test-sun-ultrasparc-t1-vs-punt-amd-opteron-mysql-vs-punt-postgresql.html
下图显示,当并发越过30时,MySql性能大副下降,先不深究其原因,将其列为性能瓶颈的参考因素。比较简单的方法是升级为MySql 5.0.30,这个版本已经修复了性能跳水的问题。
[img]http://tweakers.net/ext/i.dsp/1153018093.png[/img]
[b]Robbin提供的性能优化参数[/b]
Robbin在[url=http://robbin.iteye.com/blog/461382]《MySQL InnoDB性能调整的一点实践》[/url]一文中提到:
[align=center]innodb_flush_method=O_DIRECT是必须的,而innodb_log_file_size也不宜太大。[/align]
其/etc/my.cf配置文件参数如下
memlock
innodb_buffer_pool_size = 2G
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
innodb_flush_method=O_DIRECT
innodb_buffer_pool_size官方推荐使用物理内存的50%-80%
[b]选择数据库引擎的问题:innordb还是myisam[/b]
参考:http://www.cnblogs.com/niniwzw/archive/2008/06/03/1213112.html
对于我而言,目前使用的数据库引擎为innordb。文中提到:[b]只是做简单的查询,更新,删除,那么用myiasm是最好的选择。[/b]