测试人社区

关于linux环境中uptime和vmstat、iostat的疑问

windows下使用gitbash连接我们的linux环境
image
1、从上图可以看出,uptime中的cpu负载高达50多(经查看我们的演练环境的cpu核数为1),但是vmstat中cpu的idle却有80%,cpu负载很高,却还有这么多空闲,这不是相互矛盾吗?
2、执行vmstat 2或者iostat 2命令,每2秒采集一次,为什么第一次的数据和后面的结果差这么多?有什么说法吗?
image
以上2个问题,请各位多多指教,在此谢过各位!

对linux接触的也不太多,只能给出一点个人和网上搜索结果综合的理解:

  • 1 这一条的原因也是因为 你只获取了mvstat返回的第一条数据,根据解释2 你获取的这条其实是开机这一百多天的平均数据,所以跟你的近期统计数据并不能匹配上,如果你多取几条数据应该差距就很小了
  • 2 根据man vmstat中的说明
    The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length delay. The process and memory reports are instantaneous in either case.
    第一行记录给出的是系统自从上次重启之后到现在的平均值,所以说和后面的实时数据差距是比较大的。iostat 的说明中也有相同的语句,所以如果以后要进行统计的话,注意第一行数据并不是实时数据。

非常感谢~thanks