【问题标题】:Calculate WiredTiger cache miss from db.serverStatus output从 db.serverStatus 输出计算 WiredTiger 缓存未命中
【发布时间】:2020-07-23 18:04:23
【问题描述】:

一直在阅读以下https://medium.com/dbkoda/the-notorious-database-cache-hit-ratio-c7d432381229 文章,该文章似乎根据db.serverStatus() 输出中获取的数据计算 WiredTiger 缓存未命中率。

但是,在执行完命令之后(并且还检查了 Java API 没有这样的方法,真的不知道他是如何使用 API 的?),仅仅通过检查方法显示的内容我真的不能查看他试图检索的文档中的属性,基本上是'pages requested from the cache''pages read into cache'

我能看到的与此相关的唯一指标是 extra_fields 中包含的一对,它们是 page_faultspage_reclaims,如果我是正确的,它们分别是缓存未命中和缓存命中,对吧?

我正在尝试在使用某些查询时获得缓存性能(如果它在执行某些聚合后是否命中缓存)。

有没有什么方法可以通过 MongoDB 命令直接获取这个指标?

【问题讨论】:

    标签: mongodb wiredtiger


    【解决方案1】:

    给出的代码旨在在mongo shell 中运行。

    对应的驱动程序是https://docs.mongodb.com/manual/reference/command/serverStatus/ 命令。

    您将使用驱动程序的工具来执行它以运行管理命令或任意命令或数据库命令。对于 Ruby 驱动程序,这是https://docs.mongodb.com/ruby-driver/current/tutorials/ruby-driver-database-tasks/#arbitrary-comands

    【讨论】:

    • 是的,确实是在 shell 中完成的,但我怀疑输出不包含他试图从生成的 db.serverStatus() 文档中检索的字段。
    • 发布实际输出,如果数据库需要身份验证,请确保您已登录,确保您正在查询 mongod,确保它使用的是wiredtiger存储引擎。
    • 你能通过Java驱动连接mongod吗?还是只能通过 cli 才能获得连接?
    • 可以,但我不会写java。
    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 2019-10-05
    • 2014-09-29
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2018-07-22
    • 2014-06-26
    相关资源
    最近更新 更多