iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB数据库容量规划是指什么
  • 565
分享到

MongoDB数据库容量规划是指什么

2024-04-02 19:04:59 565人浏览 八月长安
摘要

mongoDB数据库容量规划是指什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MonGoDB数据库容量规划是什么  我

mongoDB数据库容量规划是指什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  MonGoDB数据库容量规划是什么

  我们讨论的存储,说到底都是基于操作系统之上的一个应用软件,而操作系统能利用的,无非是系统的存储:磁盘、内存、CPU cache等等。所以容量规划的意义就是:按要存储的数据特点,针对一段时间的数据量,对机器各个存储的容量、性能及系统配置进行合理预估。

  通常这个问题在实际容量规划中可以化简为对内存,硬盘容量和性能的预估。

  下面我们就以MongoDB为例说一下容量预估的一些计算方法。我们通常的一个粗糙的要求是要将所有热数据放到内存中。这里的热数据可能包括经常访问的数据,索引和系统开销。下面我们就这三个方面进行说明:

  常访问的数据

  根据不同的应用场景,你可以对数据访问情况进行预估。比如用MongoDB保存帖子内容,每个帖子大小为1k,目前有1亿个帖子,每天新增100w个帖子,那么3个月后帖子量大概为2亿,需要200G的硬盘空间。

  每天新增的100w帖子是常访问的,而可能我们每天活跃访问的贴子为200w,也就是说另外100w是之前的老帖子。如果我们规划给热数据的内存大小为 1G,那只能装下100w数据,装不了200w数据。由于帖子访问的随机性,最坏的情况是我们每次访问的数据都不在内存中(比如先访问了不在内存中的 100w,加载到内存中,再访问刚刚被换到磁盘上的数据,又需要再加载一次),需要进行和PV相同次数的磁盘io,灾难!最好的情况我们也需要100w次 磁盘IO(比如先对在内存中的100w数据进行频繁访问,再对不在内存中的100w数据进行频繁访问),在访问频率均匀的情况下,每秒需要进行大概12次 的磁盘IO。

  那我们把规划给热数据的内存大小调为2G,看看会如何,这时候一天200w热数据正好能装下。那么最好的情况下,需要进行 100w次磁盘IO(比如200w数据中的100w老数据全都在昨天的热数据中,则只需要对100w数据进行重新加载),在访问频率均匀的情况下,每秒需 要进行大概12次的磁盘IO。最坏的情况下,需要进行200w次磁盘IO(比如今天访问的200w条数据和昨天的热数据没有重合),在访问频率均匀的情况 下,每秒需要进行大概25次的磁盘IO。

  MongoDB数据库容量规划是什么

  同理,我们再增大内存,会需要访问的数据在内存中的机率增大,从而减小磁盘IO的频率。

  上面说的是一个简单例子,具体你可以根据自己的数据访问特性进行评估和计算,而且不仅要算平均IO,更重要的是巅峰IO。

  同时不要忘了,MongoDB还会定时调用fsync将内存中的脏页flush到磁盘(默认一分钟一次),你可以根据你自己脏数据的量或者比例来评估每次的IO,然后你再考虑是否需要将fsync的频率调低一点。

  如果你还开启了journaling log,那这个IO量也需要加进去。

  当然,接下来的就是你的磁盘是否能够承受最终的IO量,然后你可以考虑你是否需要使用更快的硬盘,是否需要RaiD,是否需要换用SSD等等了。

  索引量

  索引和常访问数据不同,索引要求全部放在内存中,所以索引的容量计算就相对容易很多。通过MongoDB的db.stats()命令就能看到你当前占用 的索引大小。比如上面的例子,现在1亿条数据如果索引大小为5G的话,那么2亿条的时候大概需要10G。所以内存必须要装下这10G索引。

  系统开销

  MongoDB daemon的开销基本可以理解为一个常数,所以这里的系统开销就主要是连接开销。这取决于你的应用特点。比如你最大的并发操作为100。也就是同时 100个连接与MongoDB相连。每个连接一个线程开销为系统的stack size设置,默认是10M,那就是1G(当然你可以适当调整这个值)。需要对数据进行实时排序的话,需要再算上排序时的内存开销。

  总结

  当然,上面讲的是一个简单的预估方法,我们不期望能够通过计算得出真实的容量估算结果,毕竟互联网产品的变化总是那么不可控。但是在部署前按业务情况进行相关的容量预估是非常重要的。好的预估可以在金钱、性能和运维成本上得到一个相对平衡的结果。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB数据库容量规划是指什么

