๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ถœ๋ ฅ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ์˜ˆ์‹œ system.profile ๋ฌธ์„œ
  • ์ถœ๋ ฅ ์ฐธ์กฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—…, ์ปค์„œ ์ž‘์—…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํ•„์„ ๊ตฌ์„ฑํ•˜๊ณ  ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ ์บก์ฒ˜ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ๊ณ ์ • ์‚ฌ์ด์ฆˆ ์ปฌ๋ ‰์…˜์ธ system.profile ์ปฌ๋ ‰์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์”๋‹ˆ๋‹ค. ํ”„๋กœํŒŒ์ผ๋Ÿฌ์˜ ์ถœ๋ ฅ์„ ๋ณด๋ ค๋ฉด system.profile ์ปฌ๋ ‰์…˜์—์„œ ์ผ๋ฐ˜ MongoDB ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ system.profile ์ปฌ๋ ‰์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ ์ „์šฉ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ์—๋„ ์ผ๋ถ€ ์“ฐ๊ธฐ ํ™œ๋™์„ ํ”„๋กœํŒŒ์ผ๋งํ•ฉ๋‹ˆ๋‹ค.

currentOp ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ ๋ชจ๋“  CRUD ์ž‘์—…์— ๋Œ€ํ•ด ๋™์ผํ•œ ๊ธฐ๋ณธ ์ง„๋‹จ ์ •๋ณด๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ž‘์—…์€ ๋Š๋ฆฐ ์ฟผ๋ฆฌ ๋กœ๊น…์—๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋Š๋ฆฐ ์ฟผ๋ฆฌ ๋กœ๊น…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ slowOpThresholdMs ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด์ œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ system.profile ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•ด ์ฝ๊ธฐ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

MongoDB Server๊ฐ€ ์ถฉ๋Œํ•˜๋ฏ€๋กœ system.profile ์ด๋ผ๋Š” ์ด๋ฆ„์˜ time series ์ปฌ๋ ‰์…˜ ๋˜๋Š” ๋ทฐ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ๋งˆ์„ธ์š”.

๋‹ค์Œ์€ ๋…๋ฆฝํ˜• ์ž‘์—…์— ๋Œ€ํ•œ system.profile collection์— ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

system.profile ์˜ ๋‹ค์Œ ๋ฌธ์„œ์—๋Š” ์ฐพ๊ธฐ ์ž‘์—…์ด ๋ฐ˜์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

{
"op" : "query",
"ns" : "test.report",
"command" : {
"find" : "report",
"filter" : { "a" : { "$lte" : 500 } },
"lsid" : {
"id" : UUID("5ccd5b81-b023-41f3-8959-bf99ed696ce9")
},
"$db" : "test"
},
"cursorid" : 33629063128,
"keysExamined" : 101,
"docsExamined" : 101,
"fromMultiPlanner" : true,
"numYield" : 2,
"nreturned" : 101,
"queryHash" : "811451DD",
"planCacheKey" : "759981BA",
"locks" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(3),
"w" : NumberLong(3)
}
},
"Database" : {
"acquireCount" : { "r" : NumberLong(3) },
"acquireWaitCount" : { "r" : NumberLong(1) },
"timeAcquiringMicros" : { "r" : NumberLong(69130694) }
},
"Collection" : {
"acquireCount" : { "r" : NumberLong(3) }
}
},
"storage" : {
"data" : {
"bytesRead" : NumberLong(14736),
"timeReadingMicros" : NumberLong(17)
}
},
"responseLength" : 1305014,
"protocol" : "op_msg",
"millis" : 69132,
"planSummary" : "IXSCAN { a: 1, _id: -1 }",
"execStats" : {
"stage" : "FETCH",
"nReturned" : 101,
"executionTimeMillisEstimate" : 0,
"works" : 101,
"advanced" : 101,
"needTime" : 0,
"needYield" : 0,
"saveState" : 3,
"restoreState" : 2,
"isEOF" : 0,
"docsExamined" : 101,
"alreadyHasObj" : 0,
"inputStage" : {
...
}
},
"ts" : ISODate("2019-01-14T16:57:33.450Z"),
"client" : "127.0.0.1",
"appName" : "MongoDB Shell",
"allUsers" : [
{
"user" : "someuser",
"db" : "admin"
}
],
"user" : "someuser@admin"
}

