`
fsplove520
  • 浏览: 28166 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Mongodb优化之 连接优化

 
阅读更多
  如果你正在使用mongodb,那么你可能出现下面这种情况。
 
  某公司在项目中添加了新的WEB机器结点后,发现其MongoDB集群的性能开始受到影响,表现在请求的高峰时期,MongoDB的响应时间变得非常长。通过监控发现,在其高峰时间MongoDB的连接数达到了1100~1500左右,由于每个连接需要使用10M(stack size默认为10240)的内存,这导致相当大的内存开销。

解决方案
  首先通过优化连接池,将连接数控制在了800个左右,然后通过修改内核的stack size值,从默认的10M修改到1M,使连接占用的内存大大减少

Mongodb 系统参数配置(以下操作都是基于linux的)

db.serverStatus().connections   查看链接
每个连接都是一个线程,需要一个Stack,Linux下缺省的Stack设置一般比较大:
shell> ulimit -a | grep stack
stack size              (kbytes, -s) 10240
至于MongoDB实际使用的Stack大小,可以用如下命令确认(单位:K):
shell> cat /proc/$(pidof mongod)/limits | grep stack | awk -F 'size' '{print int($NF)/1024}'
如果Stack过大(比如:10240K)的话没有意义,简单对照命令结果中的Size和Rss:
shell> cat /proc/$(pidof mongod)/smaps | grep 10240 -A 10
所有连接消耗的内存加起来会相当惊人,推荐把Stack设置小一点,比如说1024:
shell> ulimit -s 1024

分享到:
评论

相关推荐

    mongodb的c++连接接口

    7. **性能优化**:C++ 驱动允许进行一些性能优化,比如批量操作、连接池管理、异步操作等,这有助于提高应用程序的整体性能。 8. **安全注意事项**:在实际应用中,确保正确处理用户输入,防止 SQL 注入攻击,并且...

    Mongodb连接池for java

    在Java开发中,与MongoDB的交互通常涉及使用连接池来优化性能和资源管理。MongoDB连接池是解决数据库连接管理和复用的一种机制,旨在提高应用的并发能力,减少创建和销毁连接的开销,同时确保在高并发场景下的稳定性...

    mongodb优化

    针对 MongoDB 的优化是提高数据库性能的关键,这通常涉及到多个方面,包括内存配置、查询优化、索引管理和集群架构调整等。 首先,我们可以修改 MongoDB 的默认内存配置以适应更大的数据处理需求。在 MongoDB ...

    Mongodb连接池JAVA

    这就是MongoDB连接池的作用,它能帮助优化资源使用,提高系统性能。 在Java中,我们可以使用如JDBC(Java Database Connectivity)对SQL数据库进行连接池管理,但MongoDB并不支持JDBC。相反,我们需要使用专门的...

    mongoDB3.0以上连接工具.zip

    在MongoDB 3.0及以上版本中,开发团队引入了许多新特性,提升了性能和可用性,同时也优化了连接工具,使得管理和操作MongoDB数据库变得更加便捷。 在“mongoDB3.0以上连接工具.zip”这个压缩包中,我们可以找到用于...

    基于hyperf的mongodb连接池组件暂不支持协程

    MongoDB是一个流行的NoSQL数据库,其连接池是管理数据库连接的机制,用于优化数据库操作,避免频繁创建和销毁连接带来的性能损耗。在传统的PHP开发中,连接池可以有效复用已存在的连接,减少延迟,提高系统性能。...

    studio-3t mongodb连接工具

    MongoDB Studio 3T是一款强大的MongoDB数据库管理工具,专为简化MongoDB的连接和管理而设计。它提供了直观的图形用户界面(GUI),使得数据库的日常操作变得更加便捷,无论你是开发人员、数据库管理员还是数据分析师...

    dbeaver21.1-enterprise-agent用于连接MongoDB等NoSQL类型数据库

    《dbeaver21.1-enterprise-agent:连接MongoDB与NoSQL数据库的高效工具》 dbeaver21.1-enterprise-agent是一款强大的数据库管理工具,专为IT专业人士设计,尤其适用于处理NoSQL类型数据库,如MongoDB。在当今数据...

    mongoDB连接需要的jar包,支持jdk1.6

    在本场景中,我们讨论的是一个针对JDK 1.6的MongoDB连接所需的jar包集合。 首先,`mongo-java-driver`是官方提供的Java驱动程序,版本为3.2.2。这个驱动程序允许Java应用程序直接与MongoDB服务器通信,执行CRUD...

    Robomongo mongodb数据库连接工具

    8. **性能监控**:实时查看MongoDB服务器的性能指标,如内存使用、磁盘I/O等,有助于优化数据库性能。 9. **版本控制**:支持不同版本的MongoDB,确保与你正在使用的数据库版本兼容。 总之,Robomongo作为MongoDB...

    Springboot配置MongoDB连接池源代码

    而连接池对于优化数据库操作性能至关重要,通过合理配置,可以有效减少数据库连接的创建和销毁,提升系统效率。 首先,我们来了解如何在Spring Boot中引入MongoDB连接池。Spring Boot默认集成了MongoDB Java驱动和...

    mongodb_python连接mongodb_python_MongoDB_

    在实际应用中,我们可能需要处理错误、管理连接、优化性能等问题。例如,使用`try/except`来捕获异常,确保连接在完成操作后关闭: ```python try: # 数据库操作... except Exception as e: print(f"An error ...

    Studio 3T(MongoDB数据库GUI连接工具) 学习笔记

    启动后,你会看到一个简洁的界面,准备连接到MongoDB服务器。 连接MongoDB实例是使用Studio 3T的第一步。在"连接"面板中,点击"+"按钮创建新连接。你需要提供以下信息: 1. **主机名/地址**:填写MongoDB服务器的IP...

    navicat 连接mysql、mongodb工具

    【Navicat 连接MySQL、MongoDB工具详解】 Navicat是一款强大的数据库管理工具,支持多种数据库系统,包括MySQL和MongoDB等。它提供了一个直观的图形界面,使得数据库的管理和开发工作变得简单易行。以下是关于...

    mongodb客户端连接工具

    MongoDB是一款流行且功能强大的NoSQL数据库系统,广泛应用于大数据处理、实时分析和灵活的数据建模。...在实际工作中,结合MongoDB的文档和社区资源,可以更好地利用mongoVUE优化MongoDB的运维工作。

    nosqlbooster4mongo-7.0.8,MongoDB连接工具

    7. **集群管理**:对于运行在集群环境中的MongoDB,NosqlBooster 4 MongoDB支持多服务器连接,可以轻松管理分片和复制集。 8. **安全特性**:该工具支持SSL加密连接,确保数据传输的安全性,同时也支持身份验证机制...

    mongodb.dll 关于C#的驱动连接mongodb数据库

    2. **MongoServer**(已过时):在较早版本的驱动中,MongoServer代表了与MongoDB服务器的连接,但在新版本中已被MongoClient取代。 3. **MongoDatabase**:这个类代表MongoDB中的一个数据库,通过MongoClient可以...

    mongodb连接jar包

    - **连接管理**:驱动程序允许创建MongoClient对象来连接到MongoDB服务器或集群。连接参数可以包括主机名、端口、认证数据库和凭证。 - **数据库操作**:通过MongoClient,你可以访问MongoDatabase对象,代表一个...

    MongoDB数据库c#底层连接和操作案例

    然而,实际项目中可能需要处理更复杂的情况,如错误处理、事务管理、性能优化等,这需要对MongoDB和C#驱动有更深入的理解。同时,了解MongoDB的文档结构、索引创建、数据模型设计等也是至关重要的。

    java实现mongodb的数据库连接池

    在本场景中,我们关注的是如何使用Java实现对MongoDB数据库的连接池,利用mongo-2.7.3.jar包来管理MongoDB的连接。MongoDB是一种NoSQL数据库,它支持JSON格式的数据存储,采用BSON(二进制JSON)作为内部存储格式,...

Global site tag (gtag.js) - Google Analytics