草庐IT

mongoid - MongoDB一直在崩溃

coder 2023-05-05 原文

我正在运行一个单实例mongodb,并且数据库一直在崩溃。 有人知道这个问题是否与在单个实例中运行有关?

8 月 9 日星期二 09:02:59 [initandlisten] 接受来自 127.0.0.1:60194 #129526 的连接 8 月 9 日星期二 09:17:04 [initandlisten] MongoDB 开始:pid=517 port=27017 dbpath=/var/lib/mongodb 32-bit

** 注意:使用 32 位 MongoDB 时,您的数据限制为大约 2 GB ** 见 http://blog.mongodb.org/post/137788967/32-bit-limitations ** 加上--dur,限制更低

8 月 9 日星期二 09:17:04 [initandlisten] db 版本 v1.8.2,pdfile 版本 4.5 8 月 9 日星期二 09:17:04 [initandlisten] git 版本:433bbaa14aaba6860da15bd4de8edf600f56501b Tue Aug 9 09:17:04 [initandlisten] build sys info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37


旧锁文件:/var/lib/mongodb/mongod.lock。可能意味着不干净的关机 建议删除文件并运行 --repair 见:http://dochub.mongodb.org/core/repair了解更多信息


8 月 9 日星期二 09:17:05 [initandlisten] initAndListen std::exception 中的异常:旧锁文件,正在终止 8 月 9 日星期二 09:17:05 8 月 9 日星期二 09:17:05 [initandlisten] 关闭:要关闭监听套接字... 8 月 9 日星期二 09:17:05 [initandlisten] 关机:要刷新诊断日志... 8 月 9 日星期二 09:17:05 [initandlisten] 关闭:要关闭套接字...... 8 月 9 日星期二 09:17:05 [initandlisten] 关机:WAITING fs 预分配器... 8 月 9 日星期二 09:17:05 [initandlisten] 关闭:关闭所有文件... 8 月 9 日星期二 09:17:05 closeAllFiles() 完成 8 月 9 日星期二 09:17:05 dbexit:现在真的要退出了

最佳答案

两个可能的问题:

查看 ulimit -a 以查看允许打开多少个文件。每个 TCP 连接都算作一个打开的文件。同样打开实际文件。将此设置为较高的数字,然后查看崩溃是否停止。

另外,检查 max processes 的值,对于繁忙的服务器,它应该至少为 4096 或 8192(我们的值为 32768)。这些进程中的大多数都在跟踪连接,因此它们大部分时间都是空闲的。但是,即使在非分片系统上,您也可以接近这些限制。

检查实际打开的文件:

lsof -p <pidnumber>

检查实际过程:

ps axo pid,ppid,rss,vsz,nlwp,cmd | egrep mongod

然后查看 nlwp 列。

要解决此问题,请执行以下操作:

man limits.conf
google: limits.conf pam setup ulimit change

更改 /etc/security/limits.d/nnn-username.conf 中的值

关于mongoid - MongoDB一直在崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997539/