update (๋ฐ delete) ์ž‘์—…์— ๋Œ€ํ•œ ํ”„๋กœํ•„ ํ•ญ๋ชฉ์—๋Š” ์ „์ฒด ์—…๋ฐ์ดํŠธ ๋ช…๋ น์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋Š” report ์ด๋ผ๋Š” ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•œ update ์ž‘์—…์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

{
"op" : "update",
"ns" : "test.report",
"command" : {
"q" : { },
"u" : { "$rename" : { "a" : "b" } },
"multi" : true,
"upsert" : false
},
"keysExamined" : 0,
"docsExamined" : 25000,
"nMatched" : 25000,
"nModified" : 25000,
"keysInserted" : 25000,
"keysDeleted" : 25000000,
"numYield" : 6985,
"locks" : {
"Global" : {
"acquireCount" : { "r" : NumberLong(6986), "w" : NumberLong(13972) }
},
"Database" : {
"acquireCount" : { "w" : NumberLong(6986) },
"acquireWaitCount" : { "w" : NumberLong(1) },
"timeAcquiringMicros" : { "w" : NumberLong(60899375) }
},
"Collection" : {
"acquireCount" : { "w" : NumberLong(6986) }
},
"Mutex" : {
"acquireCount" : { "r" : NumberLong(25000) }
}
},
"storage" : {
"data" : {
"bytesRead" : NumberLong(126344060),
"bytesWritten" : NumberLong(281834762),
"timeReadingMicros" : NumberLong(94549),
"timeWritingMicros" : NumberLong(139361)
}
},
"millis" : 164687,
"planSummary" : "COLLSCAN",
"execStats" : {
"stage" : "UPDATE",
"nReturned" : 0,
"executionTimeMillisEstimate" : 103771,
"works" : 25003,
"advanced" : 0,
"needTime" : 25002,
"needYield" : 0,
"saveState" : 6985,
"restoreState" : 6985,
"isEOF" : 1,
"nMatched" : 25000,
"nWouldModify" : 25000,
"wouldInsert" : false,
"inputStage" : {
"stage" : "COLLSCAN",
"nReturned" : 25000,
"executionTimeMillisEstimate" : 0,
"works" : 25002,
"advanced" : 25000,
"needTime" : 1,
"needYield" : 0,
"saveState" : 31985,
"restoreState" : 31985,
"isEOF" : 1,
"direction" : "forward",
"docsExamined" : 25000
}
},
"ts" : ISODate("2019-01-14T23:33:01.806Z"),
"client" : "127.0.0.1",
"appName" : "MongoDB Shell",
"allUsers" : [
{
"user" : "someuser",
"db" : "admin"
}
],
"user" : "someuser@admin"
}

๋ชจ๋“  ๋‹จ์ผ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑํ•œ ๋ฌธ์„œ์—๋Š” ๋‹ค์Œ ํ•„๋“œ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์„œ์—์„œ ํ•„๋“œ์˜ ์ •ํ™•ํ•œ ์„ ํƒ์€ ์ž‘์—… ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋Š๋ฆฐ ์ž‘์—…์˜ ๊ฒฝ์šฐ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ํ•ญ๋ชฉ ๋ฐ ์ง„๋‹จ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์— storage ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB ๋ฒ„์ „๋ณ„ ์ถœ๋ ฅ์„ ๋ณด๋ ค๋ฉด ํ•ด๋‹น ๋ฒ„์ „์˜ MongoDB ๋งค๋‰ด์–ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

system.profile.op

์ž‘์—… ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • command

  • count

  • distinct

  • geoNear

  • getMore

  • group

  • insert

  • mapReduce

  • query

  • remove

  • update

system.profile.ns

์ž‘์—…์ด ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค . MongoDB์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ๋’ค์— ์ (.)์ด ์˜ค๊ณ , ๊ทธ ๋’ค์— ์ปฌ๋ ‰์…˜ ์ด๋ฆ„์ด ์˜ค๋Š” ํ˜•์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค.

system.profile.command

์ด ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์ „์ฒด ๋ช…๋ น ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ์ถœ๋ ฅ์—๋Š” test ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ items ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•œ find ์ž‘์—…์— ๋Œ€ํ•œ ๋ช…๋ น ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

"command" : {
"find" : "items",
"filter" : {
"sku" : 1403978
},
...
"$db" : "test"
}

