mongodb清除连接和日志的正确方法分享


Posted in MongoDB onSeptember 15, 2021

前言

最近在做并发,服务器卡死了。

感觉是pymongo未能完全close掉和mongodb创建的tcp连接,并且在mongo连接未自动释放前进行高频连接,导致连接数爆满造成的。

所以对建立的连接进行清除,以此记录并做分享。

查看MongoDB的连接信息

db.serverStatus().connections

current 当前连接数

available 可用连接数

connection.totalCreated 创建到服务器的所有传入连接的计数。此数字包括已关闭的连接。

mongodb清除连接和日志的正确方法分享

清除所有当前的currentOp:

var ops = db.currentOp().inprog;
for(i = 0; i < ops.length; i++){
        var opid = ops[i].opid;
        db.killOp(opid);
        print("Stopping op ... #"+opid)
};

上面的命令无法关闭current连接

关闭current的方法一:

查看所有current的tcp连接:

netstat -nat | grep ‘27017'

mongodb清除连接和日志的正确方法分享

查看指定端口的进程号

netstat -tpna | grep :35522

mongodb清除连接和日志的正确方法分享

然后kill掉该进程

kill -9 14335

再到db-shell中查看,已经关闭一个current了。

mongodb清除连接和日志的正确方法分享

这种方式关掉的tcp连接状态会变成TIME_WAIT,端口依旧被占用,因为ACK是由我们主动关闭发出的。

不过还好的是一般等一段时间链接自动会被释放,端口也不再被占用了。

mongodb清除连接和日志的正确方法分享

可以看到35522和35524都已经被释放。

关闭current的方法二:

如果你知道是由哪个程序连接的mongodb,比如python程序

那么可以使用命令查看程序端口占用情况

ps -aux | grep python

mongodb清除连接和日志的正确方法分享

然后kill掉对应的python程序,run.py,也能完成current的清除

mongodb清除连接和日志的正确方法分享

批量清除指定程序:

ps -efww|grep -w "run.py" |grep -v grep|cut -c 9-15|xargs kill -9

日志

查看日志位置

cat /etc/mongod.conf

日志文件过大,不能通过vim查看,用tail查看最后100行

tail -n 100 mongo.log

不需要重启服务,重新开启一个新日志文件的方法

use admin
db.runCommand({logRotate:1})

运行过程中不能删除日志文件,清空日志文件但不删除文件的命令(删除后没有生成日志)

: >run.log

也可以使用旋转日志 logRotate :对日志进行切割

去重script

db.getCollection('集合名').aggregate([{$group:{_id:{'去重字段':'$去重字段'}, count:{$sum:1}, dups:{$addToSet: '$_id'}}},{$match:{count:{$gt:1}}}] ,{ allowDiskUse: true }).forEach(function(doc){doc.dups.shift();db.getCollection('集合名').remove({_id: {$in: doc.dups}});})

导出数据

mongoexport -h localhost:27017 -u 用户名 -p 密码 -d 库名 -c 集合名 -o 导出文件路径

总结

到此这篇关于mongodb清除连接和日志的文章就介绍到这了,更多相关mongodb清除连接和日志内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MongoDB 相关文章推荐
MongoDB安装使用并实现Python操作数据库
Jun 28 MongoDB
关于CentOS 8 搭建MongoDB4.4分片集群的问题
Oct 24 MongoDB
MongoDB连接数据库并创建数据等使用方法
Nov 27 MongoDB
SpringBoot系列之MongoDB Aggregations用法详解
Feb 12 MongoDB
mongoDB数据库索引快速入门指南
Mar 23 MongoDB
MongoDB修改oplog大小的四种方法
Apr 11 MongoDB
Centos系统通过Docker安装并搭建MongoDB数据库
Apr 12 MongoDB
MongoDB数据库之添删改查
Apr 26 MongoDB
详解MongoDB排序时内存大小限制与创建索引的注意事项
May 06 MongoDB
NoSQL优缺点与MongoDB数据库简介
Jun 05 MongoDB
阿里云服务器部署mongodb的详细过程
Sep 04 #MongoDB
mongodb数据库迁移变更的解决方案
Sep 04 #MongoDB
mongodb的安装和开机自启动详细讲解
Aug 02 #MongoDB
常用的MongoDB查询语句的示例代码
Jul 25 #MongoDB
Mongo服务重启异常问题的处理方法
Jul 01 #MongoDB
MongoDB安装使用并实现Python操作数据库
浅析MongoDB之安全认证
Jun 26 #MongoDB
You might like
SONY ICF-F10中波修复记
2021/03/02 无线电
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
js实现整体缩放页面适配移动端
2020/03/31 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
python中的随机函数小结
2018/01/27 Python
利用nohup来开启python文件的方法
2019/01/14 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
运动会广播稿200米
2014/01/27 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
三好生演讲稿
2014/09/12 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
小学三年级作文之写景
2019/11/05 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书