mongodb系列~ mongodb慢语句(3)
简介: 关于mongodb慢日志是如何收集
一 mongodb慢日志的开启
1 直接设置参数,不重启服务:db.setProfilingLevel(1)
2 添加启动参数,重启服务:添加profile=1
二 mongodb慢日志参数说明
查看 profiing当前级别 :db.getProfilingLevel()
0 默认不开启记录
1 开启记录慢日志(默认>=100ms)
2 记录所有命令
三 如何调整慢日志记录参数
1 直接设置参数 db.setProfilingLevel( level , slowms )
2 启动项配置文件添加参数 slowms=
我们线上设置的是12000 也即是12S ,这样收集的sql大大减少
四 编写收集脚本,进行远程收集
1 创建相应的表
CREATE TABLE `mongo_slow_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(20) DEFAULT NULL,
`delay` varchar(10) DEFAULT NULL,
`sqltime` datetime DEFAULT NULL,
`sqltext` text,
`createtime` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
ENGINE=InnoDB AUTO_INCREMENT=22420 DEFAULT CHARSET=utf8mb4;
2 编写相应的shell脚本
function jilu(){
IP=`/sbin/ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{ print $1}'`
result=`awk '$NF~/ms$/{print $1,$NF}' $1|sed 's/ms//g'|awk '$2 > 12000 {print $1,$2}'`
if [ "$result" ];
then
echo "$result" > /home/a.txt
cat /home/a.txt |while read line ;
do echo $line ;
yanshi=`echo $line|awk '{print $2}'`
tiaojian=`echo $line|awk '{print $1}'`
jieguo=`cat $1|grep $tiaojian`
jieguo1=`echo $jieguo|sed "s/"\'"/"\""/g"`
shijian=`echo $jieguo1|sed "s/"\'"/"\""/g"|awk '{print $1}'`
shijianchuli=`echo "$shijian"|cut -d '.' -f 1|sed 's/T/ /g'`
echo -e "insert into mongo_slow_log(ip,delay,sqltime,sqltext) values('$IP','$yanshi','$shijianchuli','$jieguo1')"|/usr/local/mysql/bin/mysql -u -p -h --default-character-set=utf8 l
done
else
echo -e "insert into mongo_slow_log(ip,delay,sqltext) values('$IP','empty','empty')"|/usr/local/mysql/bin/mysql -u -p --default-character-set=utf8
}
riqi=`date -d yesterday +%F`
file=`find /data/mongo/shard1/ -name "shard1.log.$riqi*" -exec iconv -f CP850 -t utf-8 {} > /home/ops/result.txt \;`
jilu "/home/ops/result.txt"
脚本核心思想:mongo会将慢日志记录在shard文件中,当天进行脚本切割并过滤出指定sql即可,各位可自行修改(PS:本人脚本很烂,哈哈)
五 进行分析
用explain进行分析(explain的详细本文不会详细讲解,以后会有专门说明)
六 收集目的
不论是何种数据库,对慢日志语句的收集都非常重要,比如研发接口相应超时,数据库本身性能消耗很高,都可以根据慢日志进行分析。
mongodb系列~ mongodb慢语句(3)的更多相关文章
- mongodb系列~mongodb慢语句(2)
一简介:今天遇到一个慢日志的排查和解决过程 二 版本:3.0.6 三 架构:分片集群 四 具体过程 1 程序响应很慢,具体日志寻找定点sql(mongodb慢日志记录在log日志里) awk '$NF ...
- mongodb系列~ mongodb慢语句(1)
1 简介:讲讲mongo的慢日志2 慢日志类型 query insert update delete 3 查看慢日志 1 db.system.profile.find() 慢日志总揽 2 d ...
- mongodb系列~mongodb的副本集(1)
一 简介: mongodb副本集 二 复制方式: 1 全量复制 2 增量复制三 同步检测过程: 一 正常情况下: 1 master执行语句,并将所有的修改数据库的操作以日志Oplog ...
- mongodb系列~mongodb定时删除数据
一 简介:本文介绍创建自动删除数据的TTL索引 二 目的 定时删除数据三 创建方法 db.collection.createIndex(keys, options) options: ex ...
- mongodb系列~mongodb集群介绍与管理
mongodb 集群维护1 简介 谈谈mongodb的集群架构2 常用的维护命令 1 查看状态 sh.status() 1 version 2 shards: ...
- mongodb系列~mongodb数据迁移
一 简介:今天来聊聊mongo的数据迁移二 迁移 1 具体迁移命令 nohup mongodump --port --db dbname --collection tablename --qu ...
- mongodb系列之-治理mongodb->db.currentOp()
mongodb系列之-管理mongodb->db.currentOp() 管理mongodb->db.currentOp(), 绝对是原创... 今天公司的dba在内部分享了针对mysql ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列二
简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql ...
随机推荐
- C/C++ 各种进制的表示方法/ 进制前缀
C/C++ 各种进制的表示方法/ 进制前缀 来源 https://blog.csdn.net/qq_38282836/article/details/81784112 在C/C++ 中天然的支持除10 ...
- Android自动化测试探索
Android自动化测试探索 前言 通常来说,我们开发完成产品之后,都是由测试组或者是我们自己点一点,基本上没有问题了就开始上线.但是,随着时间的堆叠,一款产品的功能也越来越多.这时,我们为了保证产品 ...
- bzoj1691/luogu2869 [USACO07DEC]挑剔的美食家 (STL::set)
给牛和草都按价格排序,然后贪心地把草给牛(就是尽量给满足价格的.要求的美味度最高但不超过这个草的美味度的牛) 这个可以用一个平衡树来维护,偷懒直接用multiset了 #include<bits ...
- java 反射 子类泛型的class
很早之前写过利用泛型和反射机制抽象DAO ,对其中获取子类泛型的class一直不是很理解.关键的地方是HibernateBaseDao的构造方法中的 Type genType = getClass() ...
- Array 新增加的一些API用法
es6中新增加了数组的一些用法,基本上是看例子就可以大致明白具体意思. Array.from Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括 ES6 新增的数 ...
- spread与react
我们写react组件的过程中会遇到这个 我们知道react中的{},浏览器会知道说是以js的形式进行解析出来.那么怎么解析...props呢? 这个就涉及到es6中的扩展运算符了,我们先看下面的一些运 ...
- activeMQ点对点
摘要: ActiveMQ 点对点消息 Point-to-Point 是一对一 创建消息生产者 /** * 点对点消息生产者 * * @author Edward * */ public ...
- 2018.10.2浪在ACM 集训队第三次测试赛
2018.10.26 浪在ACM 集训队第三次测试赛 今天是暴力场吗???????可怕 题目一览表 来源 考察知识点 完成时间 A 1275 珠心算测试 NOIP 普及组 2014 暴力??? 201 ...
- Struts2的安装
安装Struts 2 ,并开发一个简单 Model 1.下载Struts 2 在Struts 2 官网下载:http://struts.apache.org ,下载 struts-2.3.16.3-a ...
- Deploy to container Plugin插件发布配置
参数详解: 第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.wa ...