zoukankan      html  css  js  c++  java
  • 一次非线上iowait高的情况的检查

    一、现象

    iowait高达30%。使用iotop查知jbd2/sda6-8占用60%的io写入。mongodb每秒写入达400k。

    必然复现

    二、排查

    1、先检查是不是mongodb引起的

      将mongodb的数据文件放入tmpfs并在tmpfs上启动mongodb。iowait降低为正常范围,说明是由mongodb引起的。

      由于mongodb的直接处理方为另一进程。停止另一进程后iowait降低为正常范围,说明该事情与该进程操作有关。

    2、继续收集信息

      由于jbd2为ext4的日志刷写内核进程,读取不需要刷日志,只有写需要,排查mongdb的写操作情况。

      抓lo上的包,用wireshark查看相关信息,mongodb协议中有不少query和update。由于上面判断为写操作,查update相关情况。

    3、实验性修改

      考虑实际业务逻辑,认为可以接受丢数据的情况,于是将syncdelay设置为240,即4分钟刷写一次磁盘,但没有改善【存疑,需要查资料】

    4、生效的修改

      查抓包后update的信息,根据update的字段找到相关的代码逻辑,并减少该逻辑频率。

  • 相关阅读:
    CentOS 7 修改国内yum源
    k8s 安装
    python2 python3同时安装了scrapy如何区分调用
    scrapy log 设置
    hello django
    linux 分割大文件
    scrapy 对不同的Item进行分开存储
    纯C实现的一套low b 贪吃蛇(娱乐版)
    Python之如何实现一行输入多个值
    HDU2571:命运(DP)
  • 原文地址:https://www.cnblogs.com/slayercat/p/4434792.html
Copyright © 2011-2022 走看看