๋‹ค์Œ ์˜ˆ์ œ ์ถœ๋ ฅ์—๋Š” test ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ items ์ปฌ๋ ‰์…˜์—์„œ ์ปค์„œ ID๊ฐ€ 19234103609์ธ ๋ช…๋ น์— ์˜ํ•ด ์ƒ์„ฑ๋œ getMore ์ž‘์—…์— ๋Œ€ํ•œ ๋ช…๋ น ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

"command" : {
"getMore" : NumberLong("19234103609"),
"collection" : "items",
"batchSize" : 10,
...
"$db" : "test"
},

๋ช…๋ น ๋ฌธ์„œ๊ฐ€ 50KB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์„œ์˜ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"command" : {
"$truncated": <string>,
"comment": <string>
}

$truncated ํ•„๋“œ๋Š” ๋ฌธ์„œ์˜ comment ํ•„๋“œ(์žˆ๋Š” ๊ฒฝ์šฐ)๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์„œ์˜ ๋ฌธ์ž์—ด ์š”์•ฝ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์š”์•ฝ์ด ์—ฌ์ „ํžˆ 50ํ‚ฌ๋กœ๋ฐ”์ดํŠธ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋” ์ž˜๋ฆฌ๊ฒŒ ๋˜์–ด ๋ฌธ์ž์—ด ๋์— ์ค„์ž„ํ‘œ(...)๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

comment ํ•„๋“œ๋Š” ์ฃผ์„์ด ์ž‘์—…์— ์ „๋‹ฌ๋œ ๊ฒฝ์šฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์— ์ฃผ์„์„ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.originatingCommand

๋ฒ„์ „ 3.6์—์„œ ๋ณ€๊ฒฝ๋จ.

์ปค์„œ์—์„œ ๋‹ค์Œ ๊ฒฐ๊ณผ ๋ฐฐ์น˜๋ฅผ ์กฐํšŒํ•˜๋Š” "getmore" ์ž‘์—…์˜ ๊ฒฝ์šฐ originatingCommand ํ•„๋“œ์— ์ปค์„œ๋ฅผ ์ฒ˜์Œ ์ƒ์„ฑํ•œ ์ „์ฒด ๋ช…๋ น ๊ฐ์ฒด(์˜ˆ: find ๋˜๋Š” aggregate)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

system.profile.cursorid

query ๋ฐ getmore ์ž‘์—…์œผ๋กœ ์•ก์„ธ์Šค๋˜๋Š” ์ปค์„œ์˜ ID์ž…๋‹ˆ๋‹ค.

system.profile.keysExamined

๋ฒ„์ „ 3.2.0์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

system.profile.nscanned ์—์„œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด MongoDB๊ฐ€ ์Šค์บ”ํ•œ ์ธ๋ฑ์Šค ํ‚ค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ keysExamined๊ฐ€ nreturned๋ณด๋‹ค ํ›จ์”ฌ ๋†’์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ฒฐ๊ณผ ๋ฌธ์„œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ธ๋ฑ์Šค ํ‚ค๋ฅผ ์Šค์บ”ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ž‘์„ฑ ๋˜๋Š” ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.4์—์„œ ๋ณ€๊ฒฝ๋จ.

keysExamined ๋‹ค์Œ ๋ช…๋ น๊ณผ ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.docsExamined

๋ฒ„์ „ 3.2.0์—์„œ ๋ณ€๊ฒฝ๋จ: system.profile.nscannedObjects ์—์„œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด MongoDB๊ฐ€ ์Šค์บ”ํ•œ collection์˜ ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.4์—์„œ ๋ณ€๊ฒฝ๋จ.

docsExamined ๋‹ค์Œ ๋ช…๋ น๊ณผ ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.hasSortStage

๋ฒ„์ „ 3.2.0์—์„œ ๋ณ€๊ฒฝ๋จ: system.profile.scanAndOrder ์—์„œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

hasSortStage๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์ธ๋ฑ์Šค์˜ ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ๋œ ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†์„ ๋•Œ true๊ฐ€ ๋˜๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด MongoDB๋Š” ์ปค์„œ์—์„œ ๋ฌธ์„œ๋ฅผ ๋ฐ›์€ ํ›„ ๋ฌธ์„œ๋ฅผ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋Š” ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.4์—์„œ ๋ณ€๊ฒฝ๋จ.

hasSortStage ๋‹ค์Œ ๋ช…๋ น๊ณผ ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.usedDisk

