我有一个 MongoDB 副本集。第一个每秒创建大量名为 extsort-sort-executor 的临时文件,在 10 分钟内生成超过 80Gb 的临时文件... 如果我将
allowDiskUseByDefault 设置为 false,我会收到以下错误:
查找命令期间计划执行器错误
"stats": {
"works": 88450,
"restoreState": 88,
"saveState": 88,
"advanced": 0,
"spilledDataStorageSize": 0,
"nReturned": 0,
"inputStage": {
"works": 88450,
"restoreState": 88,
"stage": "COLLSCAN",
"saveState": 88,
"advanced": 88450,
"nReturned": 88450,
"needYield": 0,
"docsExamined": 88450,
"needTime": 0,
"isEOF": 0,
"direction": "forward"
},
"failed": true,
"usedDisk": false,
"type": "simple",
"isEOF": 0,
"memLimit": 104857600,
"stage": "SORT",
"sortPattern": {
"-$natural": 1
},
"needYield": 0,
"needTime": 88449,
"totalDataSizeSorted": 0,
"spills": 0
},
"cmd": {
"filter": {},
"lsid": {
"id": {
"$uuid": "2617b402-0c61-4035-bc39-d616e412fbb3"
}
},
"$readPreference": {
"mode": "primary"
},
"$db": "local",
"$clusterTime": {
"clusterTime": {
"$timestamp": {
"t": 1704123123,
"i": 1
}
},
"signature": {
"keyId": 0,
"hash": {
"$binary": {
"base64": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"subType": "0"
}
}
}
},
"find": "oplog.rs",
"sort": {
"-$natural": 1
}
},
"error": {
"code": 292,
"codeName": "QueryExceededMemoryLimitNoDiskUseAllowed",
"errmsg": "Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting."
}
}
有人能给我指出正确的方向吗?我在哪里可以找到问题的根源?
rs.status()
{
set: 'hz0',
date: 2024-01-01T20:30:05.973Z,
myState: 1,
term: Long('12'),
syncSourceHost: '',
syncSourceId: -1,
heartbeatIntervalMillis: Long('2000'),
majorityVoteCount: 3,
writeMajorityCount: 3,
votingMembersCount: 4,
writableVotingMembersCount: 4,
optimes: {
lastCommittedOpTime: { ts: Timestamp({ t: 1704141003, i: 1 }), t: Long('12') },
lastCommittedWallTime: 2024-01-01T20:30:03.989Z,
readConcernMajorityOpTime: { ts: Timestamp({ t: 1704141003, i: 1 }), t: Long('12') },
appliedOpTime: { ts: Timestamp({ t: 1704141003, i: 1 }), t: Long('12') },
durableOpTime: { ts: Timestamp({ t: 1704141003, i: 1 }), t: Long('12') },
lastAppliedWallTime: 2024-01-01T20:30:03.989Z,
lastDurableWallTime: 2024-01-01T20:30:03.989Z
},
lastStableRecoveryTimestamp: Timestamp({ t: 1704140953, i: 1 }),
electionCandidateMetrics: {
lastElectionReason: 'priorityTakeover',
lastElectionDate: 2024-01-01T12:39:12.915Z,
electionTerm: Long('12'),
lastCommittedOpTimeAtElection: { ts: Timestamp({ t: 1704112747, i: 1 }), t: Long('11') },
lastSeenOpTimeAtElection: { ts: Timestamp({ t: 1704112747, i: 1 }), t: Long('11') },
numVotesNeeded: 3,
priorityAtElection: 15,
electionTimeoutMillis: Long('10000'),
priorPrimaryMemberId: 1,
numCatchUpOps: Long('0'),
newTermStartDate: 2024-01-01T12:39:12.926Z,
wMajorityWriteAvailabilityDate: 2024-01-01T12:39:12.944Z
},
members: [
{
_id: 0,
name: 'thor-live.d1:27017',
health: 1,
state: 1,
stateStr: 'PRIMARY',
uptime: 28268,
optime: [Object],
optimeDate: 2024-01-01T20:30:03.000Z,
lastAppliedWallTime: 2024-01-01T20:30:03.989Z,
lastDurableWallTime: 2024-01-01T20:30:03.989Z,
syncSourceHost: '',
syncSourceId: -1,
infoMessage: '',
electionTime: Timestamp({ t: 1704112752, i: 1 }),
electionDate: 2024-01-01T12:39:12.000Z,
configVersion: 15,
configTerm: 12,
self: true,
lastHeartbeatMessage: ''
},
{
_id: 1,
name: 'thor-live.d2:27017',
health: 1,
state: 2,
stateStr: 'SECONDARY',
uptime: 28263,
optime: [Object],
optimeDurable: [Object],
optimeDate: 2024-01-01T20:30:03.000Z,
optimeDurableDate: 2024-01-01T20:30:03.000Z,
lastAppliedWallTime: 2024-01-01T20:30:03.989Z,
lastDurableWallTime: 2024-01-01T20:30:03.989Z,
lastHeartbeat: 2024-01-01T20:30:04.769Z,
lastHeartbeatRecv: 2024-01-01T20:30:04.202Z,
pingMs: Long('0'),
lastHeartbeatMessage: '',
syncSourceHost: 'thor-live.d1:27017',
syncSourceId: 0,
infoMessage: '',
configVersion: 15,
configTerm: 12
},
{
_id: 2,
name: 'thor-live.d3:27017',
health: 1,
state: 2,
stateStr: 'SECONDARY',
uptime: 28263,
optime: [Object],
optimeDurable: [Object],
optimeDate: 2024-01-01T20:30:03.000Z,
optimeDurableDate: 2024-01-01T20:30:03.000Z,
lastAppliedWallTime: 2024-01-01T20:30:03.989Z,
lastDurableWallTime: 2024-01-01T20:30:03.989Z,
lastHeartbeat: 2024-01-01T20:30:04.769Z,
lastHeartbeatRecv: 2024-01-01T20:30:04.762Z,
pingMs: Long('0'),
lastHeartbeatMessage: '',
syncSourceHost: 'thor-live.d2:27017',
syncSourceId: 1,
infoMessage: '',
configVersion: 15,
configTerm: 12
},
{
_id: 3,
name: 'thor-live.d4:27017',
health: 1,
state: 2,
stateStr: 'SECONDARY',
uptime: 28263,
optime: [Object],
optimeDurable: [Object],
optimeDate: 2024-01-01T20:30:03.000Z,
optimeDurableDate: 2024-01-01T20:30:03.000Z,
lastAppliedWallTime: 2024-01-01T20:30:03.989Z,
lastDurableWallTime: 2024-01-01T20:30:03.989Z,
lastHeartbeat: 2024-01-01T20:30:04.769Z,
lastHeartbeatRecv: 2024-01-01T20:30:04.760Z,
pingMs: Long('0'),
lastHeartbeatMessage: '',
syncSourceHost: 'thor-live.d2:27017',
syncSourceId: 1,
infoMessage: '',
configVersion: 15,
configTerm: 12
}
],
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1704141003, i: 1 }),
signature: {
hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0),
keyId: Long('0')
}
},
operationTime: Timestamp({ t: 1704141003, i: 1 })
}