06 2022 档案
摘要:背景 当一个事件表中有大量告警时,需要一种方法能校验事件、子事件、告警数据的正确性。 采用 python + pymongo 连接到mongo库,并执行一些sql操作。 相关资料 Python教程 安装准备 安装pymongo组件 在ubuntu上执行命令: sudo apt install pyt
阅读全文
摘要:背景 有两个需求,使用shell脚本实现。需要如下: 批量创建多个nginx容器 将某个目录下的文件拷贝到多个容器中 批量创建容器 创建shell文件 创建一个sh文件,如:create_nginx.sh,脚本内容: #~/bin/bash echo "delete all container...
阅读全文
摘要:说明 服务CPU高的本质原因是某个方法一直在执行,导致其他线程阻塞。 场景 场景一:使用RedisLock CPU高原因:使用RedisLock,导致未获取到锁的线程排队阻塞。 解决办法:减少RedisLock内的操作,特别是耗时长的操作。 场景二:kafka多线程消费 CPU高原因:Kafka的消
阅读全文
摘要:背景 事件列表分页查询时,报如下错: 说明:事件表中,如果事件如果聚合了很多告警,那这些事件的大小就会很大 问题分析 问题说明 MongoDB的 sort 操作是把数据拿到内存中再进行排序的,为了节约内存,默认给 sort 操作限制了最大内存为32M(mongo4.3以上版本是100M),当数据量超
阅读全文
摘要:官网资料:$sort 其它资料:聚合管道优化 $match + $project 当管道的顺序为 $project → $match 时,优化器会将 $match 提前到 $project 前面去执行。 例如,管道包括如下阶段: { $project: { status: 1, name: 1 }
阅读全文
摘要:mongostat 间隔固定时间(每秒)输出mongodb的当前运行状态。 ./bin/mongostat --port [port] -u qingteng -p [password] --authenticationDatabase admin 输出字段说明: 字段名称 说明 insert 每秒
阅读全文
摘要:数据结构 mongodb是文档型数据库,使用BSON格式保存数据。 mongodb使用B-树,每个节点既保存数据又保存索引,搜索时相当于二分查找。 ObjectId 每个document中必须有一个_id字段,如果在实体类上没有单独设置_id字段,mongo会自动生成一个_id字段,类型是Objec
阅读全文