本文链接: https://www.lsjlt.com/news/56526.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB数据库容量规划是指什么
    MongoDB数据库容量规划是指什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  MongoDB数据库容量规划是什么  我...
    99+
    2024-04-02
  • 什么是MongoDB数据库
    本篇文章给大家分享的是有关什么是MongoDB数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是MongoDB  MongoDB是由C...
    99+
    2024-04-02
  • mongodb数据库是什么类型数据库
    mongodb是一个文档型数据库,它以文档导向的数据模型、灵活模式和可扩展性而闻名,适用于处理大量非结构化或半结构化数据,如社交媒体数据、物联网传感器数据、电子商务目录和媒体内容。 M...
    99+
    2024-04-02
  • mongodb登录指定数据库的方法是什么
    要登录到MongoDB的指定数据库,可以使用以下方法:1. 使用MongoDB的mongo shell命令行工具。在命令行中输入以下...
    99+
    2023-08-23
    mongodb 数据库
  • 数据库容量规划与管理:技术同学应遵循的MySQL设计规约!
    数据库容量规划与管理:技术同学应遵循的MySQL设计规约!随着互联网的大规模发展,数据量的急剧增长成为一个普遍的问题。作为关系型数据库管理系统的代表,MySQL在应对海量数据的处理和管理方面扮演着重要角色。然而,如果没有合理的数据库容量规划...
    99+
    2023-10-22
    数据库管理 数据库容量规划 MySQL设计规约
  • MySQL数据库性能监控与容量规划的项目经验总结
    MySQL数据库是当前最流行的开源关系型数据库之一,被广泛应用于各种规模的企业系统中。随着数据规模和访问量的不断增大,数据库性能的监控和容量规划变得愈发重要。本文将分享我在项目中的经验总结,探讨MySQL数据库性能监控与容量规划的实践。一、...
    99+
    2023-11-02
    性能监控 容量规划 关键词:MySQL数据库
  • mongodb是什么类型的数据库
    mongodb是一个分布式文件存储的数据库,属于一个介于关系数据库和非关系数据库之间的产品,因为它的非关系数据库功能更加丰富,所以它也是属于NoSql数据库的一种,使用mongodb能够解决存储数据类型比较复杂的问题。具体内容如下:Mong...
    99+
    2024-04-02
  • 数据库指的是什么
    小编给大家分享一下数据库指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一:数据库是什么数据库专业的来说,其实就是一种电...
    99+
    2024-04-02
  • MongoDB数据库核心概念是什么
    本篇内容介绍了“MongoDB数据库核心概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MongoDB数据库核心概念1.NoSQL数...
    99+
    2023-07-06
  • 数据库执行计划原则是什么
    本篇内容介绍了“数据库执行计划原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 内存容量是指什么
    内存容量是指计算机系统中可用于存储和处理数据的存储空间大小,它对计算机的性能、功能和多任务处理能力有着重要影响。计算机中,数据和指令需要存储在内存中才能被处理器读取和执行,内存容量决定了计算机可以同时存储和处理的数据量。本教程操作系统:Wi...
    99+
    2023-08-14
  • MySQL数据库设计规范是什么
    这篇“MySQL数据库设计规范是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQ...
    99+
    2024-04-02
  • 什么是非关系型数据库MongoDB
    本篇内容主要讲解“什么是非关系型数据库MongoDB”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是非关系型数据库MongoDB”吧!前言Mongodb,分...
    99+
    2024-04-02
  • sqlserver数据库排序规则是什么
    SQL Server数据库中的排序规则是一种用于确定字符串排序顺序的规则集。排序规则定义了字符串在进行比较和排序时的顺序。SQL S...
    99+
    2024-04-09
    sqlserver
  • Redis指的是什么数据库
    小编给大家分享一下Redis指的是什么数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Redis是一个非常快速的、开源的、使...
    99+
    2024-04-02
  • mongodb查询数据量的方法是什么
    要查询 MongoDB 数据集中的文档数量,可以使用 db.collection.count() 方法。具体步骤如下: 打开 Mo...
    99+
    2024-04-09
    mongodb
  • mongodb创建数据库的方法是什么
    在MongoDB中创建数据库的方法是使用use命令。通过在MongoDB shell中输入use命令,然后指定要创建的数据库名称,M...
    99+
    2024-04-09
    mongodb 数据库
  • mongodb数据库备份的步骤是什么
    MongoDB数据库备份的步骤如下: 使用mongodump命令备份数据库 在命令行中运行mongodump命令来备份整个数据库...
    99+
    2024-04-10
    mongodb
  • mongodb备份数据库的方法是什么
    在 MongoDB 中备份数据库有两种方法: 使用 mongodump 命令:mongodump 是 MongoDB 提供的备份工...
    99+
    2024-03-15
    mongodb 数据库
  • 云数据库mongodb存储结构是什么
    在MongoDB中,数据以文档的形式存储,文档是MongoDB中的基本单元。文档是一个键值对的序列,类似于JSON对象。MongoD...
    99+
    2023-05-13
    云数据库mongodb 云数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作