Articles of mongodb

启动Mongodb,因为服务需要在数据目录上执行保留

我是新来linux和mongodb,所以这可能是一个新问题… 我可以像这样开始mongo(alt#1) $ mongod –dbpath /mnt/datadrive/data –logpath /mnt/datadrive/data/mongod.log 但是,当我开始“服务明智”(alt#2) $ sudo service mongod start 我得到: Starting mongod: can't open /mnt/datadrive/data/mongod.log for log file: errno:13 Permission denied (我已经在/etc/mongod.conf中设置了dbpath和logpath) 那么,当运行alt#2时,mongod是否以不同的用户身份启动? 那是什么账户? 如果是这样,我该如何允许该帐户访问/ mnt / datadrive / data /? 谢谢!

在运行MongoDB时,我需要在linux下调整sysctl.conf吗?

我们在MongoDB日志中看到了巨大的写入磁盘的事件,很长一段时间有效地locking了MongoDB。 网上有很多人报道类似的问题,但到目前为止我还没有find好的答案。 Tue Mar 11 09:42:49.818 [DataFileSync] flushing mmaps took 75264ms for 46 files 根据mongo统计,我的服务器上的平均mmap刷新大约为100 ms。 我们很大一部分MongDB数据会在几个小时内更新。 这导致我猜测是否需要调整Linux sysctl虚拟内存参数,如Neo4J的性能指南(另一种内存映射工具: http ://docs.neo4j.org/chunked/stable/linux-performance-guide)中所述。 HTML 对于IO来说有很多块,对于我们在基准testing中看到的写入速度来说,要比预期的要好得多。 另一个可以观察到的情况是,Linux内核产生了一个名为“flush-x:x”(run top)的进程,这个进程似乎耗费了大量的资源。 这里的问题是,Linux内核正在努力变得聪明,并从虚拟内存中写出脏页。 由于基准testing会将内存映射为1GB文件,并进行随机写入,因此可能会导致系统中可用的内存页面的1/4被标记为脏。 Neo4j内核不会向Linux内核发送任何系统调用以将这些页面写入磁盘,然而Linux内核决定开始这样做,这是一个非常糟糕的决定。 结果是,不是像写入磁盘(逻辑日志文件)那样顺序执行,而是现在正在随机写入内存映射文件的区域写入磁盘。 TOP表明我们确实有一个冲洗过程已经运行很长时间,所以这似乎相匹配。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 28352 mongod 20 0 153g 3.2g 3.1g S 3.3 42.3 299:18.36 mongod 3678 […]

AWS – EC2 – MongoDB副本设置时间同步问题 – NTP – 复制滞后

我们遇到了在AWS上运行的MongoDB副本集的时钟漂移问题。 这似乎最近开始发生后,我们增加了额外的数据集,在那之前,我们没有真正注意到这个问题,除非系统负载很重。 mongod.log文件中偶尔会logging以下错误,系统未加载。 为了testing这个问题,我们已经隔离了一组具有相同数据集的机器,但是我们的Web应用程序没有使用,尽pipe这个错误仍然在发生。 2014-12-12T13:33:51.333+0000 [rsBackgroundSync] changing sync target because current sync target's most recent OpTime is Dec 12 13:32:42:c which is more than 30 seconds behind member mongo1:27017 whose most recent OpTime is 1418391230 从上面的时间戳可以看出,其中一个mongodb副本成员已经超过了一分钟。 我们所看到的最糟糕的是12分钟不同步。 这个错误反过来会导致复制滞后,我们从Mongo监控服务收到关于这个的通知,尽pipe它自己纠正了。 该设置是3 x r3.xlarge AWS Linux实例,在EU-West-1A地区的每个可用区域中都有1个。 已经使用Mongobuild议的设置,使用Raidarrays和Mongo提供的cloud formation脚本来设置机器。 数据大小约为4GB。 我们认为该问题与NTP同步相关,默认情况下,在AWS Linux Amazon Machine Image上,ntpd服务configuration为转到www.pool.ntp.org上托pipe的aws ntp服务器池。 为了解决这个问题,我们在AWS上设置了自己的MongoDB服务器可以同步的NTP服务器。 问题仍然存在,所以我们改变了mongo机器上的ntpd服务的maxpoll和minpoll时间,以便every 16 […]

AWS + MongoDB:如何连接到AWS Linux实例上的mongo服务器?

我启动了一个AWS Linux实例,并按照这里的指示安装并运行了mongo。 mongo服务正在运行,并在27017上接受连接。但是,当我到端口为27017的服务器publik dns服务器不响应,我看不到默认的mongo消息。 我试图在另一个实例上运行一个Python(Flask)服务器,并尝试使用私有IP连接到mongo服务器,但连接不会发生。 我在terminal上得到这个错误信息: pymongo.errors.ServerSelectionTimeoutError:xxx.xx.xx.xx:27017:[Errno 111]连接被拒绝 这是不是正确的方式来使用mongo数据库的Aws? 如果这种方法是可行的,那么导致连接不会发生的原因是什么? 所有的投入赞赏,非常感谢!

最大化MongoDB连接

我有这种非常特殊的情况,我需要一台机器来服务大量的MongoDB数据库(如10k +),每个用户都应该能够直接连接到它。 我们的机器非常强大,运行良好,直到几天,当它开始导致一些问题。 在某些时候,用户无法再login,我从mongoS日志中得到这个: 2016-08-19T18:08:16.667+0000 I NETWORK [mongosMain] pthread_create failed: errno:11 Resource temporarily unavailable 我试图改变大多数参数MongoDB智慧和聪明,但没有运气: net.netfilter.nf_conntrack_max is 524288 fs.file-max is 128000 kernel.pid_max is 288000 /etc/security/limits.d/90-nproc.conf有:*软nproc 128000 *硬nproc 128000 /etc/init/mongos.conf有: limit fsize unlimited unlimited limit cpu unlimited unlimited limit as unlimited unlimited limit nofile 512000 512000 limit rss unlimited unlimited limit nproc unlimited unlimited limit memlock […]

mongodb错误的成员id

我试图改变副本集的成员的优先级: cfg = rs.conf(); 输出: { "_id" : "testRs", "version" : 37747, "protocolVersion" : NumberLong(1), "members" : [ { "_id" : 1, "host" : "mongo1:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 0.5, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 3, "host" : "mongo2:27017", […]

节点应用程序在一段时间后没有响应

我试图找出为什么我的nodejs应用程序11小时20分钟后变得没有响应 。 每次都会发生,不pipe是在amazon-linux还是Red Hat 。 我的堆栈: nodejs(v.6.9.4) mongodb(3.2) pm2过程经理 AWS EC2实例T2介质 每次运行应用程序时,都会返回到浏览器的错误: 网:: ERR_CONNECTION_RESET Pm2不重新启动应用程序,所以我怀疑它与nodejs ,我也分析了应用程序,它没有内存泄漏。 DB日志也看起来没问题。 唯一不变的因素是应用程序在运行11小时20分钟后崩溃 。 我正在处理来自nodejs应用程序的所有可能的错误,但在日志文件中没有错误发生,所以我怀疑它必须是别的东西。 我也检查了var/log/messages和/home/centos/messages但是没有任何关于应用程序崩溃的信息。 /var/log/mongodb/mongo.log没有显示任何特定的内容。 解决这个问题最好的办法是什么? 任何线索我怎样才能debugging它或可能是什么原因? 谢谢

在高山上编译Mongo

我试图在Alpine Linux上编译Mongo。 有人知道如何克服这个错误? In file included from src/mongo/util/net/socket_poll.h:20:0, from src/mongo/util/net/sock.cpp:42: /usr/include/sys/poll.h:1:2: error: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror=cpp] #warning redirecting incorrect #include <sys/poll.h> to <poll.h> ^ cc1plus: all warnings being treated as errors scons: *** [build/linux2/normal/mongo/util/net/sock.o] Error 1 scons: building terminated because of errors.

错误分析命令行时出错:“dbpath”中缺less必要的参数 – Linux Mint

我在Linux Mint上首次设置我的JavaScript平均值堆栈,然后input以下命令: sudo mongod –dbpath ,我收到以下错误消息: parsing命令行时出错: dbpath缺less必需的参数 我所尝试的一切都无济于事。 其他人是否面临这个问题? 如果是的话,我该如何解决? 谢谢!

无法写入/ sys / kernel /在OVH CentOS 7上为MongoDB禁用透明巨大页面(THP)

我的问题 我在删除有关OVH CentOS 7安装上的透明巨大页面(THP)的MongoDB警告时遇到了问题,而且问题似乎是无法以root身份写入/sys/kernel/mm 。 首先,我意识到OVH内核是定制的,而且我知道很多人会说要使用一个新的非定制的内核,但现在这不是一个选项。 我需要为当前的操作系统解决这个问题。 MongoDB警告: 2016-03-09T00:31:45.889-0500 W CONTROL [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied 2016-03-09T00:31:45.889-0500 W CONTROL [initandlisten] Failed to probe "/sys/kernel/mm/transparent_hugepage": Permission denied MongoDB正试图读取transparent_hugepage文件(下面),但它们不存在: /sys/kernel/mm/transparent_hugepage/enabled /sys/kernel/mm/transparent_hugepage/defrag 无法创build文件 我所见过的所有解决scheme都涉及到创build文件并never填充文件,包括MongoDB文档中的脚本 。 在所有的解决scheme中,这是关键部分: echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 但是,这些文件不存在,我不能以root身份在/sys/kernel/mm下创build任何东西。 root@myhost [~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled -bash: /sys/kernel/mm/transparent_hugepage/enabled: No such file […]