日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB分析工具之三:db.currentOp()

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB分析工具之三:db.currentOp() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

db.currentOp()

db.currentOp是個好東西,顧名思義,就是當前的操作。在mongodb中可以查看當前數據庫上此刻的操作語句信息,包括insert/query/update/remove/getmore/command等多種操作。直接執行

db.currentOp()一般返回一個空的數組,我們可以指定一個參數true,這樣就返回用戶connections與系統cmmand相關的操作。下面看個列子:

db.currentOp(true) 會返回很多信息:

db.currentOp()

查看數據庫當前執行什么操作。

用于查看長時間運行進程。

通過(執行時長、操作、鎖、等待鎖時長)等條件過濾。

重點關注以下幾個字段:

字段說明
client請求是由哪個客戶端發起的。
opid操作的opid,有需要的話,可以通過db.killOp(opid) 直接終止該操作。
secs_running/microsecs_running這個值重點關注,代表請求運行的時間,如果這個值特別大,請看看請求是否合理。
query/ns這個字段能看出是對哪個集合正在執行什么操作。
lock*- 還有一些跟鎖相關的參數,需要了解可以看官網文檔,本文不做詳細介紹。
- db.currentOp文檔請參見:db.currentOp?。

返回信息:

{"inprog": [{"host" : <string>,"desc" : <string>,"connectionId" : <number>,"client" : <string>,"appName" : <string>,"clientMetadata" : <document>,"active" : <boolean>,"currentOpTime" : <string>,"opid" : <number>,"secs_running" : <NumberLong()>,"microsecs_running" : <number>,"op" : <string>,"ns" : <string>,"command" : <document>,"originatingCommand" : <document>,"planSummary": <string>,"msg": <string>,"progress" : {"done" : <number>,"total" : <number>},"killPending" : <boolean>,"numYields" : <number>,"locks" : {"Global" : <string>,"MMAPV1Journal" : <string>,"Database" : <string>,"Collection" : <string>,"Metadata" : <string>,"oplog" : <string>},"waitingForLock" : <boolean>,"lockStats" : {"Global": {"acquireCount": {"r": <NumberLong>,"w": <NumberLong>,"R": <NumberLong>,"W": <NumberLong>},"acquireWaitCount": {"r": <NumberLong>,"w": <NumberLong>,"R": <NumberLong>,"W": <NumberLong>},"timeAcquiringMicros" : {"r" : NumberLong(0),"w" : NumberLong(0),"R" : NumberLong(0),"W" : NumberLong(0)},"deadlockCount" : {"r" : NumberLong(0),"w" : NumberLong(0),"R" : NumberLong(0),"W" : NumberLong(0)}},"MMAPV1Journal": {...},"Database" : {...},...}},...],"fsyncLock": <boolean>,"info": <string>,"ok": 1 }

?

返回字段說明:

