Mongodb Mongo自动平衡不工作

Mongodb Mongo自动平衡不工作,mongodb,mongodb-query,load-balancing,cpu-usage,sharding,Mongodb,Mongodb Query,Load Balancing,Cpu Usage,Sharding,我遇到了这样一个问题:在我将文件存储到Mongo DB(使用网格FS)时,我的一个碎片的CPU使用率一直保持在100%。我已经关闭了对数据库的写入,使用率确实下降到了接近0%。但是,自动平衡器已打开,并且似乎没有自动平衡任何东西。我有大约50%的数据放在一个碎片上,CPU使用率接近100%,而其他的几乎都是7-8% 有什么想法吗 mongos> version() 3.0.6 启用自动平衡 Storage Engine: WiredTiger I have this general a

我遇到了这样一个问题:在我将文件存储到Mongo DB(使用网格FS)时,我的一个碎片的CPU使用率一直保持在100%。我已经关闭了对数据库的写入,使用率确实下降到了接近0%。但是,自动平衡器已打开,并且似乎没有自动平衡任何东西。我有大约50%的数据放在一个碎片上,CPU使用率接近100%,而其他的几乎都是7-8%

有什么想法吗

mongos> version()
3.0.6
启用自动平衡

Storage Engine: WiredTiger

I have this general architecture:
2 - routers
3 - config server
8 - shards (2 shards per server - 4 servers)
No replica sets!

日志详细信息

路由器1日志:

路由器2日志:

有问题的碎片日志:


对于拆分错误-升级到Mongo v.3.0.8+解决了此问题


平衡本身仍然存在问题…碎片密钥是md5校验和,因此,除非它们都有非常相似的md5(不太可能),否则仍需进行调查…使用基于范围的分区来解决分割错误-升级到Mongo v.3.0.8+解决了此问题


