【Mongo】数据删了磁盘空间但没有减少

news2024/12/23 22:31:28

Author:skate

Time:2023/10/22

一、问题描述

产线用户反馈,一个华为云的mongo实例磁盘空间告警,使用率超过90%(使用状况 1630.9/1800GB),让其通过数据库运维平台找到占用大空间的表,然后清理历史数据;用户清理数据后,发现使用的磁盘空间没有减少

二、问题分析

华为云mongo实例信息:

配置:| 2 vCPUs | 4GB

版本:4.0

存储引擎:WiredTiger

磁盘使用率:90.61%(使用状况 1630.9/1800 GB)

查看占用磁盘空间大的表

通过数据库运维平台查看如上三个表占用磁盘空间最大,而且数据逻辑大小远远小于数据占用的存储空间,说明数据清理产生了有大量的碎片;一般来说磁盘碎片会被数据库继续使用,当有新数据插入时,会重复利用这些碎片。

但是我们目前碎片占用空间太大,需要回收下

三、解决方案

可以通过如下命令回收集合的的磁盘碎片

db.runCommand({compact:"<collection_name>",force:true})

因为MongoDB 4.4及之前的版本执行compact命令会导致集合所属的数据库被锁定,且该数据库的读写操作将被阻塞,建议在业务低峰期操作,操作的步骤如下

1、先在备库执行compact命令

db.runCommand({compact:"<collection_name>"})

2、然后主备切换

3、在新的备库执行compact命令

db.runCommand({compact:"<collection_name>"})

A.阿里云的mongo实例说明

阿里云的mongo实例,如果需要compact,需要我们自己按如上步骤手工操作

B.华为云的mongo实例特殊说明:

默认华为云的mongo实例的管理员用户rwuser默认是没有执行compact权限的,如果需要执行这个命令,联系华为云工程师,让华为云工程师帮其在后台执行(或者升级mongo实例的小版本,向华为云申请开通compact命令权限),这个compact命令是低频的,目前命令提供给华为云执行即可。

RocksDB在删除数据后,将删除操作直接转化为追加写,在积攒了一定数据量的冗余数据后,会自动触发后台compact线程对同一数据的多版本进行归并聚合,从而释放多余的磁盘空间,因此建议等待系统自动回收。当磁盘空间使用率较高,接近只读状态阈值时,手工操作回收

WiredTiger在删除数据,进行数据多版本归并聚合后,也会空余出磁盘空间碎片,但wiredTiger并不会将这部分磁盘空间返还给操作系统,而是打上标记预留给当前collection后续的写入,此collection后续的写入会优先使用这部分预留的磁盘空间,如果需要释放这部分磁盘空间,可以尝试通过执行compact命令进行释放(注:此命令会阻塞正常业务)。

具体操作步骤:

1、通过数据库运维平台查看哪些集合占用磁盘空间大、碎片率高,碎片率超过50%就要注意了

2、在备库执行集合压缩命令(降低对主库的写操作的阻塞,在业务低峰期操作)

use tbm
db.runCommand({compact:"zjthStdTag"})     //耗时:424.702s (7.08min)
db.runCommand({compact:"ztzbStdTag"})   //耗时:379.738s (6.33min)
db.runCommand({compact:"hrkStdTag"})    //耗时:46.857s

3、主备库倒换

4、在新备库执行集合压缩命令

use tbm
db.runCommand({compact:"zjthStdTag"})
db.runCommand({compact:"ztzbStdTag"})
db.runCommand({compact:"hrkStdTag"})

把2-4步骤发给华为云工程师,让其在后台执行帮手工回收集合磁盘空间

四、结果收益

经过compact后,磁盘利用率从90%降低到25%,磁盘空间回收了1180G

---end---

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zabbix安装部署笔记

记一次zabbix安装部署过程&#xff0c;由于各版本配置的文件系统不同&#xff0c;以及出现许多意外的出错。 一、安装&#xff1a; 安装很简单&#xff0c;直接apt-get安装。 #服务器 apt-get install zabbix-server-mysql #web apt-get install zabbix-frontend-php #客户…

RHCE8 资料整理(三)

RHCE8 资料整理 第三篇 网络相关配置第11章 网络配置11.1 网络基础知识11.2 查看网络信息11.3 图形化界面修改11.4 通过配置文件修改11.5 命令行管理11.6 主机名的设置 第12章 ssh12.1 ssh基本用法12.2 打开远程图形化界面12.3 ssh无密码登录12.4 ssh安全设置12.5 ssh限制用户1…

【python】--python环境安装及配置

目录 一、python开发环境部署1、下载安装Miniconda2、python环境3、进入或退出python环境4、对应python环境安装工具/库5、进入pyhton环境&#xff0c;查看已安装的工具/库6、安装pycharm专业版7、pycharm创建项目并关联python版本环境 一、python开发环境部署 要安装一个pyth…

Amazonlinux2023(AL2023)获取metadata

今年AWS发布了新的Amazonlinux2023版本&#xff0c;其中获取metadata元数据方式发生了一点改变。 早些时候&#xff0c;在 Amazon Linux 2 中&#xff0c;使用以下命令获取实例元数据 http://169.254.169.254/latest/meta-data/ 具体可以获取的元数据类别可以查阅如下aws官方…

win7录屏软件哪个好用?盘点3款实用软件

在当今科技迅猛发展的时代&#xff0c;录屏已经成为了教育、演示和内容创作的重要工具。对于使用windows 7操作系统的用户来说&#xff0c;选择合适的录屏软件至关重要。可是win7录屏软件哪个好用呢&#xff1f;在本文中&#xff0c;我们将介绍3款常用的win7录屏软件。通过比较…

