运行包含上限集合的副本集是否会出现问题?
出于某种原因,我的副本集上的一个辅助节点会定期以 90% 的 CPU 运行几个小时。
gdb
几乎每次都显示以下堆栈跟踪:
#0 0x00000000008c3e3a in mongo::ps::Rolling::access(unsigned long, short, bool) ()
#1 0x00000000008c3bd6 in mongo::Record::accessed() ()
#2 0x000000000086eb03 in mongo::CoveredIndexMatcher::matches(mongo::BSONObj const&, mongo::DiskLoc const&, mongo::MatchDetails*, bool) ()
#3 0x000000000086ed78 in mongo::CoveredIndexMatcher::matchesCurrent(mongo::Cursor*, mongo::MatchDetails*) ()
#4 0x00000000009794dc in mongo::UpdateOp::next() ()
#5 0x00000000008c9a96 in mongo::QueryPlanSet::Runner::nextOp(mongo::QueryOp&) ()
#6 0x00000000008d9930 in mongo::QueryPlanSet::Runner::next() ()
#7 0x00000000008d9f86 in mongo::QueryPlanSet::Runner::runUntilFirstCompletes() ()
#8 0x00000000008ddc3e in mongo::QueryPlanSet::runOp(mongo::QueryOp&) ()
#9 0x00000000008df5f5 in mongo::MultiPlanScanner::runOpOnce(mongo::QueryOp&) ()
#10 0x00000000008dfaf0 in mongo::MultiCursor::nextClause() ()
#11 0x00000000008e1bcd in mongo::MultiCursor::MultiCursor(char const*, mongo::BSONObj const&, mongo::BSONObj const&, boost::shared_ptr<mongo::MultiCursor::CursorOp>, bool) ()
#12 0x000000000095f542 in mongo::_updateObjects(bool, char const*, mongo::BSONObj const&, mongo::BSONObj, bool, bool, bool, mongo::OpDebug&, mongo::RemoveSaver*) ()
#13 0x00000000009642d5 in mongo::updateObjects(char const*, mongo::BSONObj const&, mongo::BSONObj, bool, bool, bool, mongo::OpDebug&) ()
#14 0x00000000008339cf in mongo::applyOperation_inlock(mongo::BSONObj const&, bool) ()
#15 0x00000000008232cb in mongo::ReplSetImpl::syncApply(mongo::BSONObj const&) ()
#16 0x0000000000826f65 in mongo::ReplSetImpl::syncTail() ()
#17 0x00000000008283e5 in mongo::ReplSetImpl::_syncThread() ()
#18 0x0000000000828438 in mongo::ReplSetImpl::syncThread() ()
#19 0x00000000008288d0 in mongo::startSyncThread() ()
#20 0x0000000000aabd90 in thread_proxy ()
#21 0x00007effd9cd09ca in start_thread () from /lib/libpthread.so.0
#22 0x00007effd927fcdd in clone () from /lib/libc.so.6
是否需要使用一些额外的魔法才能让有上限的收藏品得以复制?