有关mongoid - MongoDB一直在崩溃的更多相关文章

  1. ruby-on-rails - 按天对 Mongoid 对象进行分组 - 2

    在控制台中反复尝试之后,我想到了这种方法,可以按发生日期对类似activerecord的(Mongoid)对象进行分组。我不确定这是完成此任务的最佳方法,但它确实有效。有没有人有更好的建议,或者这是一个很好的方法?#eventsisanarrayofactiverecord-likeobjectsthatincludeatimeattributeevents.map{|event|#converteventsarrayintoanarrayofhasheswiththedayofthemonthandtheevent{:number=>event.time.day,:event=>ev

  2. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  3. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  4. ruby - 为什么不一直使用 ruby​​ 中的 splat 参数? - 2

    我知道当我们不知道要传递的参数数量时会使用splat参数。我想知道我是否应该一直使用splat。每当我传递参数时使用splat参数是否有任何风险? 最佳答案 当您编写的方法确实需要具有任意数量的参数时,对于诸如Hash#values_at之类的方法,splat非常有用。但一般来说,如果一个方法实际上需要固定数量的参数,那么使用命名参数比传递数组和记住哪个位置服务于哪个目的要清楚得多。例如:defFile.rename(old_name,new_name)...end比:更清晰defFile.rename(*names)...end您

  5. ruby - 在多个线程中引用类方法会导致自动加载循环依赖崩溃 - 2

    代码:threads=[]Thread.abort_on_exception=truebegin#throwexceptionsinthreadssowecanseethemthreadseputs"EXCEPTION:#{e.inspect}"puts"MESSAGE:#{e.message}"end崩溃:.rvm/gems/ruby-2.1.3@req/gems/activesupport-4.1.5/lib/active_support/dependencies.rb:478:inload_missing_constant':自动加载常量MyClass时检测到循环依赖稍加研究后,

  6. ruby-on-rails - rspec Mongoid 范围适用于开发而不是测试 - 2

    我有一个适用于Rails中的Mongoid对象的作用域,它在开发时效果很好,但在运行测试时效果不佳。它实际上在测试中根本不起作用。这是一个嵌入式文档。父级:classPersonincludeMongoid::Documentdefself.with_appointmentswhere(:appointments.not=>{'$size'=>0})endembeds_many:appointments,store_as:'Appointments',class_name:'Appointment'end嵌入的child:classAppointmentincludeMongoid::

  7. ruby - Mongoid 3 中 Rails 模型的强一致性 - 2

    我希望特定模型的所有数据库交互都通过集群中的mongo主节点,因此我将模型设置为使用强一致性。classPhotoincludeMongoid::Documentwithconsistency::strongfield:number,type:Integer#let'ssayaphotonumberisuniqueinthedbvalidate:unique_numberend但这似乎不起作用,因为当我保存两张非常靠近的照片时,我仍然遇到验证错误。photo1#dbhasnumber=1forthisobjectphoto1.update_attributes(number:2)pho

  8. ruby-on-rails - Ruby On Rails Mongoid 分组依据 - 2

    对于按日期分组,我使用了group_by方法。Example:Product.all.group_by{|d|d.created_at}#returnHash但是kaminari不支持Hash。我使用Mongoid,我需要通过页面导航(kaminari)按日期分组。怎么做到的? 最佳答案 Kaminari只支持数组分页例如Kaminari.paginate_array(an_array).page(1).per(10)group_by不是mongoid方法,它是Array的方法,它是对内存中的所有数据进行分组。为了使用mongoid

  9. ruby-on-rails - Rails/Mongoid 与 Struct 的关系问题 - 2

    我正在构建这个图书馆应用程序,它有3个类。国家、图书馆和书籍。国家有许多图书馆,图书馆属于一个国家。图书馆有很多书,书是嵌入图书馆的。但是,当我执行此auto_pick_job时,我们到达top_free_book并调用library.state。由于某种原因,library.state为nil。我希望恢复状态但没有骰子。我调用和创建库的方式如下。所以图书馆将永远属于一个现有的国家。state=Stats.find(x)library=state.libaries.new(info)library.save_optimistic!我也很感激使用Struct的关系帮助。classStat

  10. ruby - 执行过期异常使 Ruby 线程崩溃,但处理了 Timeout::Error - 2

    任何人都可以解释为什么当对方法的调用看起来像这样时我可能会看到这个堆栈(由HTTParty::post请求引起):beginresponse=HTTParty::post(url,options)rescuelogger.warn("Couldnotpostto#{url}")rescueTimeout::Errorlogger.warn("Couldnotpostto#{url}:timeout")end堆栈:/usr/local/lib/ruby/1.8/timeout.rb:64:in`timeout'/usr/local/lib/ruby/1.8/net/protocol.rb

随机推荐