一,获取mysql用户下的进程总数
ps -ef | awk '{print $1}' | grep "mysql" | grep -v "grep" | wc-1
二,主机性能状态
# uptime
[root@ ~]# uptime
三,CPU使用率
# top
或
# vmstat
四,磁盘IO量
# vmstat 或 # iostat
五,swap进出量[内存]
# free
六,数据库性能状态
(1)QPS(每秒Query量)
QPS = Questions(or Queries) / seconds
TPS = (Com_commit + Com_rollback) / seconds
mysql show status like 'Com_commit';
mysql show status like 'Com_rollback';
key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%
mysql show status like 'Key%';
innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%
mysql show status like 'innodb_buffer_pool_read%';
Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;
mysql show status like 'Qcache%';
mysql show status like 'open%';
Thread_cache_hits = (1 - Threads_created / connections ) * 100%
mysql show status like 'Thread%';
mysql show status like 'Connections';
mysql show status like '%lock%';
mysql show slave status
(10) Tmp Table 状况(临时表状况)
mysql show status like 'Create_tmp%';
(11) Binlog Cache 使用状况
mysql show status like 'Binlog_cache%';
mysql show status like 'innodb_log_waits';
当然你也可以使用一下开源监控软件进行监控
一,RRDTool
二,Nagios
三,MRTG
四,Cacti
本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程.
起手先造个实例
这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:
重启一下实例,加上 debug 参数:
我们来做一两个实验,说明 DBUG 包的作用:
先设置一个简单的调试规则,我们设置了两个调试选项:
d:开启各个调试点的输出
O,/tmp/mysqld.trace:将调试结果输出到指定文件
然后我们创建了一张表,来看一下调试的输出结果:
可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等
这样看还不够直观,我们增加一些信息:
来看看效果:
可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)
我们再增加一些有用的信息:
可以看到结果中增加了文件名和行号:
现在我们可以在输出中找一下统计表相关的信息:
可以看到 MySQL 今天这一节非常机智,直接执行了一个内置的存储过程来更新统计表.
沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:
本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来.MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等.
这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制.
以上就是土嘎嘎小编为大家整理的监控MySQL怎么监控相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!