currentOp.host:運行該操作的主機的名稱。
currentOp.desc:客戶端的描述。這個字符串包括connectionId。
currentOp.connectionId:操作起源的連接的標識符。
currentOp.client:包含有關操作起源的信息的字符串。
對于多文檔事務,客戶機存儲要在事務中運行操作的最新客戶機的信息。
currentOp.appName:包含發出請求的客戶機類型信息的字符串。
currentOp.clientMetadata:關于客戶端的附加信息。
對于多文檔事務,客戶機存儲要在事務中運行操作的最新客戶機的信息。
currentOp.currentOpTime:操作的開始時間。新版本3.6。
currentOp.lsid:會話標識符。僅當操作與會話關聯時才顯示。新版本3.6。
currentOp.transaction:包含多文檔事務信息的文檔。僅當操作是事務的一部分時才出現。新版本4.0。
currentOp.transaction.parameters:包含多文檔事務信息的文檔。僅當操作是事務的一部分時才出現。新版本4.0。
currentOp.transaction.parameters.txnNumber:事務數量。僅當操作是事務的一部分時才出現。新版本4.0。
currentOp.transaction.parameters.autocommit:一個布爾標志,指示事務的自動提交是否打開。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.parameters.readConcern:事務的read關注點。多文檔事務支持讀取關注點“快照”、“本地”和“多數”。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.readTimestamp:事務中的操作正在讀取快照的時間戳。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.startWallClockTime:事務開始的日期和時間(帶有時區)。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.timeOpenMicros事務的持續時間(以微秒為單位)。添加到timeInactiveMicros的timeActiveMicros值應該等于timeOpenMicros。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.timeActiveMicros:交易活動的總時間;例如,當事務運行操作時。添加到timeInactiveMicros的timeActiveMicros值應該等于timeOpenMicros。僅當操作是事務的一部分時才出現。新版本4.0.2。
currentOp.transaction.timeInactiveMicros:該事務處于非活動狀態的總時間;例如,當事務沒有運行任何操作時。添加到timeActiveMicros的timeInactiveMicros值應該等于timeOpenMicros。僅當操作是事務的一部分時才出現。
currentOp.transaction.expiryTime:事務超時并中止的日期和時間(帶有時區)。
currentOp.transaction:呼氣時間等于current .transaction。startWallClockTime + transactionLifetimeLimitSeconds。有關更多信息,請參見事務的運行時限制。僅當操作是事務的一部分時才出現。新版本4.0.2。

currentOp.opid:操作的標識符。您可以將此值傳遞給mongo shell中的db.killOp()來終止操作。
警告
非常謹慎地終止運行操作。只使用db.killOp()終止客戶機發起的操作,而不終止內部數據庫操作。

currentOp.active:指定操作是否已啟動的布爾值。如果操作已經啟動,則值為true;如果操作是空閑的,則值為false,例如空閑連接或當前空閑的內部線程。一個操作可以是活動的,即使該操作已被另一個操作取代。在3.0版本中進行了更改:對于一些非活動的后臺線程,例如非活動的signalProcessingThread, MongoDB會抑制各種空字段。
currentOp.secs_running:操作持續時間(以秒為單位)。MongoDB通過從操作開始時減去當前時間來計算這個值。僅當操作正在運行時才出現;也就是說,如果active為真。
currentOp.microsecs_running:操作持續時間(以微秒為單位)。MongoDB通過從操作開始時減去當前時間來計算這個值。僅當操作正在運行時才出現;也就是說,如果active為真。
currentOp.op:標識操作類型的字符串。可能的值是:

  • "none"
  • "update"
  • "insert"
  • "query"
  • "command"
  • "getmore"
  • "remove"
  • "killcursors"

query”操作包括讀取操作。
command”操作包括大多數命令,如createIndexes和findandmodify。
在3.0版本中更改:使用insert、update和delete命令的寫操作分別為op顯示“insert”、“update”和“remove”。以前的版本在“query”操作下包含這些寫命令。
修改版本3.2:大多數命令,包括createIndexes和findandmodify,都為op顯示“command”。以前版本的MongoDB在“query”操作下包含了這些命令。
currentOp.ns:操作目標的命名空間。名稱空間由數據庫名和集合名組成,集合名與點(.)連接;也就是說,“<數據庫>。<收藏>”。
currentOp.command:在3.6版中進行了更改。包含與此操作關聯的完整命令對象的文檔。如果命令文件超過1 kb,則文件的形式如下:

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


$truncated字段包含文檔的字符串摘要,如果存在,則不包括文檔的注釋字段。如果摘要仍然超過1 kb,則進一步截斷它,用字符串末尾的省略號(…)表示。
如果將注釋傳遞給操作,則會顯示注釋字段。
下面的示例輸出包含一個命令對象,用于在一個名為test的數據庫中對一個集合的命名項執行查找操作:

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

下面的示例輸出包含用于getMore操作的命令對象,getMore操作是由一個命令生成的,該命令的游標id為80336119321,用于一個名為test的數據庫中的集合命名項:

"command" : {"getMore" : NumberLong("80336119321"), "collection" : "items", "$db" : "test" }

