MySQL性能诊断与调优

[MySQL性能诊断与调优]

LAMP 系统性能调优,第 3 部分: MySQL 服务器调优

http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-3.html

LoadRunner监控MySQL

http://www.docin.com/p-92272846.html

Advanced MySQL Performance Optimization

http://www.mysqlperformanceblog.com/files/presentations/UC2005-Advanced-MySQL-

Performance-Optimization.pdf

Improving MySQL Server Performance with Intel C++ Compiler

http://www.mysqlperformanceblog.com/files/presentations/LinuxWorld2005-Intel.pdf

MySQL性能诊断与调优相关工具:

http://www.mysqlperformanceblog.com/tools/

http://hackmysql.com/mysqlreport

Spotlight On MySQL:

http://www.quest.com/spotlight-on-mysql/

Mysql Administator

http://downloads.mysql.com/archives.php?p=MySQLAdministrationSuite

phpMyAdmin

http://www.phpmyadmin.net/home_page/index.php

mysql slow log分析工具

http://hackmysql.com/

http://www.willamowius.de/mysql-tools.html

http://code.google.com/p/mysql-log-filter/

http://myprofi.sourceforge.net/

mysql网络协议嗅探工具 - mysqlsniffer

http://hackmysql.com/mysqlsniffer

MySQL性能诊断与调优相关书籍:

《High Performance MySQL Second Edition》

优化mysql数据库性能的十个参数

(1)、max_connections:

允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 too many connections 错误。 默认数值是100,我把它改为1024 。

(2)、record_buffer:

每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128k),我把它改为16773120 (16m)

(3)、key_buffer_size:

索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8m),我的mysql主机有2gb内存,所以我把它改为 402649088(400mb)。

4)、back_log:

要求 mysql 能有的连接数量。当主要mysql线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

back_log 值指出在mysql暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的tcp/ip连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。

当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。

(5)、interactive_timeout:

服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 client_interactive 选项的客户。 默认数值是28800,我把它改为7200。

(6)、sort_buffer:

每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速order by或group by操作。默认数值是2097144(2m),我把它改为 16777208 (16m)。

(7)、table_cache:

为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。mysql对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512。

(8)、thread_cache_size:

可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 connections 和 threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80。

(9)mysql的搜索功能

用mysql进行搜索,目的是能不分大小写,又能用中文进行搜索

只需起动mysqld时指定 --default-character-set=gb2312

(10)、wait_timeout:

服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。

注:参数的调整可以通过修改 /etc/my.cnf 文件并重启 mysql 实现。这是一个比较谨慎的工作,上面的结果也仅仅是我的一些看法,你可以根据你自己主机的硬件情况(特别是内存大小)进一步修改。

时间: 2024-12-26 10:09:00

MySQL性能诊断与调优的相关文章

mysql性能的检查和调优方法

mysql性能的检查和调优方法 发布时间:2009 年 10 月 4 日 发布者: OurMySQL 来源:sudone.com   才被阅读:3,524 次    才1条评论 我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高.在遇到严重性能问题时,一般都有这么几种可能: 1.索引没有建好:2.sql写法过于复杂:3.配置错误:4.机器实在负荷不了: 1.索引没有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查. 在linux下执行 /usr/l

mysql 性能的检查和调优方法

在遇到严重性能问题时,一般都有这么几种可能:1.索引没有建好; 2.sql写法过于复杂; 3.配置错误; 4.机器实在负荷不了; 1.索引没有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查. 在linux下执行 /usr/local/mysql/bin/mysql -hlocalhost -uroot -p 输入密码,如果没有密码,则不用-p参数就可以进到客户端界面中. 看看当前的运行情况 show full processlist 可以多运行几次 这个命令可

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器.如何对服务器进行调优.如何从服务器监控中发现程序的性能问题. 如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了. 1     服务器的性能监控和分析 1.1      Linux服务器的性能指标监控和分析 1.1.1       通过vmstat深挖服务器的性能问题 1.1.2       如何通过mpstat 分析服务器的性能指标

使用DMV,诊断和调优DB性能。

使用DMV,诊断和调优DB性能. 查看等待统计信息,找出SQL Server慢在哪里: SELECT wait_type , SUM(wait_time_ms / 1000) AS [wait_time_s] FROM sys.dm_os_wait_stats DOWS WHERE wait_type NOT IN ( N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR', N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH

SQL Server超时诊断和调优

SQL Server超时诊断和调优 一. 超时分析 下面是用户访问一个Web站点的常见错误: 详细错误描述如下: [SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.] System.Data.SqlClient.SqlConnection.OnError(SqlExc

性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单.起码要达到“如何更好的使

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

PHP程序的性能分析与调优基础

1.xdebug xdebug是一个开发源代码的PHP程序调试器(即一个debug工具),可以用来跟踪.调试和分析PHP程序的运行状况. 安装与配置: 1)安装phpize: yum -y install  php-devel 2)安装xdebug: 下载(http://xdebug.org/).解压.上传到linux.执行: cd phpize ./configure  --enable-xdebug make && make install 3)配置: vi  /etc/php.ini

x86服务器中网络性能分析与调优 转

x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 [x86服务器中网络性能分析与调优] 那些事! >> 网络性能理论极限 网络数据包处理的性能指标,一般包括吞吐.延时.丢包率.抖动等. 数据包有大有小,数据包的大小对这些性能指标有很大的影响. 一般认为服务器处理能力很强,不是数据包处理的瓶颈,而通过物理线路能够传送数据包的最大速率,即线速(Wir