๋ฒ„์ „ 4.2์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์œผ๋กœ ์ธํ•ด ์• ๊ทธ๋ฆฌ๊ฒŒ์ด์…˜ ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ํŒŒ์ผ์— ์ผ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.

usedDisk๊ฐ€ true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

system.profile.ndeleted

์ž‘์—…์„ ํ†ตํ•ด ์‚ญ์ œ๋œ ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.ninserted

์ž‘์—…์œผ๋กœ ์‚ฝ์ž…๋œ ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.nMatched

์—…๋ฐ์ดํŠธ ์ž‘์—…์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.nModified

์—…๋ฐ์ดํŠธ ์ž‘์—…์œผ๋กœ ์ˆ˜์ •๋œ ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.upsert

์—…๋ฐ์ดํŠธ ์ž‘์—…์˜ upsert ์˜ต์…˜ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค. upsert์ด(๊ฐ€) true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

system.profile.fromMultiPlanner

๋ฒ„์ „ 3.2.5์— ์ถ”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ํ”Œ๋ž˜๋„ˆ๊ฐ€ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ฑ๊ณต์ ์ธ ์‹คํ–‰ ๊ณ„ํš์„ ์„ ํƒํ•˜๊ธฐ ์ „์— ์—ฌ๋Ÿฌ ๊ณ„ํš์„ ํ‰๊ฐ€ํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.

๊ฐ’์ด true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

system.profile.replanned

๋ฒ„์ „ 3.2.5์— ์ถ”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ์‹œ์Šคํ…œ์ด ์บ์‹œ๋œ ๊ณ„ํš์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ชจ๋“  ํ›„๋ณด ๊ณ„ํš์„ ์žฌํ‰๊ฐ€ํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค.

๊ฐ’์ด true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

system.profile.replanReason

์บ์‹œ๋œ ๊ณ„ํš์ด ์ œ๊ฑฐ๋œ ๊ตฌ์ฒด์ ์ธ ์ด์œ ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

replanned ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

system.profile.keysInserted

์ง€์ •๋œ ์“ฐ๊ธฐ ์ž‘์—…์— ๋Œ€ํ•ด ์‚ฝ์ž…๋œ ์ธ๋ฑ์Šค ํ‚ค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.keysDeleted

3.4์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์—์„œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ธ๋ฑ์Šค ํ‚ค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด์ „ ํ‚ค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  B-ํŠธ๋ฆฌ ์ธ๋ฑ์Šค์— ์ƒˆ ํ‚ค๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

system.profile.writeConflicts

์“ฐ๊ธฐ ์ž‘์—… ์ค‘์— ๋ฐœ์ƒํ•œ ์ถฉ๋Œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด update ์ž‘์—…์ด ๋‹ค๋ฅธ update ์ž‘์—…๊ณผ ๋™์ผํ•œ ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ์ถฉ๋Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

system.profile.numYield

๋‹ค๋ฅธ ์ž‘์—…์ด ์™„๋ฃŒ๋  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์—…์„ ์–‘๋ณดํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์—…์€ MongoDB๊ฐ€ ์•„์ง ๋ฉ”๋ชจ๋ฆฌ๋กœ ์™„์ „ํžˆ ์ฝ์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•  ๋•Œ ์–‘๋ณดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด MongoDB๊ฐ€ ์‚ฐ์ถœ ์ž‘์—…์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž‘์—…์ด ์–‘๋ณด๋˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ FAQ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

system.profile.queryHash

์ฟผ๋ฆฌ ํ˜•ํƒœ์˜ ํ•ด์‹œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ฟผ๋ฆฌ ํ˜•ํƒœ์—๋งŒ ์ข…์†๋˜๋Š” 16์ง„์ˆ˜ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. queryHash๋Š” ๋™์ผํ•œ ์ฟผ๋ฆฌ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ๋Š๋ฆฐ ์ฟผ๋ฆฌ(์“ฐ๊ธฐ ์ž‘์—…์˜ ์ฟผ๋ฆฌ ํ•„ํ„ฐ ํฌํ•จ)๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‹ค๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ํ˜•ํƒœ๊ฐ€ ๋™์ผํ•œ ํ•ด์‹œ ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ํ˜•ํƒœ ๊ฐ„์— ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

queryHash ๋ฐ planCacheKey์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ queryHash ๋ฐ planCacheKey๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ฒ„์ „ 4.2์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

system.profile.planCacheKey