currentOp.originatingCommand:版本3.6中的更改:對于從游標檢索下一批結果的“getmore”操作,originatingCommand字段包含最初創建該游標的完整命令對象(例如find或aggregate)。
currentOp.planSummary:包含查詢計劃的字符串,用于幫助調試慢速查詢。
currentOp.client:IP地址(或主機名)和發起操作的客戶機連接的臨時端口。如果您的inprog數組有來自許多不同客戶端的操作,請使用此字符串將操作與客戶端關聯起來。
currentOp.appName:新版本3.4。運行該操作的客戶機應用程序的標識符。使用appName連接字符串選項為appName字段設置自定義值。
currentOp.locks:在3.0版本中進行了更改。locks文檔報告操作當前持有的鎖的類型和模式。可能的鎖類型如下:
鎖類型      描述
Global      表示全局鎖。
MMAPV1Journal  表示用于同步日志寫入的MMAPv1存儲引擎特定鎖;對于非mmapv1存儲引擎,MMAPV1Journal的模式為空。
Database      表示數據庫鎖。
Collection    表示集合鎖。
Metadata      表示元數據鎖。
oplog        表示oplog上的鎖。
可能的模式如下:
鎖定模式      描述
R          表示共享鎖。
W          表示排他(X)鎖。
r          表示共享的意圖(IS)鎖。
w          表示意圖獨占(IX)鎖。

currentOp.msg:msg提供一條消息,描述操作的狀態和進度。對于索引或mapReduce操作,字段報告完成百分比。
currentOp.progress:報告mapReduce或索引操作的進度。進度字段對應于msg字段中的完成百分比。進度說明了以下信息:
currentOp.progress.done:報告完成的數字。
currentOp.progress.total:報告總數。
currentOp.killPending:如果當前操作被標記為要終止,則返回true。當操作遇到下一個安全終止點時,操作將終止。
currentOp.numYields:numyield是一個計數器,它報告操作已經讓步多少次,以允許其他操作完成。
通常,當需要訪問MongoDB尚未完全讀入內存的數據時,操作會產生收益。這允許其他在內存中有數據的操作在MongoDB為生成操作讀入數據時快速完成。
currentOp.fsyncLock:指定當前是否鎖定fsync寫入/快照的數據庫。只有鎖定時才會出現;例如,如果fsyncLock為真。
currentOp.info:有關如何從db.fsyncLock()解鎖數據庫的信息。只有當fsyncLock為真時才會出現。
currentOp.lockStats:對于每種鎖類型和模式(參見currentOp)。),返回以下信息:
currentOp.lockStats.acquireCount:操作以指定模式獲取鎖的次數。
currentOp.lockStats.acquireWaitCount:操作必須等待acquirecallock獲取的次數,因為鎖處于沖突模式。acquireWaitCount小于或等于acquirecore。
currentOp.lockStats.timeAcquiringMicros:操作必須等待獲取鎖的累積時間(以微秒為單位)。時間獲取微s除以acquireWaitCount給出了特定鎖定模式的平均等待時間。
currentOp.lockStats.deadlockCount:在等待鎖獲取時,操作遇到死鎖的次數。

?

1:查看MongoDB當前正在做哪些操作?

db.currentOp() 等同于: db.$cmd.sys.inprog.findOne()

2:查看當前有多少個連接?

db.serverStatus().connections

3:詳解currentOp()

