可以先使用 uptime 命令查看 CPU 平均负载
指的是一段时间内 CPU 正在处理以及等待 CPU 处理的进程数之和的统计信息,也就是 CPU 使用队列的长度的统计信息.这个数字越小越好.
然后再用 vmstat 命令看下 CPU 是否饱和
这里面的 r 就是等待 CPU 的进程数,可以用来判定 CPU 是否饱和,当 r 值高于 CPU 数时,就意味着饱和了.
系统mysql的进程数
查看 mysql buffer pool hit
ps -ef | grep "mysql" | grep -v "grep" | wc –l
mysql show status like 'Slave_running';
如果系统有一个从复***务器,这个值指明了从服务器的健康度
mysql show status like 'Threads_connected';
mysql show status like 'Threads_running';
mysql show status like 'Aborted_clients';
mysql show status like 'Questions';
每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值.
mysql show status like 'Handler_%';
如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的.
如果Handler_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了.Handler_rollback表明事务被回滚的查询数量.你可能想调查一下原因.
mysql show status like 'Opened_tables';
mysql show status like 'Select_full_join';
没有主键(key)联合(Join)的执行.该值可能是零.这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能.
①.0.Select_scan
mysql show status like 'Select_scan';
执行全表搜索查询的数量.在某些情况下是没问题的,但占总查询数量该比值应该是常量(即Select_scan/总查询数量商应该是常数).如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题.
①.1.Slow_queries
mysql show status like 'Slow_queries';
超过该值(--long-query-time)的查询数量,或没有使用索引查询数量.对于全部查询会有小的冲突.如果该值增长,表明系统有性能问题.
mysql show status like 'Threads_created';
该值应该是低的.较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题.
shell mysqladmin processlist
mysql show processlist;
你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意.如果有一些长时间的查询,管理员可以被通知.你可能也想了解多少个查询是在"Locked"的状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的.一个用户正在等待一个数据库响应.
mysql show engine innodb status\G;
该语句产生很多信息,从中你可以得到你感兴趣的.首先你要检查的就是"从最近的XX秒计算出来的每秒的平均负载".
通过ps命令查看mysql进程即可,执行如下命令:
ps -aux|grep mysql
执行结果中看到了mysql进程,确定mysql正在运行.
查了一下资料,My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:
①. 配置my.ini文件(在安装目录,linux下文件名为my.cnf
查找到[mysqld]区段,增加日志的配置,如下示例:[mysqld]log="C:/temp/mysql.log"
log_slow_queries="C:/temp/mysql_slow.log"
long_query_time=1
log指示日志文件存放目录;
log_slow_queries指示记录执行时间长的sql日志目录;
long_query_time指示多长时间算是执行时间长,单位s.
Linux下这些配置项应该已经存在,只是被注释掉了,可以去掉注释.但直接添加配置项也OK啦.
B 日志文件是linux格式的文本,建议用ultraEdit打开,转换为dos格式查看(否则没有换行,看不懂的)
C 服务在启动状态下不能删除日志文件,否则就无法记录sql语句了.
D 不能用ultraEdit直接清除文件内容后保存,否则也记录不下来了.需要重启服务,如果ultraEdit保存了.bak,后记录到此文件中.
E 可以用notepad清除文本后保存,可以继续记录日志.(怪怪的,也不建议用)
如何实时查看mysql当前连接数?
①.、查看当前所有连接的详细资料:
、查看当前所有连接的详细资料:
mysqladmin -uroot -proot processlist
D:\MySQL\binmysqladmin -uroot -proot processlist
+-----+------+----------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
mysqladmin -uroot -proot status
D:\MySQL\binmysqladmin -uroot -proot status
打开my.ini,修改max_connections=100(默认为100).
今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL
总结:以后要快速定位错误,布置解决方案
或者用
show full processlist
看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked
如果进程过多,就把进程打印下来,然后查看
mysql -e 'show full processlist;' 111
查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因.
另外,修改mysql最大连接数的方法:
my.cnf 或者是 my.ini
在[MySQL(和PHP搭配之最佳组合)d]配置段添加:
max_connections = 1000
保存,重启MySQL(和PHP搭配之最佳组合)服务.
然后用命令:
MySQL(和PHP搭配之最佳组合)admin -uroot -p variables
输入root数据库账号的密码后可看到
| max_connections | 1000 |
查看MySQL连接数和当前用户Mysql连接数
先用管理员身份进入mysql提示符.
#mysql -uroot -pxxxx
mysql show processlist; 可以显示前100条连接信息 show full processlist; 可以显示全部.随便说下,如果用普通账号登录,就只显示这用户的.注意命令后有分号.
如果我们想查看这台服务器设置. #vi /etc/my.cnf
以上就是土嘎嘎小编为大家整理的怎么查看mysql进程数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!