怎么查看mysql负载 查看mysql负载情况

mysql占用CPU一直在200%左右 怎么查是哪个占用的

先用 top 命令查看一下 如下图:

成都创新互联公司是专业的舒城网站建设公司,舒城接单;提供网站制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行舒城网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

就看画框的地方

load average 就是 CPU 的 Load

它表示 CPU 使用队列的长度 这个数字越小越好

这里有一个误区 那就是 CPU 利用率高 并不意味着负载就一定大

比方说有一个程序 它一直使用 CPU 进行运算 那么 CPU 的使用率可能逼近 100% 但是 CPU 的工作负载趋近于 1 如果同时执行两个这样的程序 则 CPU 的使用率还是逼近 100% 但是工作负载变成 2 了

也就是说 如果 CPU 的工作负载大 就代表 CPU 要在多个工作之间切换

怎么判断mysql读和写达到了瓶颈

mysql读和写达到瓶颈,可以通过如下方法:

1. 查看MySQL慢查询日志,是否有很多慢查询sql;

2. MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然会CPU占用过高,所以可以用top命令查看MySQL所在服务器的cpu使用情况,从而分析是否有瓶颈;

3. show processlist查看MySQL当前的执行状态,查看是否有大量的Sleep或Locked状态;

如何查看mysql负载

这个问题并不是转义方面的问题,不信的话可以使用\s的完整模式status试试:

sql = 'status'

还是一样会报错,这是因为\s属于mysql的系统命令,并不输入sql语句的范畴,所有使用python的mysqldb模块是获得不到结果的。

这样的话只能从python的os模块执行系统命令方面入手了

import os

os.system("mysql -u root -e status")

--------------

mysql Ver 14.15 Distrib 6.0.11-alpha, for portbld-freebsd7.2 (i386) using 5.2

Connection id: 66

Current database:

Current user: root@localhost

...

...

或者

print os.popen("mysql -u root -e status").read()

--------------

mysql Ver 14.15 Distrib 6.0.11-alpha, for portbld-freebsd7.2 (i386) using 5.2

Connection id: 67

...

...

怎样查看 mysql buffer pool hit

系统mysql的进程数

查看 mysql buffer pool hit

ps -ef | grep "mysql" | grep -v "grep" | wc –l

2.Slave_running

mysql show status like 'Slave_running';

如果系统有一个从复***务器,这个值指明了从服务器的健康度

3.Threads_connected

mysql show status like 'Threads_connected';

当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。

4.Threads_running

mysql show status like 'Threads_running';

如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当Threads_running值超过预设值时并且该值在5秒内没有回落时, 要同时监视其他的一些值。

5.Aborted_clients

mysql show status like 'Aborted_clients';

客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为异常中断连接可能表明了一些应用程序有问题。

6.Questions

mysql show status like 'Questions';

每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。

7.Handler_*

mysql show status like 'Handler_%';

如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的。

如果Handler_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler_rollback表明事务被回滚的查询数量。你可能想调查一下原因。

8.Opened_tables

mysql show status like 'Opened_tables';

表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。

9.Select_full_join

mysql show status like 'Select_full_join';

没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。

10.Select_scan

mysql show status like 'Select_scan';

执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应该是常量(即Select_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。

11.Slow_queries

mysql show status like 'Slow_queries';

超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。

12.Threads_created

mysql show status like 'Threads_created';

该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。

13.客户端连接进程数

shell mysqladmin processlist

mysql show processlist;

你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在"Locked"的状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。

14.innodb状态

mysql show engine innodb status\G;

该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。

(1)Pending normal aio reads: 该值是innodb io请求查询的大小(size)。如果该值大到超过了10—20,你可能有一些瓶颈。

(2)reads/s, avg bytes/read, writes/s, fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。

(3)Buffer pool hit rate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率

(4)inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。


本文标题:怎么查看mysql负载 查看mysql负载情况
网站链接:http://pwwzsj.com/article/doeocii.html