• MongoDB性能问题排查 仅此而已


    mongostat

    间隔固定时间(每秒)输出mongodb的当前运行状态。

    ./bin/mongostat --port [port] -u qingteng -p [password] --authenticationDatabase admin

    输出字段说明:

    字段名称

    说明

    insert 每秒插入次数
    query 每秒查询次数
    update 每秒更新次数
    delete 每秒删除次数
    getmore 每秒执行getmore次数
    command 每秒的命令数,除了插入、查找、更新、删除命令统计外,还统计了别的命令
    dirty 脏数据字节的缓存百分比(超过20%时阻塞新请求)
    used 正在使用的缓存百分比(超过95%时阻塞新请求)
    flushes

    对于WiredTiger引擎来说,是指checkpoint的触发次数在一个轮询间隔期间

    对于MMAPv1 引擎来说,是指每秒执行fsync将数据写入硬盘的次数

    一般flushes都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。

    flush开销是很大的,如果频繁的flush,就需要排查一下原因了

    mapped 所有的被mmap的数据量
    vsize 虚拟内存使用量(在mongostat最后一次调用的总数据)
    res

    物理内存使用量(在mongostat最后一次调用的总数据)

    vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,就需要排查一下是否存在其他的程序正在消费内存

    faults 每秒访问失败数,与内存swap有关
    qrw 客户端读写等待队列数量,高并发时,一般队列值会升高
    arw 客户端读写活跃个数
    net_in 网络带宽压力,MongoDB实例的网络进流量
    net_out 网络带宽压力,MongoDB实例的网络出流量
    conn

    打开连接的总数,是qr,qw,ar,aw的总和

    MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数maxIncomingConnections

    time 时间戳

     

    mongotop

    输出每个集合压力状态

    间隔固定时间(每秒,若需要每3秒,可以在命令最后空格 3 即可)输出mongodb的当前每个集合的读写耗时。

    ./bin/mongotop --port [port] -u qingteng -p [password] --authenticationDatabase admin

    输出字段说明:

    字段名称
    说明
    ns 集合名称
    total 读写花费时间(ms)
    read 读花费时间
    write 写花费时间
  • 相关阅读:
    Linux调度器性能分析
    [ZJOI2009]假期的宿舍
    CH1601 【模板】前缀统计 (trie树)
    P2580 于是他错误的点名开始了
    P1608 路径统计
    P4779 【模板】单源最短路径
    [JLOI2014]松鼠的新家
    [NOI2015]软件包管理器
    [HAOI2015]树上操作
    P3386 【模板】二分图匹配
  • 原文地址:https://www.cnblogs.com/xuwenjin/p/16340325.html
Copyright © 2020-2023  润新知