gechongrepl:PRIMARY> db.currentOp() {"inprog" : [{"opid" : 6222, #進程號"active" : true, #是否活動狀態"secs_running" : 3,#操作運行了多少秒"microsecs_running" : NumberLong(3662328),#操作持續時間(以微秒為單位)。MongoDB通過從操作開始時減去當前時間來計算這個值。"op" : "getmore",#操作類型,包括(insert/query/update/remove/getmore/command)"ns" : "local.oplog.rs",#命名空間"query" : {#如果op是查詢操作,這里將顯示查詢內容;也有說這里顯示具體的操作語句的},"client" : "192.168.91.132:45745",#連接的客戶端信息"desc" : "conn5",#數據庫的連接信息"threadId" : "0x7f1370cb4700",#線程ID"connectionId" : 5,#數據庫的連接ID"waitingForLock" : false,#是否等待獲取鎖"numYields" : 0,"lockStats" : {"timeLockedMicros" : {#持有的鎖時間微秒"r" : NumberLong(141),#整個MongoDB實例的全局讀鎖"w" : NumberLong(0)#整個MongoDB實例的全局寫鎖},"timeAcquiringMicros" : {#為了獲得鎖,等待的微秒時間"r" : NumberLong(16),#整個MongoDB實例的全局讀鎖"w" : NumberLong(0)#整個MongoDB實例的全局寫鎖}}}] }

?

轉載于:https://www.cnblogs.com/duanxz/p/4366603.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的MongoDB分析工具之三:db.currentOp()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看欧美精品 | 美女av毛片 | 日本www色| 国产高潮流白浆喷水视频 | 国内精品一区二区 | 国产在线拍 | 免费播放毛片精品视频 | 污污免费视频 | 精品人妻一区二区三区浪潮在线 | 久久久天堂国产精品女人 | 青草视频在线播放 | 在线视频亚洲 | 未满十八岁勿进 | 亚洲精品成人无码熟妇在线 | 欧美极品第一页 | 久久久久人妻精品一区二区三区 | 日韩中文字幕精品视频 | 色婷婷国产精品视频 | 亚洲精品乱码久久久久久黑人 | 黄色小视频在线播放 | 久久黄视频 | 日本特级毛片 | 久久av一区二区三区 | 欧美自拍区 | xx在线视频 | 黄色小视频免费看 | 97视频人人| 美女四肢被绑在床扒衣 | 成人娱乐网 | 国产午夜精品久久久久久久 | jzzjzz日本丰满少妇 | 亚洲天堂网在线观看 | 精品国产一区二区三区四区精华 | 桃色av网站 | 欧美成人hd | 6996电视影片免费看 | xxxxxx黄色 | 影音先锋丝袜美腿 | 国产成人久久婷婷精品流白浆 | 欧美影视 | 亚洲成人国产 | 欧美日韩一区二区不卡 | 国产精品1024 | 国产一级色 | 性欧美videossex精品 | 欧美网站免费 | 国产日韩欧美精品一区 | 日本sm调教—视频|vk | 日韩精品视频免费播放 | 熟妇女人妻丰满少妇中文字幕 | 狠狠夜夜 | 国产精品一区二区视频 | 免费一级全黄少妇性色生活片 | 亚洲高清成人 | 国产av 一区二区三区 | 美女超碰在线 | 天天综合久久综合 | free性欧美hd精品4k | 96日本xxxxxⅹxxx70 | 中文字幕亚洲在线观看 | 日本69少妇| 精品黑人一区二区三区在线观看 | 久久久免费观看视频 | 草碰在线视频 | 大吊av| 玖玖精品在线视频 | 无码精品国产一区二区三区 | 久久99精品久久久久久琪琪 | 男生草女生的视频 | 在线观看欧美成人 | 超碰伊人久久 | 俺来也俺也啪www色 欧洲一区二区视频 | 麻豆网站视频 | 色老二导航 | 久久久久久久黄色片 | 国产成人一区二区 | 欧美黄色网络 | 中国女人内谢69xxxxⅹ视频 | 91午夜在线 | 欧美精品在线第一页 | 久久成人一区 | 2019中文在线观看 | 中文字幕不卡在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 成人性生交大片免费 | 在线观看免费大片 | 蜜桃av成人永久免费 | 被两个男人吃奶三p爽文 | 涩色网 | av毛片网站 | 一级久久久久久 | 精品在线播放 | 99热影院 | 天天拍夜夜拍 | 中文字幕日韩在线视频 | 中文一区二区在线播放 | 亚洲三区在线观看无套内射 | 影音先锋亚洲成aⅴ人在 | 天天做夜夜做 |