mysql性能优化之Tuning-primer.sh的使用

Tuning-primer.sh  检测mysql当前的运行情况,产生报告,并给出优化建议。

下载及使用:
1.wget http://www.day32.com/MySQL/tuning-primer.sh

2.将tuning-primer.sh拷贝到my.cnf同级目录
3.chmod  +xtuning-primer.sh 执行:sh tuning-primer.sh

[[email protected] software]#./tuning-primer.sh all

Using login values from ~/.my.cnf

- INITIAL LOGIN ATTEMPT FAILED -

Testing for stored webmin passwords:

NoneFound

Could not auto detect login info!

Found potential sockets:/home/mysql/data/mysql.sock

Using: /home/mysql/data/mysql.sock

Would you like to provide a differentsocket?: [y/N] n

Do you have your login handy ? [y/N] : y

User: root

Password: [email protected]

Would you like me to create a ~/.my.cnffile for you? [y/N] : n

-- MYSQL PERFORMANCE TUNING PRIMER --

- By: Matthew Montgomery -

MySQL Version 5.5.17-log x86_64

Uptime = 5 days 18 hrs 32 min 31 sec

Avg. qps = 0

Total Questions = 106649

Threads Connected = 1

Server has been running for over 48hrs.

It should be safe to follow theserecommendations

To find out more information on how each ofthese

runtime variables effects performancevisit:

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html

Visithttp://www.mysql.com/products/enterprise/advisors.html

for info about MySQL‘s EnterpriseMonitoring and Advisory Service

# 慢查询检查

SLOW QUERIES

The slow query log is enabled.

Current long_query_time = 3.000000 sec.

You have 0 out of 106670 that take longerthan 3.000000 sec. to complete

Your long_query_time seems to be fine

#二进制日志检查

BINARY UPDATE LOG

The binary update log is enabled

# 工作线程检查

WORKER THREADS

Current thread_cache_size = 64

Current threads_cached = 4

Current threads_per_sec = 0

Historic threads_per_sec = 0

Your thread_cache_size is fine

# 链接检查

MAX CONNECTIONS

Current max_connections = 2000

Current threads_connected = 1

Historic max_used_connections = 5

The number of used connections is 0% of theconfigured maximum.

You are using less than 10% of yourconfigured max_connections.

Lowering max_connections could help toavoid an over-allocation of memory

See "MEMORY USAGE" section tomake sure you are not over-allocating

# innodb状态检查

INNODB STATUS

Current InnoDB index space = 80 K

Current InnoDB data space = 224 K

Current InnoDB buffer pool free = 99 %

Current innodb_buffer_pool_size = 4.00 G

Depending on how much space your innodbindexes take up it may be safe

to increase this value to up to 2 / 3 oftotal system memory

# 内存状态检查

MEMORY USAGE

Max Memory Ever Allocated : 4.30 G

Configured Max Per-thread Buffers : 4.21 G

Configured Max Global Buffers : 4.29 G

Configured Max Memory Limit : 8.50 G

Physical Memory : 7.68 G

Max memory limit exceeds 90% of physicalmemory

# myisam 键值状态检查

KEY BUFFER

Current MyISAM index space = 105 K

Current key_buffer_size = 256 M

Key cache miss rate is 1 : 2

Key buffer free ratio = 81 %

Your key_buffer_size seems to be fine

#  查询缓存检查

QUERY CACHE

Query cache is supported but not enabled

Perhaps you should set the query_cache_size

# 排序操作检查

SORT OPERATIONS

Current sort_buffer_size = 1 M

Current read_rnd_buffer_size = 512 K

Sort buffer seems to be fine

# 表链接检查

JOINS

Current join_buffer_size = 132.00 K

You have had 0 queries where a join couldnot use an index properly

Your joins seem to be using indexesproperly

# 文件限制检查

OPEN FILES LIMIT

Current open_files_limit = 65535 files

The open_files_limit should typically beset to at least 2x-3x

that of table_cache if you have heavyMyISAM usage.

Your open_files_limit value seems to befine

# 变缓存检查

TABLE CACHE

Current table_open_cache = 4220 tables

Current table_definition_cache = 400 tables

You have a total of 55 tables

You have 56 open tables.

The table_cache value seems to be fine

# 临时表检查状态检查

TEMP TABLES

Current max_heap_table_size = 16 M

Current tmp_table_size = 16 M

Of 53466 temp tables, 0% were created ondisk

Created disk tmp tables ratio seems fine

# 表扫描检查

TABLE SCANS

Current read_buffer_size = 256 K

Current table scan ratio = 52589 : 1

You have a high ratio of sequential accessrequests to SELECTs

You may benefit from raisingread_buffer_size and/or improving your use of indexes.

# 表锁检查

TABLE LOCKING

Current Lock Wait ratio = 1 : 91130

Your table locking seems to be fine

和 mysqltunner.sql  相比 tuning-primer的检测的更详细,主要是针对innodb的检测,

Mysqltunner.sql 不能对innodb进行检查的。

时间: 2024-10-14 21:08:51

mysql性能优化之Tuning-primer.sh的使用的相关文章

MySQL性能优化(二)

1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样) insert into t3 select * from t1; --t1的数据全部拿过来,注意是表结构一致才select* ,否则选择相应的的字段列插入 create table t1( id int unsigned not null auto_increment primary key,

mysql性能优化-索引与优化

http://hongge.blog.51cto.com/ 一.MySQL性能优化之-影响性能的因素 1.商业需求的影响 不合理需求造成资源投入产出比过低,这里我们就用一个看上去很简单的功能来分析一下. 需求:一个论坛帖子总量的统计,附加要求:实时更新 从功能上来看非常容易实现,执行一条SELECT COUNT(*) from 表名 的Query 就可以得到结果.但是,如果我们采用不是MyISAM 存储引擎,而是使用的Innodb 的存储引擎,那么大家可以试想一下,如果存放帖子的表中已经有上千万

redmine在linux上的mysql性能优化方法与问题排查方案

iredmine的linux服务器mysql性能优化方法与问题排查方案 问题定位: 客户端工具: 1. 浏览器inspect-tool的network timing工具分析 2. 浏览器查看 response header, 分析http server 与 web server.       服务器工具:   0. nmon 查看各类系统负载, rrdtool 查看网络状况.   1. uptime看cpu负载;    free看内存;  mem ; cat /proc/meminfo以及  i

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

MySQL 性能优化的最佳20多条经验分享

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的                    事,而这更是我们程序员需要去关注的事情. 当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语                句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的M

MySQL性能优化的最佳20+条经验

http://www.pythonclub.org/mysql/optimize-20-tips 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存

MySQL · 性能优化 · MySQL常见SQL错误用法

前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势.越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来.但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况.阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题.现将<ApsaraDB专家诊断报告>中出现的部分常见SQL问题总结如下,供大家参考. 常见SQL错误用法 1. LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如

mysql 性能优化方案 (转)

网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用 status信息对mysql进行具体的优化. mysql> show global status; 可以列出mysql服务器运行各种状态值,另外,查询mysql服务器配置信息语句: mysql> show variables; 一

?二十种实战调优MySQL性能优化的经验

?http://www.searchdatabase.com.cn/showcontent_58391.htm [为查询缓存优化你的查询] 像 NOW() 和 RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存,因为这些函数的返回是会不定的易变的.所以,你所需要的就是用一个变量来代替MySQL的函数,从而开启缓存. [EXPLAIN 你的 SELECT 查询] 使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的. [当只要一行数据时使用 LIMIT 1] 当

20多条MySQL 性能优化经验分享

当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 这里最主要