• vmstat


    vimstat展现给定时间间隔的服务器状态值,包括服务器的CPU使用率,内存使用,虚拟内存swap交换情况,IO读写情况。相比top可以看到整个机器的cpu、内存、IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)

    一般vmstat工具对使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个是采样的次数。

    vmstat 2 1

    vmstat 2

    参数选项:

    r  运行队列(多少个进程真的分配到CPU),一般负载超过3就比较高了,超过5就高了,超过10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高;

    b  表示阻塞的进程;

    swpd  虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄漏的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器;

    free  空闲的物理内存大小;

    buff  系统用来存储目录里面是什么内容,权限等缓存;大约在几百Mb左右;

    cache  cache直接用来记忆我们打开的文件,给文件做缓存(此即linux系统的高明之处,将空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cache会很快被使用);

    si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄漏,要查找消耗内存进程解决掉。

    so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上;

    bi  块设备每秒接收的块数量,这里的块设备是指系统上所有磁盘和其他块设备,默认块大小是1024byte;

    bo  块设备每秒发送的块数量,例如读取文件,bo大于0.bi和bo一般都要接近0,不然就是IO过于频繁,需要调整;

    in  每秒cpu的中断次数,包括时间中断;

    cs  每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进行上下文切换,这个值越小越好,太大的话需要考虑调低线程或者进程的数目。例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千甚至上万的并发测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,知道cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次,调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源的,尽量避免频繁调用系统函数。上下文切换次数过多表示你的cpu大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,实不可取的;

    us  用户cpu时间;

    sy  系统cpu时间,如果太高,表示系统调用时间长,例如是IO操作频繁;

    id  空闲CPU时间,一般来说id+us+sy=100,;

    wt  等待IO CPU时间;

  • 相关阅读:
    新的学习计划
    Python学习搬家啦
    安装数据库软件
    oracle11g RAC之grid安装
    PG源码编译安装
    vnc图形化远程centos7.6步骤
    postgresql 日期格式
    centos配置yum源
    pg创建多个实例
    PostgreSQL配置
  • 原文地址:https://www.cnblogs.com/cf532088799/p/8366017.html
Copyright © 2020-2023  润新知