1. CPU指标分析

  1. # 1.查看系统,平均负载(1分钟 5分钟 15分钟的平均负载)
  2. uptime
  3. # 2. vmstat,属于sysstat包
  4. vmstat 2 1 # 第一个参数:采样时间间隔(单位秒), 第二个参数:采样次数
类别 项目 含义 说明
Procs(进程) r 等待执行的任务数 展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。
B 等待IO的进程数量
Memory(内存) swpd 正在使用虚拟的内存大小,单位k
free 空闲内存大小
buff 已用的buff大小,对块设备的读写进行缓冲
cache 已用的cache大小,文件系统的cache
inact 非活跃内存大小,即被标明可回收的内存,区别于free和active 具体含义见:概念补充(当使用-a选项时显示)
active 活跃的内存大小 具体含义见:概念补充(当使用-a选项时显示)
Swap si 每秒从交换区写入内存的大小(单位:kb/s)
so 每秒从内存写到交换区的大小
IO bi 每秒读取的块数(读磁盘) 块设备每秒接收的块数量,单位是block,这里的块设备是指系统上所有的磁盘和其他块设备,现在的Linux版本块的大小为1024bytes
bo 每秒写入的块数(写磁盘) 块设备每秒发送的块数量,单位是block
system in 每秒中断数,包括时钟中断 这两个值越大,会看到由内核消耗的cpu时间sy会越多

秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目
cs 每秒上下文切换数
CPU(以百分比表示) us 用户进程执行消耗cpu时间(user time) us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了
sy 系统进程消耗cpu时间(system time) sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足
Id 空闲时间(包括IO等待时间) 一般来说 us+sy+id=100
wa 等待IO时间 wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

image.png

  1. # 3. 同属于sysstat包的命令 pidstat
  2. ## 查看所有进程的CPU使用情况
  3. pidstat | pidstat -u | pid stat -u -p ALL
  4. ## 查看内存的统计
  5. pidstat -r
  6. ## 显示各个进程的IO使用情况
  7. pidstat -d
  8. ## 显示每个进程的上下文切换情况
  9. pidstat -w -p 2771 # 特定的pid
  10. ## 查看进程具体线程使用CPU
  11. top -Hp pid | pidstat -t -p pid
  1. # top -o 可以按照指定的指标排序
  2. top -o %MEM # 按照内存排序
  3. top -o %CPU # 按照CPU排序
  4. ## 内舒说明 ##
  5. ---------各项指标解析---------------------------------------------------
  6. 第一行统计信息区
  7. 18:20:27 当前时间
  8. up 25 days, 17:29 系统运行时间,格式为时:分
  9. 1 user 当前登录用户数
  10. load average: 0.04, 0.09, 0.13 系统负载,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
  11. Tasks:进程相关信息
  12. running 正在运行的进程数
  13. sleeping 睡眠的进程数
  14. stopped 停止的进程数
  15. zombie 僵尸进程数
  16. Cpu(s):CPU相关信息
  17. %us:表示用户空间程序的cpu使用率(没有通过nice调度)
  18. %sy:表示系统空间的cpu使用率,主要是内核程序
  19. %ni:表示用户空间且通过nice调度过的程序的cpu使用率
  20. %id:空闲cpu
  21. %wacpu运行时在等待io的时间
  22. %hicpu处理硬中断的数量
  23. %sicpu处理软中断的数量
  24. Mem 内存信息
  25. total 物理内存总量
  26. used 使用的物理内存总量
  27. free 空闲内存总量
  28. buffers 用作内核缓存的内存量
  29. Swap 内存信息
  30. total 交换区总量
  31. used 使用的交换区总量
  32. free 空闲交换区总量
  33. cached 缓冲的交换区总量

2. 内存的使用

  1. # 检查内存的命令
  2. free -h # 按照G,来检查内存
  3. vmstat 2 1 # 其中有内存的使用情况

3. 磁盘 I/O

  1. iostat -d -x -m 1 1 # 磁盘使用情况、详情、单位M ; 每隔1秒 采集1次
  2. iostat -c 1 10 # 查看cpu状态
  3. ## 命令的参数 ##
  4. -C 显示CPU使用情况
  5. -d 显示磁盘使用情况
  6. -k KB 为单位显示
  7. -m M 为单位显示
  8. -N 显示磁盘阵列(LVM) 信息
  9. -n 显示NFS 使用情况
  10. -p[磁盘] 显示磁盘和分区的情况
  11. -t 显示终端和CPU的信息
  12. -x 显示详细信息
  13. -V 显示版本信息

4. ifconfig-查看网卡信息

ifconfig 具体网卡名称 只显示具体网卡的详细信息
ifconfig -a 显示所有网卡包括没有启动的网卡
ifconfig 网卡名称 [up/down] 表示开启或关闭网卡
ifconfig 网络接口 IP地址 [/子网掩码长度] 临时设置网卡地址
ifconfig 网卡名称:数字 地址 新建虚拟网卡
ifconfig -s 查看通讯消息
  1. route #打印路由表
  2. route -n #以数字形式显示路由信息
  3. route add -net 网段地址 gw IP地址 #添加指定网段的路由记录
  4. route del -net 网段地址 #删除指定网段的路由记录
  5. route add default gw IP地址 #向路由表中添加默认网关记录
  6. route del default gw IP地址 #删除路由表中默认的网关记录