美文网首页
Monogodb系列~性能分析

Monogodb系列~性能分析

作者: 开心的蛋黄派 | 来源:发表于2024-06-09 08:17 被阅读0次

    mongostat

    • insert/s: 每秒插入操作的次数。
    • query/s: 每秒查询操作的次数。
    • update/s: 每秒更新操作的次数。
    • delete/s: 每秒删除操作的次数。
    • getmore/s: 每秒在执行查询时,通过游标(cursor)进行的getmore操作数。这是当客户端需要从MongoDB检索更多查询结果时发生的操作。
    • command: 每秒执行的数据库命令数。
    • dirty: 脏页占比。如果这个比例超过20%,MongoDB可能会阻塞新的请求以确保数据一致性。通常建议保持这个比例在10%以下。
    • used: 内存使用率。当这个值超过95%时,新的请求可能会被阻塞。为了系统稳定性,通常建议保持这个值在80%以下。
    • vsize: 虚拟内存使用量,以MB为单位。这表示MongoDB进程在最后一次mongostat调用时所使用的总虚拟内存量。
    • res: 物理内存使用量,以MB为单位。这表示MongoDB进程在最后一次mongostat调用时所使用的总物理内存量。
    • qr: 等待读取操作的客户端队列长度。如果这个数值较高,可能表示读取操作存在瓶颈。
    • qw: 等待写入操作的客户端队列长度。如果这个数值较高,可能表示写入操作存在瓶颈。
    • ar: 当前正在执行读取操作的活跃客户端数量。
    • aw: 当前正在执行写入操作的活跃客户端数量。
    • netIn: MongoDB实例的网络入流量,表示每秒接收到的数据量。
    • netOut: MongoDB实例的网络出流量,表示每秒发送出去的数据量。

    mongotop

    • ns: 命名空间,即数据库和集合的名称。
    • total: 该命名空间的总操作时间。
    • read: 该命名空间的读取操作时间。
    • write: 该命名空间的写入操作时间。
    • time: mongotop命令运行的总时间。

    mongotop命令可以帮助你定位数据库中的热点,即哪些集合正在承受大量的读写操作。

    db.currentOp

    • microsecs_running: 当前操作的耗时,以微秒为单位。
    • op: 操作类型,如查询、插入、更新等。
    • planSummary: 查询计划摘要,显示集合扫描还是索引扫描。
    • Lock: 等待锁的类型,如果有的话。
    • numYields: 当前操作让步(yield)的次数。让步是指操作在执行过程中暂时释放锁,以便其他操作可以执行。

    MongoDB慢日志设置

    MongoDB的慢日志可以记录执行时间超过指定阈值的操作。要启用慢日志并设置阈值,你可以在MongoDB的配置文件中进行以下设置:

    systemLog:
       destination: file
       path: "/var/log/mongodb/mongod.log" # 日志文件路径,根据实际情况修改
       logAppend: true
       slowOperationThresholdMs: 100 # 慢查询阈值,单位为毫秒。这里设置为100毫秒。
    

    在这个例子中,所有执行时间超过100毫秒的操作都会被记录在/var/log/mongodb/mongod.log文件中。你可以根据需要调整slowOperationThresholdMs的值。

    WT引擎 读写ticket

    在WiredTiger存储引擎中,读/写ticket是控制并发性的关键,其默认值为128。这表示同时可执行的读写操作数量。MongoDB还有其他机制管理操作进度和优先级。

    要查看tickets的使用情况,可以运行:

    > db.serverStatus().wiredTiger.concurrentTransactions
    

    这将显示当前写和读的ticket状态,包括已用、可用和总数。

    长时间的操作可能占用tickets,降低并发性。若读取tickets减少,可能因缺乏索引的长运行操作。可借助第三方工具识别慢操作。

    调整tickets的默认值需谨慎,并需全面评估。不恰当地增加tickets可能导致性能下降,过多的tickets可能使CPU忙于上下文切换,降低吞吐量,增加队列压力。

    连接数

    1、connections.current
    2、connections.available

    相关文章

      网友评论

          本文标题:Monogodb系列~性能分析

          本文链接:https://www.haomeiwen.com/subject/mlovqjtx.html