热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决Linux系统下MongoDB数据库异常退出的问题

为解决频繁的数据插入和更新问题(这些数据的可靠性要求不高,不需要事务),赶上NoMysql的热潮,选择目前最热门的Mongodb,在测试中充分感受到mongodb安装的简单性和客户端调用API的便捷。但在生产环境下(操作系统CentOS6.2,内存64G,CPU12核),却出现
为解决频繁的数据插入和更新问题(这些数据的可靠性要求不高,不需要事务),赶上NoMysql的热潮,选择目前最热门的Mongodb,在测试中充分感受到mongodb安装的简单性和客户端调用API的便捷。

    但在生产环境下(操作系统CentOS 6.2,内存64G,CPU 12核),却出现频繁的宕机,有时候一天就要宕2次,虽然设置了replica sets,却很容易挂掉2台,导致不可用。

     查看mongod.log,发现每次宕机时都会打印Got signal: 11 (Segmentation fault),但从这个查找不到能够解决问题的资料。

     有人认为mongodb频繁宕机大多数是因为在并发查询的压力下,因为热数据没有在内存中,被迫到文件系统读取数据,很容易出现timeout的问题,之后会造成进程锁死,经过验证,如果把查询(只有通过主键查一条记录的查询)的客户端关闭掉,宕机的概率小非常多。查看每台mongodb的内存(通过mongodb命令控制台的db.serverStatus()看“mem”部分的“resident”),发现mongodb热数据的内存只占用不到2G,而数据文件有近200G,可能也是因为频繁的宕机,导致热数据一直未全部加载。

    但还是会出现宕机,为了不需要人工重启,就在每个replica的服务器上用Linux Shell脚本写了一段每隔1分钟检测mongodb进程死掉自动重启的进程,虽然能够解决mongodb一直在运行的状态,但发现mongodb的collections中出现很多损坏的数据,甚至出现一些自动创建的异常collections,如一个collections的名称是“jingdong”,则会出现多个“ingdong”、"jing"、“jingdon”之类的collections。

    不得已只好把mongodb的定时检测启动脚本关闭掉,顺着这个现象找问题,终于在mongodb官网的JIRA看到有个用户反馈的现象跟我们完全一致,最后他解决的方法是把mongodb客户端的java驱动jar包由2.9.1回退至2.8.0,我们也按照这样处理后,果然不会再出现crash问题。


推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
author-avatar
vipB时代_959
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有