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的字段找到相关的代码逻辑,并减少该逻辑频率。

  • 相关阅读:
    redis-x64-3.2.100下载安装
    open with live server没反应
    JavaScript 语言的历史
    在navicat查看mysql的版本
    node.js安装教程
    个人简介
    C语言结课课程设计
    CommonJS 规范 与 ES6 规范
    大文件分片上传,断点续传,秒传
    babel编译
  • 原文地址:https://www.cnblogs.com/slayercat/p/4434792.html
Copyright © 2011-2022 走看看