原文:MySQL性能、监控与灾难恢复
监控方案:
up.time http://www.uptimesoftware.com/ 收费
Cacti http://www.cacti.net/
KDE System Guard(KSysGuard)
http://docs.kde.org/stable/en/kdebase-workspace/ksysguard/index.html
Gnome System Monitor
http://library.gnome.org/users/gnome-system-monitor/
Nagios http://www.nagios.org/
Sun Management Center
http://www.sun.com/software/products/sunmanagementcenter/index.xml
MySQL Enterprise Monitor
http://www.mysql.com/products/enterprise/monitor.html
Linux和UNIX系统监控工具
ps 系统进程
top cpu使用率排序的活动进程
vmstat 显示分页、内存、块传输、cpu活动相关
uptime 显示系统运行时间及1、5、15分钟系统平均负载
free 显示内存使用率
iostat 显示平均磁盘活动和处理器负载 centos: yum install sysstat
sar 系统活动报告、允许收集和报告各种系统活动
pmap 显示各种进程分别占用内存情况
mpstat 多处理器系统的cpu使用率 centos: yum install sysstat
netstat 网络活动
cron 定时进程执行系统(计划任务)
设置、读取系统变量
SHOW [GLOBAL | SESSION] VARIABLES;
SET [GLOBAL | SESSION] <variable_name> = <value>;
SET [@@global. | @@session. | @@] <variable_name>=<value>;
SHOW STATUS;
SHOW SESSION STATUS;
SHOW GLOBAL STATUS;
SQL 命令
SHOW INDX FROM <table> //显示指定表的索引基数统计信息
SHOW PLUGINS //显示所有已知插件列表
SHOW [FULL] PROCESSLIST //显示系统上运行的所有线程。
SHOW [GLOBAL | SESSION] STATUS //显示所有系统变量值
SHOW TABLE [FROM <db>] STATUS //显示给定数据库的表的详情
SHOW [GLOBAL | SESSION] VARIABLES //显示系统变量
为了查看较少的信息,可使用 like '<pattern>' 从句,like 语句中可使用标准MySQL正则表达式符号和控制符
SHOW ENGINE <engine_name> LOGS //显示指定存储引擎的日志信息
SHOW ENGINE <engine_name> STATUS //显示指定存储引擎状态信息
SHOW ENGINES //显示所有可用的存储引擎的列表及状态
SHOW BINARY LOGS //显示服务器二进制LOG列表
SHOW RELAYLOG EVENTS [IN '<log_file>'] [FROM <pos>] [LIMIT [<offset>, ] <row count>]
//仅限制查看Slave上的中继日志
SHOW MASTER STATUS //显示Master当前配置,显示当前二进制日志文件,文件位置等
SHOW SLAVE HOSTS //使用--report-host 选项显示连接到Master的slave列表
SHOW SLAVE STATUS //显示复制中slave的系统状态
MySQL GUI工具
MySQL Administrator
MySQL Query Browser
MySQL Migration Toolkit //用于自动从其他数据库系统上迁移数据
第三方工具
MySAR 系统活动报告
mytop 监控线程统计信息和Mysql常规性能统计信息
innotop 用于监控InnoDB性能和MySQL服务器
MONyog (MySQL Monitor and Advisor) mysql监控工具,主动监控方案
MySQL Benchmark套件 MySQL基准测试
./run-all-tests --server=mysql --cmp=mysql --user=root --socket=<socket>
测量数据库性能
EXPLAIN 分析关于如何执行SELECT语句的信息
ANALYZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE
#[ LOCAL | NO_WRUTE_TO_BINLOG ] 可防止命令写入二进制日志。
SHOW INDEX FROM TABLE
OPTIMIZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE <table_list>
#重构一个或多个表的数据结构,整理存储空间
SHOW FULL PROCESSLIST; 查看所有进程信息
数据库优化
1、谨慎而有效的使用索引
2、使用规范化(范式),但不要过头
3、使用正确的存储引擎
alter table t1 ENGINE=MEMORY;
提高性能的最佳实践
1、一切都很慢(检查问题)
* 检查硬件
* 改善硬件环境(如添加硬盘)
* 考虑将数据迁移到独立的磁盘上
* 检查操作系统配置是否正确
* 考虑将有些应用迁移到其他服务器上
* 考虑可以向外扩展的复制
* 优化服务器性能
2、慢查询
* 规范化数据库模式
* 使用EXPLAIN识别丢失的或不正确的索引
* 使用benchmark() 函数测试部分查询
* 考虑重写查询
* 对标准查询使用视图
* 启用Query Cache
3、慢应用
* 开启 Query Cache
* 考虑并优化存储引擎
* 确认是否是服务器或操作系统的问题
* 定义应用程序的基准,并将它与已知基准比较
* 检查内部(在应用程序 内部编写的)查询,并最大化他们的性能
* 分而治之——一次只检查一个部分
* 使用划分类分散数据
* 检查各个分区的索引
4、慢复制
* 确保网络运行状况最佳
* 确保服务器配置正确
* 优化数据库
* 限制 Master 的更新
* 将数据读取划分到多个Slave中
* 检查Slave 的复制延迟
* 定期维护日志(二进制日志和中继日志)
* 在带宽有限的情况下,使用压缩
* 使用包容性和排他性日志选项,最小化复制内容
数据引擎的优化和监控
MyISAM实用工具
* myisam_ftdump: 显示全文索引信息
* myisamchk : 执行MyISAM 表的分析(只能在脱机状态使用)
* myisamlog : 查看MyISAM 表的更改日志
* myisampack:压缩表以减少存储量
Key Cache
1、预加载Key Cache
#将salary表的索引加载到key cache中,ignore leaves: 表明只加载索引的非叶子节点,可通过修改表的方式从Key cache中移除相关索引
mysql> load index into cache salaries ignore leaves;
2、使用多个Key Cache
#使用耳机主缓存
mysql> set global emp_cache.key_buffer_size = 128*1024; //128K
mysql> cache index salaries in emp_cache;
mysql> set global emp_cache.key_buffer_size=0;
#确认一个二级缓存是否存在
mysql> select @@global.emp_cache.key_buffer_size;
重启而不丢失二级缓存配置的方式:将配置语句保存在一个文件中,使用mysql的配置文件的[mysqld]部分的 init-file=<patch_to_file>命令执行该文件
- MySQL 性能监控 4 大指标
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的 4 大指标. 文章系国内 ITOM 管理平台 OneAPM 编译呈现. MySQL 是什么? MySQL ...
- MySQL 性能监控4大指标——第二部分
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标. 第一部分介绍了前两个指标:查询吞吐量与查询执行性能.本文将继续介绍另两个指标:MySQL 连接与缓冲池 ...
- MySQL 性能监控4大指标——第一部分
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标. 第一部分将详细介绍前两个指标: 查询吞吐量与查询执行性能.文章系国内 ITOM 管理平台 OneAPM ...
- Mysql性能监控可视化
前言 操作系统以及Mysql数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或Mysql数据库的性能瓶颈,镜像你在Linux系统上使用top.i ...
- mysql性能监控相关
目录 一,获取mysql用户下的进程总数 二,主机性能状态 三,CPU使用率 四,磁盘IO量 五,swap进出量[内存] 六,数据库性能状态 七.querylog 八.mysqladmin的exten ...
- mysql性能监控软件pmm
具体配置操作步骤:1.在vmware或者virtualbox上安装centos镜像,可以选择阿里巴巴的镜像,下载速度快 centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设置 ...
- Mysql性能监控项及sql语句
推荐一款mysql监控软件MONyog 1.查询缓存: mysql> show variables like '%query_cache%'; 2.缓存在Cache中线程数量thread_cac ...
- Mysql 性能监控及调优
死锁概念: 两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象 1.监控死锁(innotop): (1) 启用 innodb_status_file 在/etc/my.cnf添加如 ...
- myawr : mysql性能监控
myawr以mysql instance 为单位,每隔一段时间进行采样,然后把数据保存到数据库,以便分析.目前myawr脚本收集的信息包括5个部分: 1 系统方面的:负载.cpu.io.网络.swap ...
- Mysql性能监控
show processlist; show global variables like 'max_allowed_packet'; // QPS计算(每秒查询数)show global status ...
随机推荐
- 美版SOLOWHEEL与盗版SOLOWHEEL-IPS独轮车终极PK【图】_厂商资讯_太平洋电脑网
http://g.pconline.com.cn/x/330/3304676.html
- String的Split方法的用法与要注意事项
转自:http://shukuiyan.iteye.com/blog/1058672 之前在http://shukuiyan.iteye.com/blog/507915文中已经叙述过这个问题,但是最近 ...
- SQLServer2012 分页语句执行分析
上一篇文章提到了,SQLServer2012在使用Offset,Fetch语句分页时,获取了大量不需要的数据,导致查询效率低的问题. 现在让我们来看看,究竟是什么导致SQLServer不能按需取数呢? ...
- cocos2D-x 3.5 引擎解析之--引用计数(Ref),自己主动释放池(PoolManager),自己主动释放池管理器( AutoreleasePool)
#include <CCRef.h> Ref is used for reference count manangement. If a classinherits from Ref. C ...
- 软考之CPU的寻址方式
在复习软考的时候,发现CPU的内部工作原理这一部分的内容挺重要的,现对CPU的寻址方式进行了一下总结.以下就来一一介绍一下. 我们都知道一个指令分为操作码和地址码两部分.操作码确定指令的类型.地址码确 ...
- php 禁止 URL 直接访问 php文件
通过判断访问来源来实现. $fromurl="http://www.111.com/index.php"; //只能从这个地址访问 if( $_SERVER['HTTP_REFER ...
- Kruskal(克鲁斯卡尔)
设有一个有n个顶点的连通网N={V,E},最初先构造一个只有n个顶点, 没有边的非 连通图 T={V, E}, 图中每个顶点自成一个连通分量. 当在E中选到一条具有最小权值的边时,若该边的两个顶点落在 ...
- 【NIO】dawn在buffer用法
网络编程,buffer它用于数据传输到网络上的集线器应用程序,不用说,一个重要的线.提到buffer我不能说什么零拷贝,buffer什么内存管理,在dawn在,基于directbuffer再次能够实现 ...
- linux设备驱动程序第四部分:从如何定位oops对代码的调试方法,驱动线
在一个我们谈到了如何编写一个简单的字符设备驱动程序,我们不是神,编写肯定会失败的代码,在这个过程中,我们需要继续写代码调试.在普通c应用.我们经常使用printf输出信息.或者使用gdb要调试程序,然 ...
- NYOJ 709(ZZULIOJ1481) 异 形 卵
题目描写叙述 我们探索宇宙,是想了解浩瀚星空的奥妙,但我们却非常少意识到宇宙深处藏匿的危急,它们无时无刻不紧盯着我们的地球.假设外星人拜訪我们,结果可能与哥伦布当年踏足美洲大陆不会有什么两样,这是历史 ...