์ฟผ๋ฆฌ์™€ ์—ฐ๊ด€๋œ ๊ณ„ํš ์บ์‹œ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ํ‚ค์˜ ํ•ด์‹œ์ž…๋‹ˆ๋‹ค.

queryHash์™€ ๋‹ฌ๋ฆฌ planCacheKey๋Š” ์ฟผ๋ฆฌ ํ˜•ํƒœ์™€ ํ•ด๋‹น ํ˜•ํƒœ์— ๋Œ€ํ•ด ํ˜„์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ธ๋ฑ์Šค์˜ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ฟผ๋ฆฌ ํ˜•ํƒœ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€/์ œ๊ฑฐํ•˜๋ฉด planCacheKey ๊ฐ’์€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋‚˜ queryHash ๊ฐ’์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

queryHash ๋ฐ planCacheKey์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ queryHash ๋ฐ planCacheKey๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ฒ„์ „ 4.2์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

system.profile.locks

system.profile.locks๋Š” ์ž‘์—… ์ค‘์— ์œ ์ง€๋˜๋Š” ๋‹ค์–‘ํ•œ ์ž ๊ธˆ ์œ ํ˜• ๋ฐ ์ž ๊ธˆ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ์ž ๊ธˆ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ์œ ํ˜•
์„ค๋ช…
ParallelBatchWriterMode

๋ณ‘๋ ฌ ๋ฐฐ์น˜ ์“ฐ๊ธฐ ๋ชจ๋“œ์˜ ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์—์„œ๋Š” PBWM ์ •๋ณด๊ฐ€ Global ์ž ๊ธˆ ์ •๋ณด์˜ ์ผ๋ถ€๋กœ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ReplicationStateTransition
๋ ˆํ”Œ๋ฆฌ์นด ์„ธํŠธ ๋ฉค๋ฒ„ ์ƒํƒœ ์ „ํ™˜์— ์ทจํ•œ ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Global
๊ธ€๋กœ๋ฒŒ ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Database
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Collection
์ปฌ๋ ‰์…˜ ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Mutex
๋ฎคํ…์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
Metadata
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
oplog
oplog ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ž ๊ธˆ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž ๊ธˆ ๋ชจ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž ๊ธˆ ๋ชจ๋“œ
์„ค๋ช…
R
๊ณต์œ (S) ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
W
๋…์ (X) ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
r
์ธํ…ํŠธ ๊ณต์œ (IS) ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
w
์ธํ…ํŠธ ๋…์ (IX) ์ž ๊ธˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ์ž ๊ธˆ ์œ ํ˜•์— ๋Œ€ํ•ด ๋ฐ˜ํ™˜๋˜๋Š” ์ž ๊ธˆ ์ •๋ณด์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

system.profile.locks.acquireCount

์ž‘์—…์ด ์ง€์ •๋œ ๋ชจ๋“œ์—์„œ ์ž ๊ธˆ์„ ํš๋“ํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.locks.acquireWaitCount

์ž ๊ธˆ์ด ์ถฉ๋Œ ๋ชจ๋“œ์—์„œ ์œ ์ง€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์ด acquireCount๊ฐœ์˜ ์ž ๊ธˆ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ–ˆ๋˜ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. acquireWaitCount๊ฐ€ acquireCount๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.

system.profile.locks.timeAcquiringMicros

์ž‘์—…์ด ์ž ๊ธˆ์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•ด์•ผ ํ–ˆ๋˜ ๋ˆ„์  ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

timeAcquiringMicros๋ฅผ acquireWaitCount๋กœ ๋‚˜๋ˆ„๋ฉด ํŠน์ • ์ž ๊ธˆ ๋ชจ๋“œ์˜ ๋Œ€๋žต์ ์ธ ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.locks.deadlockCount

์ž ๊ธˆ ํš๋“์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ž‘์—…์—์„œ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž ๊ธˆ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ MongoDB๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ž ๊ธˆ ์œ ํ˜•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

system.profile.authorization

๋ฒ„์ „ 5.0.0์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์บ์‹œ์— ์•ก์„ธ์Šค๋˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์ง€ํ‘œ๋Š” ์ž‘์—…์ด ์‚ฌ์šฉ์ž ์บ์‹œ์— ํ•œ ๋ฒˆ ์ด์ƒ ์•ก์„ธ์Šคํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ง€ํ‘œ๋Š” ์ €์† ์ž‘์—… ๋กœ๊น… ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋ง ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.authorization๋Š” db.currentOp() ์ถœ๋ ฅ์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