平衡本身仍然存在问题…碎片键是md5校验和,因此,除非它们都有非常相似的md5(不太可能),否则仍需进行调查…使用基于范围的分区提供请提供如何连接到
mongos
以及如何定义碎片。顺便说一句,如果您仔细阅读,MongoDB会说:
在生产集群中,您必须确保数据是冗余的,并且您的系统是高可用的。
。因此,没有任何
平衡器
,它只提供
高可用性
。我如何连接?写给Mongo,C#API——我的碎片是如何定义的?我不完全明白你的意思。我有8-10TB的碎片。我使用自动创建fs.Files&fs.chunks集合的文件数据库-您对shard key详细信息感兴趣吗?----我的Mongo群集都是虚拟化的,虚拟化环境驻留在一个RAID存储磁盘阵列上。如果其中一个失败,我可以恢复,所以副本集对于我的环境来说是完全冗余的。是的,我指的是碎片密钥。如果未正确定义碎片密钥,MongoDB将不会在所有mongos上分发文件。关于连接,我的意思是,您是否使用了mongodb URI连接?从我所看到的,您导致了大部分数据被写入一个碎片。如果您有几TB的数据:为自己找一个DBA,因为这需要一段时间才能正确。基本上,您需要转储数据、删除旧集合、使用适当的碎片密钥设置新集合,并将数据恢复到新集合。但是,该过程有一些关键问题。请尽快升级到3.0.8,因为有一个wiredTiger错误已修复,可能会影响迁移。请提供如何连接到
mongos
,以及如何定义碎片。顺便说一句,如果您仔细阅读,MongoDB会说:
在生产集群中,您必须确保数据是冗余的,并且您的系统是高可用的。
。因此,没有任何
平衡器
,它只提供
高可用性
。我如何连接?写给Mongo,C#API——我的碎片是如何定义的?我不完全明白你的意思。我有8-10TB的碎片。我使用自动创建fs.Files&fs.chunks集合的文件数据库-您对shard key详细信息感兴趣吗?----我的Mongo群集都是虚拟化的,虚拟化环境驻留在一个RAID存储磁盘阵列上。如果其中一个失败,我可以恢复,所以副本集对于我的环境来说是完全冗余的。是的,我指的是碎片密钥。如果未正确定义碎片密钥,MongoDB将不会在所有mongos上分发文件。关于连接,我的意思是,您是否使用了mongodb URI连接?从我所看到的,您导致了大部分数据被写入一个碎片。如果您有几TB的数据:为自己找一个DBA,因为这需要一段时间才能正确。基本上,您需要转储数据、删除旧集合、使用适当的碎片密钥设置新集合,并将数据恢复到新集合。但是,该过程中有一些关键问题。请尽快升级到3.0.8,因为有一个wiredTiger错误已修复,可能会影响迁移。
2016-01-15T16:15:21.714-0700 I NETWORK  [conn3925104] end connection [IP]:[port] (63 connections now open)
2016-01-15T16:15:23.256-0700 I NETWORK  [LockPinger] Socket recv() timeout  [IP]:[port]
2016-01-15T16:15:23.256-0700 I NETWORK  [LockPinger] SocketException: remote: [IP]:[port] error: 9001 socket exception [RECV_TIMEOUT] server [IP]:[port]
2016-01-15T16:15:23.256-0700 I NETWORK  [LockPinger] DBClientCursor::init call() failed
2016-01-15T16:15:23.256-0700 I NETWORK  [LockPinger] scoped connection to [IP]:[port],[IP]:[port],[IP]:[port] not being returned to the pool
2016-01-15T16:15:23.256-0700 W SHARDING [LockPinger] distributed lock pinger '[IP]:[port],[IP]:[port],[IP]:[port]/[IP]:[port]:1442579303:1804289383' detected an exception while pinging. :: caused by :: SyncClusterConnection::update prepare failed:  [IP]:[port] (IP) failed:10276 DBClientBase::findN: transport error: [IP]:[port] ns: admin.$cmd query: { getlasterror: 1, fsync: 1 }
2016-01-15T16:15:24.715-0700 I NETWORK  [mongosMain] connection accepted from [IP]:[port] #3925105 (64 connections now open)
2016-01-15T16:15:24.715-0700 I NETWORK  [conn3925105] end connection [IP]:[port] (63 connections now open)
2016-01-15T16:15:27.717-0700 I NETWORK  [mongosMain] connection accepted from [IP]:[port] #3925106 (64 connections now open)
2016-01-15T16:15:27.718-0700 I NETWORK  [conn3925106] end connection [IP]:[port](63 connections now open)
2016-01-15T16:18:21.762-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' acquired, ts : 56997e3d110ccb8e38549a9d
2016-01-15T16:18:24.316-0700 I SHARDING [LockPinger] cluster [IP]:[port],[IP]:[port],[IP]:[port] pinged successfully at Fri Jan 15 16:18:24 2016 by distributed lock pinger '[IP]:[port],[IP]:[port],[IP]:[port]/[IP]:[port]:1442579454:1804289383', sleeping for 30000ms
2016-01-15T16:18:24.978-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' unlocked.
2016-01-15T16:18:35.295-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' acquired, ts : 56997e4a110ccb8e38549a9f
2016-01-15T16:18:38.507-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' unlocked.
2016-01-15T16:18:48.838-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' acquired, ts : 56997e58110ccb8e38549aa1
2016-01-15T16:18:52.038-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' unlocked.
2016-01-15T16:18:54.660-0700 I SHARDING [LockPinger] cluster [IP]:[port],[IP]:[port],[IP]:[port] pinged successfully at Fri Jan 15 16:18:54 2016 by distributed lock pinger '[IP]:[port],[IP]:[port],[IP]:[port]/[IP]:[port]:1442579454:1804289383', sleeping for 30000ms
2016-01-15T16:19:02.323-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' acquired, ts : 56997e66110ccb8e38549aa3
2016-01-15T16:19:05.513-0700 I SHARDING [Balancer] distributed lock 'balancer/[IP]:[port]:1442579454:1804289383' unlocked.
2016-01-15T16:21:03.426-0700 W SHARDING [conn40] Finding the split vector for Files.fs.chunks over { files_id: 1.0, n: 1.0 } keyCount: 137 numSplits: 200715 lookedAt: 46 took 17364ms
2016-01-15T16:21:03.484-0700 I COMMAND  [conn40] command admin.$cmd command: splitVector { splitVector: "Files.fs.chunks", keyPattern: { files_id: 1.0, n: 1.0 }, min: { files_id: ObjectId('5650816c827928d710ef5ef9'), n: 1 }, max: { files_id: MaxKey, n: MaxKey }, maxChunkSizeBytes: 67108864, maxSplitPoints: 0, maxChunkObjects: 250000 } ntoreturn:1 keyUpdates:0 writeConflicts:0 numYields:216396 reslen:8318989 locks:{ Global: { acquireCount: { r: 432794 } }, Database: { acquireCount: { r: 216397 } }, Collection: { acquireCount: { r: 216397 } } } 17421ms
2016-01-15T16:21:03.775-0700 I SHARDING [LockPinger] cluster [IP]:[port],[IP]:[port],[IP]:[port] pinged successfully at Fri Jan 15 16:21:03 2016 by distributed lock pinger '[IP]:[port],[IP]:[port],[IP]:[port]/[IP]:[port]:1441718306:765353801', sleeping for 30000ms
2016-01-15T16:21:04.321-0700 I SHARDING [conn40] request split points lookup for chunk Files.fs.chunks { : ObjectId('5650816c827928d710ef5ef9'), : 1 } -->> { : MaxKey, : MaxKey }
2016-01-15T16:21:08.243-0700 I SHARDING [conn46] request split points lookup for chunk Files.fs.chunks { : ObjectId('5650816c827928d710ef5ef9'), : 1 } -->> { : MaxKey, : MaxKey }
2016-01-15T16:21:10.174-0700 W SHARDING [conn37] Finding the split vector for Files.fs.chunks over { files_id: 1.0, n: 1.0 } keyCount: 137 numSplits: 200715 lookedAt: 60 took 18516ms
2016-01-15T16:21:10.232-0700 I COMMAND  [conn37] command admin.$cmd command: splitVector { splitVector: "Files.fs.chunks", keyPattern: { files_id: 1.0, n: 1.0 }, min: { files_id: ObjectId('5650816c827928d710ef5ef9'), n: 1 }, max: { files_id: MaxKey, n: MaxKey }, maxChunkSizeBytes: 67108864, maxSplitPoints: 0, maxChunkObjects: 250000 } ntoreturn:1 keyUpdates:0 writeConflicts:0 numYields:216396 reslen:8318989 locks:{ Global: { acquireCount: { r: 432794 } }, Database: { acquireCount: { r: 216397 } }, Collection: { acquireCount: { r: 216397 } } } 18574ms
2016-01-15T16:21:10.989-0700 W SHARDING [conn25] Finding the split vector for Files.fs.chunks over { files_id: 1.0, n: 1.0 } keyCount: 137 numSplits: 200715 lookedAt: 62 took 18187ms
2016-01-15T16:21:11.047-0700 I COMMAND  [conn25] command admin.$cmd command: splitVector { splitVector: "Files.fs.chunks", keyPattern: { files_id: 1.0, n: 1.0 }, min: { files_id: ObjectId('5650816c827928d710ef5ef9'), n: 1 }, max: { files_id: MaxKey, n: MaxKey }, maxChunkSizeBytes: 67108864, maxSplitPoints: 0, maxChunkObjects: 250000 } ntoreturn:1 keyUpdates:0 writeConflicts:0 numYields:216396 reslen:8318989 locks:{ Global: { acquireCount: { r: 432794 } }, Database: { acquireCount: { r: 216397 } }, Collection: { acquireCount: { r: 216397 } } } 18246ms
2016-01-15T16:21:11.365-0700 I SHARDING [conn37] request split points lookup for chunk Files.fs.chunks { : ObjectId('5650816c827928d710ef5ef9'), : 1 } -->> { : MaxKey, : MaxKey }