软件界面设计培训

&#xff08;注&#xff0c;这是我2006年写的&#xff0c;或许是个缅怀&#xff0c;或许是个吐槽。原稿就是PPT&#xff0c;内容都在这里。所有“注”都是本次发表增加的。所有这些原则&#xff0c;并不仅仅是关于界面的&#xff0c;而是关于所有程序设计和任何事情的。&#x…

hvv蓝初 看完可去 面试可用 面经

护网蓝队&#xff08;初级&#xff09; 主要是会看各种攻击payload&#xff0c;注意常见的payload 练习各种漏洞的利用方法&#xff0c;学会看利用漏洞的请求长什么样&#xff0c;payload长什么样&#xff0c;payload长什么样 给个请求包&#xff0c;能不能认出来是攻击流量&am…

成都优优聚代运营:打造精细化运营新标杆

成都优优聚美团代运营服务&#xff0c;凭借其专业的团队、优质的服务以及丰富的经验&#xff0c;已经在美团平台崭露头角&#xff0c;成为众多商家的首选代运营服务商。 一、专业团队&#xff0c;打造精细化运营 成都优优聚美团代运营服务拥有一支专业的运营团队&#xff0c;成…

使用 Requests 库和 PHP 的下载

以下是一个使用 Requests 库和 PHP 的下载器程序&#xff0c;用于从 www.people.com.cn 下载音频。此程序使用了 https://www.duoip.cn/get_proxy 这段代码。 import requests from bs4 import BeautifulSoup import pafy import timedef get_proxy():url "https://www.…

预付费多用户电能管理系统的设计与应用

【摘要】&#xff1a;该设计解决了IC卡预付费电能表存在的问题&#xff0c;同时继承了先购电后用电的管理模式。电力部门的管理微机通过RS485网络对电能表进行管理&#xff0c;以防止用户窃电&#xff1b;选用射频卡作为用户卡以解决IC卡易被污染和损坏的问题。 【关键词】&am…

算法leetcode|85. 最大矩形(rust重拳出击)

文章目录 85. 最大矩形&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;样例 4&#xff1a;样例 5&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 85. 最…

零基础Linux_21(多线程)页表详解+轻量级进程+pthread_create

目录 1. 页表详解 1.1 权限条目页框 1.2 页目录页表项 2. 线程的概念 2.1 轻量级进程 2.2 Linux的线程 2.3 pthread_create 2.4 原生线程库LWP和PID 3. 线程的公有资源和私有资源 3.1 线程的公有资源 3.2 线程的私有资源 4. 线程的优缺点 4.1 线程的优点 4.2 线程…

LLM 新缺陷曝光,自我纠正成功率仅 1%;苹果超 95% 产品仍在中国制造丨 RTE 开发者日报 Vol.72

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

JSX 条件渲染

学习目标&#xff1a; 能够在 JSX 中实现条件渲染 作用&#xff1a; 根据是否满足条件生成 HTML 结构&#xff0c;比如 Loading 效果 实现&#xff1a; 可以使用三元运算符或者逻辑&&&#xff08;与&#xff09;运算符 实例&#xff1a; function App() {// 条件渲染/…

基于模型的电机brushless DC motor (BLDCM)控制方法

(无框)力矩电机&#xff0c;全称应该为永磁无刷直流(无框)力矩电机&#xff0c;其显著的特征是&#xff1a; 较大的径长比&#xff08;diameter-to-length ratio&#xff09;较多数目的磁极&#xff08;magnet poles&#xff09; 无框架电机是传统电机中用于产生扭矩和速度的…

朋友圈可分享的产品画册是怎么做的?

经常刷朋友圈的时候有看到别人分享的各式各样的产品画册&#xff0c;带动画、带音乐、还有真书般的翻页效果&#xff0c;看起来十分炫酷且好看呢&#xff01;那么&#xff0c;这种可以分享到朋友圈的产品画册是怎么制作的呢&#xff1f; 推荐使用FLBOOK即可在线制作并分享到朋友…

电商API接口:如何让数据成为生产力!

随着数字化商业时代的到来&#xff0c;API接口已成为电商资源连接利器&#xff0c;也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示&#xff0c;全球互联网企业近3/4的企业持续投入数字化转型&#xff0c;2/3的企业在持续增加投入&#xff0c;从这组数据可以…

从制造到“智造”,看科聪控制系统如何赋能汽车行业智能生产

汽车行业成为推动国家经济发展的支柱性行业之中&#xff0c;在国家经济社会发展有着重要的地位。如今&#xff0c;汽车制造业面临着制造升级和技术更新的问题&#xff0c;需要高效、合理和现代化的物流系统。 某汽车厂通过投运以科聪控制系统为核心的叉式移动机器人&#xff0c…

山西电力市场日前价格预测【2023-10-24】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-24&#xff09;山西电力市场全天平均日前电价为246.84元/MWh。其中&#xff0c;最高日前电价为419.16元/MWh&#xff0c;预计出现在18:30。最低日前电价为0.00元/MWh&#xff0c;预计出…

【wxWidgets实现透明wxPanel_核心实现_原创思想】

描述 wxWidgets 根本就没有实现过透明wxPanel容器,你设置wxTRANSPARENT_WINDOW,结果sorry 黑色,哈哈哈哈, 就是和你作对.想想当下那么漂亮的桌面, 背景, 透明, 特效.哎 悲哀啊,实现不了,就那死板的界面特性. 网上找了好久,也是乱七八糟,改底层代码还是算了吧,升级特要命.都是只…