system.profile.authorization.startedUserCacheAcquisitionAttempts

์ž‘์—…์ด ์‚ฌ์šฉ์ž ์บ์‹œ์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.authorization.completedUserCacheAcquisitionAttempts

์ž‘์—…์ด ์‚ฌ์šฉ์ž ์บ์‹œ์—์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.authorization.userCacheWaitTimeMicros

์ž‘์—…์ด ์‚ฌ์šฉ์ž ์บ์‹œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ ์†Œ๋น„ํ•œ ์ด ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

system.profile.storage

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

system.profile.storage ์ •๋ณด๋Š” ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ง€ํ‘œ์™€ ์ž‘์—… ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ์Šคํ† ๋ฆฌ์ง€ ์ง€ํ‘œ๋Š” ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋งŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

system.profile.storage.data.bytesRead

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

๋””์Šคํฌ์—์„œ ์บ์‹œ๋กœ ์ž‘์—…์„ ํ†ตํ•ด ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋””์Šคํฌ์—์„œ ์บ์‹œ๋กœ ์ฝ์€ ๋ฐ์ดํ„ฐ์—๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์บ์‹œ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋””์Šคํฌ์—์„œ ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜๋Š” 0์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””์Šคํฌ์—์„œ ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜์—๋Š” ์ฟผ๋ฆฌ๋œ ๋ฌธ์„œ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ”์ดํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • WiredTiger๋Š” ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ฝ์œผ๋ฉฐ ํŽ˜์ด์ง€์—๋Š” ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๊ฐ€ ํŽ˜์ด์ง€์— ์žˆ์œผ๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ์บ์‹œ๋กœ ์ฝ์–ด์™€์„œ bytesRead ๊ฐ’์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • ์บ์‹œ์— ํŽ˜์ด์ง€ ๊ด€๋ฆฌ(์˜ˆ: ์ œ๊ฑฐ ๋˜๋Š” ๋‹ค์‹œ ์ฝ๊ธฐ)๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ bytesRead ๊ฐ’์—๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์˜ ๋””์Šคํฌ์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ์ธ๋ฑ์Šค๊ฐ€ ์บ์‹œ์— ์—†๊ฑฐ๋‚˜ ์บ์‹œ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์˜ค๋ž˜๋œ ๊ฒฝ์šฐ, WiredTiger๋Š” ๋””์Šคํฌ์—์„œ ์—ฌ๋Ÿฌ ๋‚ด๋ถ€ ๋ฐ ๋ฆฌํ”„ ํŽ˜์ด์ง€๋ฅผ ์ฝ์–ด ์บ์‹œ์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

system.profile.storage.data.timeReadingMicros

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ž‘์—…์ด ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.storage.data.bytesWritten

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ž‘์—…์œผ๋กœ ์ธํ•ด ์บ์‹œ์—์„œ ๋””์Šคํฌ๋กœ ์“ฐ์—ฌ์ง„ ๋ฐ”์ดํŠธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

WiredTiger๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋””์Šคํฌ์— ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ์— ์˜ํ•ด ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ์— ๊ธฐ๋ก๋˜๋ฉฐ, WiredTiger๋Š” ์ œ๊ฑฐ ๋˜๋Š” ์ฒดํฌํฌ์ธํŠธ ์ž‘์—…์˜ ์ผ๋ถ€๋กœ ๋””์Šคํฌ๋กœ ํ”Œ๋Ÿฌ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ bytesWritten์€ 0์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์Šค๋ ˆ๋“œ์— ๊ฐ•์ œ ํŽ˜์ด์ง€ ๊ด€๋ฆฌ(์˜ˆ: ์ œ๊ฑฐ)๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ WiredTiger๋Š” ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ๋””์Šคํฌ์— ์”๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ์‹œ์—๋Š” ์ฟผ๋ฆฌ ์ž์ฒด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ๊ด€๋ จ์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด bytesWritten์ด ์˜ˆ์ƒ๋ณด๋‹ค ๋†’์€ ๊ฐ’์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.storage.data.timeWritingMicros

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ž‘์—…์ด ๋””์Šคํฌ์— ์“ฐ๋Š” ๋ฐ ์†Œ์š”๋œ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.storage.timeWaitingMicros.cache

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ž‘์—…์ด ์บ์‹œ์˜ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•ด์•ผ ํ–ˆ๋˜ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.storage.timeWaitingMicros.schemaLock

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ž‘์—…(์Šคํ‚ค๋งˆ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ)์ด ์Šคํ‚ค๋งˆ ์ž ๊ธˆ์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.storage.timeWaitingMicros.handleLock

