Mysql Tuning tools

来源:http://www.tuifei.com/2007/07/18/mysql-tuning-tools.htm

最近朋友的网站由于用户量上升及其他原因,使得mysql数据库性能出现严重问题,导致用户无法正常登录及使用。
为了找出性能问题的根结,Google了很多,最后从以下方面入手:
1. 配置mysql log_slow_queries 功能
输出哪些耗时的sql语句到日志中,使用mysqldumpslow去统计,从而确定是哪些应用的数据库查询影响了数据库性能。
log_slow_queries在my.cnf的配置,示例如下:
log_slow_queries
long_query_time = 2
log_long_format

mysqldumpslow 的使用,到日志所在目录,执行:
# mysqldumpslow ./www-slow.log

2. 利用mytop实时查看mysql的负载情况
mytop的最新版本为1.6,mytop-1.6.tar.gz的安装需要以下软件包支持:
DBI-1.58.tar.gz
TermReadKey-2.30.tar.gz
DBD-mysql-4.005 
此软件安装比较简单,可以参照readme即可。
一下是安装中常会出现的问题:
如果运行mytop时出现以下错误:
1) mysql.so: undefined symbol: DBIc_TRACE_LEVEL
基本上确定是DBI及DBD-mysql的版本不匹配造成的,
详见:
http://www.cpanforum.com/posts/5528

2) Segmentation fault
基本上确定是由于TermReadKey版本和mytop要求不匹配造成的,
详见:
http://www.webhostingtalk.com/archive/index.php/t-429329.html

在找到有问题的sql语句後,对my.cnf也做了相应的处理,主要是参考my-huge.cnf,内容如下,欢迎对此配置进行讨论:
# cat my.cnf

  1. [client]
  2. port            = 3306
  3. socket          = /tmp/mysql.sock
  4. [mysqld]
  5. port            = 3306
  6. socket          = /tmp/mysql.sock
  7. skip-locking
  8. key_buffer = 384M
  9. max_allowed_packet = 1M
  10. table_cache = 512
  11. sort_buffer_size = 4M
  12. read_buffer_size = 4M
  13. net_buffer_length = 64K
  14. read_rnd_buffer_size = 8M
  15. myisam_sort_buffer_size = 64M
  16. max_connections = 1500
  17. max_connect_errors = 1500
  18. query_cache_size = 64M
  19. thread_cache_size = 8
  20. thread_concurrency = 8

  21. #log_slow_queries
  22. #long_query_time = 5
  23. #log_long_format
  24. [mysqldump]
  25. quick
  26. max_allowed_packet = 16M
  27. [mysql]
  28. no-auto-rehash
  29. [isamchk]
  30. key_buffer = 256M
  31. sort_buffer_size = 256M
  32. read_buffer = 2M
  33. write_buffer = 2M
  34. [myisamchk]
  35. key_buffer = 256M
  36. sort_buffer_size = 256M
  37. read_buffer = 2M
  38. write_buffer = 2M
  39. [mysqlhotcopy]
  40. interactive-timeout

经过测试发现key_buffer及query_cache_size 对mysql性能影响较大。

另外,发现mysq在linux下高负载运行时,kswapd会经常出来捣乱,致使情况变得更糟。系统load average会急剧升高,直至mysql没有任何响应。
对此感兴趣的可以搜索 mysql+kswapd
如以下讨论:
http://www.ale.org/archive/ale/ale-2001-09/msg00149.html
http://bugs.mysql.com/bug.php?id=28751

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值