美文网首页
关于CONFIG_HZ的研究

关于CONFIG_HZ的研究

作者: 看他好搞笑 | 来源:发表于2019-10-09 06:31 被阅读0次

    问题

    在服务器中我们发现,他们的负载会在大约每隔7个小时(准确来说是6小时56分45秒)就会出现一个峰值,不管是否是在生产环境下。
    有能力和小伙伴可以直接看下面的文档:
    https://mackerel.io/blog/entry/tech/high-loadavg-every-7-hours
    https://blog.avast.com/investigation-of-regular-high-load-on-unused-machines-every-7-hours

    为什么

    根据负载的算法,它记录了一段时间内cpu的使用情况的值,负载每5秒会更新一次,那么根具CONFIG_HZ的值得出系统会在每1ms记录一个jiffies值,那么5秒的时间内会记录5000个值,于是在周期为5×5000得到25000秒。当打开进程的时间和loadavg大约每6小时57分钟更新一次(关闭0.003秒)时,就会出现这种现象。

    cat /boot/config-* | grep HZ  #得到config_HZ的值
    

    计算的公式

    L(t)=(1−e−Δt/T)(p(t)+e−Δt/Tp(t−Δt)+e−2Δt/Tp(t−2Δt)+⋯)=(1−e−Δt/T)p(t)+e−Δt/TL(t−Δt)
    

    负载是衡量cpu在一段时间内被都少个进程(R进程和D进程,即正处在运行的)使用的一个量度,而这个负载是在5.001秒更新一次的,由于服务器的jiffies值为1000(表示一秒会记录测次数),也就是说5秒的时间里会出现记录5000次,而负载会在这每五千次发生偏移所以等到下一个出现了整数5秒的周期是5.001*5000结果证实为6小时56分45秒,由于负载计算的特点,会在进程没有变化时负载数猛增,之后恢复正常的。

    是由这个查询系统参数
    cat /boot/config-* | grep HZ

    相关文章

      网友评论

          本文标题:关于CONFIG_HZ的研究

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