๋ฒ„์ „ 4.2์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ: (4.0.9๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ•ธ๋“ค์— ๋Œ€ํ•œ ์ž ๊ธˆ์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์ด ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„(๋งˆ์ดํฌ๋กœ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.nreturned

์ž‘์—…์—์„œ ๋ฐ˜ํ™˜๋œ ๋ฌธ์„œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

system.profile.responseLength

์ž‘์—… ๊ฒฐ๊ณผ ๋ฌธ์„œ์˜ ๊ธธ์ด(๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค. responseLength๊ฐ€ ํฌ๋ฉด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์ž‘์—…์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ ๋ฌธ์„œ์˜ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB๊ฐ€ ๋กœ๊ทธ์— ์ฟผ๋ฆฌ ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•  ๋•Œ responseLength ๊ฐ’์€ ์ด๋ฆ„์ด reslen์ธ ํ•„๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

system.profile.protocol

MongoDB Wire Protocol ์š”์ฒญ ๋ฉ”์‹œ์ง€ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

system.profile.millis

mongod ๊ด€์ ์—์„œ ์ž‘์—… ์‹œ์ž‘๋ถ€ํ„ฐ ์ž‘์—… ์ข…๋ฃŒ๊นŒ์ง€์˜ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค.

system.profile.planSummary

๋ฒ„์ „ 3.4์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ณ„ํš์— ๋Œ€ํ•œ ์š”์•ฝ์ž…๋‹ˆ๋‹ค.

system.profile.execStats

์ฟผ๋ฆฌ ์ž‘์—…์˜ ์‹คํ–‰ ํ†ต๊ณ„๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๊ฐ’์€ ๋นˆ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

system.profile.execStats(์€)๋Š” ํ†ต๊ณ„๋ฅผ ํŠธ๋ฆฌ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, ๊ฐ ๋…ธ๋“œ๋Š” ์ฟผ๋ฆฌ ์ž‘์—…์˜ ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ ์‹คํ–‰๋œ ์ž‘์—…์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‹จ๊ณ„๋ณ„๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ํ•„๋“œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— execStats์— ๋Œ€ํ•œ ๋‹ค์Œ ํ•„๋“œ ๋ชฉ๋ก์€ ์™„์ „ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

system.profile.execStats.stage

์ฟผ๋ฆฌ ์‹คํ–‰์˜ ์ผ๋ถ€๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์„ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค(์˜ˆ:

  • COLLSCAN ์ปฌ๋ ‰์…˜ ์Šค์บ”์šฉ

  • IXSCAN ์ธ๋ฑ์Šค ํ‚ค ์Šค์บ”์šฉ

  • FETCH ๋ฌธ์„œ ๊ฒ€์ƒ‰์šฉ

system.profile.execStats.inputStages

ํ˜„์žฌ ๋‹จ๊ณ„์˜ ์ž…๋ ฅ ๋‹จ๊ณ„์ธ ์ž‘์—…์— ๋Œ€ํ•œ ํ†ต๊ณ„๊ฐ€ ํฌํ•จ๋œ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

system.profile.ts

์ž‘์—…์˜ ํƒ€์ž„์Šคํƒฌํ”„์ž…๋‹ˆ๋‹ค.

system.profile.client

์ž‘์—…์ด ์‹œ์ž‘๋œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์˜ IP ์ฃผ์†Œ ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

system.profile.appName

๋ฒ„์ „ 3.4์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—…์„ ์‹คํ–‰ํ•œ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. appName ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ appName ํ•„๋“œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

system.profile.allUsers

์„ธ์…˜์— ๋Œ€ํ•œ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž ์ •๋ณด(์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„์˜ ์‚ฌ์šฉ์ž๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

system.profile.user

์ž‘์—…์„ ์‹คํ–‰ํ•œ ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค. ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ํ•„๋“œ์˜ ๊ฐ’์€ ๋นˆ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœํŒŒ์ผ๋Ÿฌ

๋‹ค์Œ

Transparent Huge Pages ๋น„ํ™œ์„ฑํ™”

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