在生产环境下(操作系统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问题。

转载请注明来源网站:www.itxm.net谢谢!

linux的mongo主从异常,解决Linux系统下MongoDB数据库异常退出的问题相关推荐

  1. mysql中文问号 linux,解决Linux系统下Mysql数据库中文显示成问号的问题

    Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式) Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装My ...

  2. linux crontab不运行,Linux运维知识之解决Linux中crontab不执行ntpdate问题

    本文主要向大家介绍了Linux运维知识之解决Linux中crontab不执行ntpdate问题,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 解决Linux中crontab尚未 ...

  3. linux系统数据库类型,linux系统下调度数据库类型资源库中的kettle job

    已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job ...

  4. linux sudo 命令无法使用,Linux运维知识之解决Linux下无法使用sudo命令问题

    本文主要向大家介绍了Linux运维知识之解决Linux下无法使用sudo命令问题,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 问题描述 使用普通用户登录后在终端中执行sudo ...

  5. 在linux操作系统中启动oracle数据库程序,Linux系统下Oracle数据库的安装和启动关闭操作教程...

    这篇文章主要介绍了Linux系统下Oracle数据库的安装和启动关闭操作教程,并针对在sqlplus下所需执行的命令进行讲解,需要的朋友可以参考下 1.准备: df -H 查看空间剩余   一般准备最 ...

  6. kettle怎么复制资源库的job_#linux系统下调度数据库类型资源库中的kettle job

    // linux系统下调度数据库类型资源库中的kettle job - 简书 http://www.jianshu.com/p/bc57ee193ea3 进入linux系统,切换至kettle所属用户 ...

  7. WPF程序在Win7系统下字体显示异常(解决方法记录)

    WPF程序在Win7系统下字体显示异常(解决方法记录) 问题描述 WPF程序在大部分客户电脑上正常运行,字体显示正常.仅在某个客户电脑上显示异常.并且不是所有字体都显示为异常状况.指定了具体字体的(如 ...

  8. win10pin不可用进不去系统_解决win7系统下连接网络打印机不可用的处理方法

    解决win7系统下连接网络打印机不可用的处理方法 作者:电脑帮帮手 win7系统连接网络打印机,相对Xp系统更为智能化,它会自动帮你搜索可用打印机驱动默认给你安装,但是有些网络打印机驱动,自身系统未必 ...

  9. 点计算机没有本地磁盘,快速解决WinPE系统下没有本地磁盘的方法

    最近,有不少朋友表示,进入WinPE系统后打开我的电脑,找不到本地磁盘,怎么办?PE系统下识别不了硬盘还是被隐藏了?今天U大侠小编跟大家一起讨论WinPE系统里面找不到硬盘的解决方案! WinPE系统 ...

  10. 计算机网络电缆被拔出是怎么办,解决Windows7系统下本地连接显示网络电缆被拔出的方法...

    在使用Windows7系统上网的过程中,想必有很多人都有遇到过网络断掉的问题吧,比如有部分使用win7 64位系统的用户反映说电脑桌面右下角本地连接显示网络电缆没有插好的提示,可是他们的网线有插好,不 ...

最新文章

  1. Acwing--朴素dijkstra
  2. LeetCode刷题-6
  3. 谷歌TPU训练BERT只要23秒,华为AI芯片达国际领先水平,MLPerf v0.7出炉
  4. python xml模块
  5. MFC CAsyncSocket类基本使用 - 1
  6. 美团点评:基于Druid的Kylin存储引擎实践
  7. (视频+图文)机器学习入门系列-第10章 人工神经网络
  8. 操作系统例题:某文件系统中,针对每个文件,用户类别分为4类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表
  9. 云服务器开启ftp_用云服务器怎么挂机器人
  10. art-template入门(八)之选项
  11. 锁-概念:可重入锁、可中断锁、公平锁、读写锁
  12. 在R语言中显示数学公式
  13. 【Java基础 项目实例--Bank项目5】Account 和 customer 对象等 继承、多态、方法的重写...
  14. 远程桌面无法复制粘贴传输文件解决办法
  15. nic占用率很高 Linux,linux – 许多丢弃了我的NIC数据包
  16. linux安装redis 完整步骤 主从结构 和 cluster 集群搭建
  17. 为什么苹果手机通话的时候不能录音?
  18. 继续教育公需课——人工智能技术及其发展趋势答案
  19. 牛客上C++的面试题和答案
  20. 中文zh描述规则,原来中文下除了cmn外还有14种扩展

热门文章

  1. asp.net core 系列之Reponse caching 之 Response Caching Middleware(4)
  2. Jmeter登录接口返回 status415
  3. 【BZOJ 1050】1050: [HAOI2006]旅行comf (动态SPFA)
  4. 亚马逊-不一样的电商公司
  5. JAVA和JVM运行原理揭秘
  6. macOS BigSur下根目录下无法创建文件
  7. ubuntu14.04.5安装paramiko模块pip install paramiko出现一堆问题的解决过程
  8. 【思路】Gym - 101173F - Free Figurines
  9. 【转】javascript Object使用Array的方法
  10. UITableView+UITableViewStyleGrouped 处理section之间间隙