随笔3-Linux探索(性能监控常用命令)

一、TOP 命令

可以查看当前系统负载情况

1. 示例图

在这里插入图片描述

1. 展示面板说明

  • top (是任务队列信息,同 uptime 命令的执行结果)

    • up [time] : 系统运行时间
    • [number] users: 当前登录的用户
    • load average: 系统(1/5/15)分钟内的负载情况
  • Tasks:系统任务状态

    • total 进程总数
    • running 正在运行的进程数
    • sleeping 睡眠的进程数
    • stopped 停止的进程数
    • zombie 僵尸进程数
  • %CPU(s):CPU 状态

    • [number] us: 用户空间占用CPU百分比(越小越好)
    • [number] sy:内核空间占用CPU百分比
    • [number] ni:用户进程空间内改变过优先级的进程占用CPU百分比
    • [number] id: system idle process=处理器空闲时间百分比(越大越好)
    • [number] wa:等待输入/输出的CPU时间百分比
    • [number] hi:硬件CPU中断占用百分比
    • [number] si:软中断占用百分比
    • [number] st:虚拟机占用百分比
  • Kib Mem: 内存状态

    • total 物理内存总量
    • used 使用的物理内存总量
    • free 空闲内存总量
    • buffers 用作内核缓存的内存量
  • KiB Swap: 交换区状态

    • total:交换区总量
    • used 使用的交换区总量
    • free 空闲交换区总量
    • cached

3. 重点关照对象

(1)load average

系统负载均衡 (1 分钟内 5分钟内 15分钟内 的负载情况)最后一个越小越好,当三个值相加后除以3结果大于0.6表示需要注意服务器负担。大小一般不能大于系统CPU的个数。

(2)zombie: 消失进程 (这个如果不为0,就一定需要检查了)
(3)us + sy (当前用户占用资源和系统占用资源)

4. top 命令的操作选项

  • P: 以CPU使用率排序,默认是此项
  • M: 以内存使用率排序
  • N:以PID排序
  • q: 退出

5. top 命令的命令行参数选项

  • -d 秒数: 指定top命令每隔多少秒更新. 默认是3秒在top命令的交互模式当中可以还行的命令
  • -i: 是top不在显示任何闲置或者僵尸进程
  • -p: 通过指定监控进程ID来仅仅监控某个进程的情况

二、vmstat 命令

同top命令可以用来查看CPU状态另外也可以监控磁盘,内存状态,一般可以携带如下两个参数

  • 第一个参数时间间隔数(单位秒)
  • 第二个参数是采样的次数

1. 使用示例

在这里插入图片描述

2. vmstat 命令结果包含如下几个区域

  1. procs区域
  2. memory区域
  3. swap区域
  4. io区域
  5. system区域
  6. cpu区域
2.1 procs区域

(1)r: 运行和等待cpu时间片的进程数,列表示运行和等待cpu时间片的进程数

note:

这个值如果长期大于系统CPU的个数,说 明CPU不足,需要增加CPU,原则上1和的cpu的运行队列不要超过2,整个系统的运行队列不能超过总核数的两倍否则代表压力过大

(2)b: 等待资源的进程数,比如正在等待(磁盘/网络)I/O

2.2. memory区域
2.3. swap区域
2.4. io区域
2.5. system区域
2.6. cpu区域
  • (1) cs: 上下文切换
  • (2) us(user) : 用户进程小号cpu时间的百分比
  • (3) sy(system): 内核进程消耗的CPU时间百分比
  • (3) id: 处于空闲的CPU百分比,越高越好
  • (3) wa(wait):系统等待IO的CPU时间百分比
  • (3) st: 来自一个虚拟机窃取的CPU时间的百分比

注意:

(1)us值高,用户进程消耗cpu时间多,如果长期大于50%,优化程序,us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

(2) sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。

(3) us+sy参考值 80%,如果us+sy 大于80% ,说明cpu可能即将不足

三、free 命令

free 命令用来查看内存情况

1. 命令演示

在这里插入图片描述

2. 常用参数

  1. -m, --mega show output in megabytes
  2. -g, --giga show output in gigabytes
  3. -h, --human show human-readable output

3. 命令说明

total: 总内存
free: 空余内存
used: 使用内存
shared
buff/cache
availabel: 可用内存

4. 注意点(一般情况下)

  • (1)应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能.
  • (2)应用程序可用内存/系统物理内存<20%时,表示系统内存资源紧缺,需要增加系统内存
  • (3)20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

四、iostat 命令

可以用来监控磁盘情况

1. 使用演示

在这里插入图片描述

iostat -xdk 1 5 : 1秒钟采样一次, 一共采用5次

2. 参数说明

2.1 -x 参数 用于显示和io相关的扩展数据
  • rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
  • rsec/s:每秒读取的扇区数
  • wsec/:每秒写入的扇区数
  • rKB/s:The number of read requests that were issued to the device per second
  • wKB/s:The number of write requests that were issued to the device per second
  • avgrq-sz 平均请求扇区的大小
  • avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好
  • await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
  • svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。
  • %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度
  • 。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
2.2 -d 参数显示设备(磁盘)使用状态
  • tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)
  • kB_read/s:每秒从设备(drive expressed)读取的数据量
  • kB_wrtn/s:每秒向设备(drive expressed)写入的数据量
  • kB_read:读取的总数据量
  • kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes

Note:

“一次传输"意思是"一次I/O请求”。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。

2.3 -k 参数某些使用block为单位的列强制使用Kilobytes为单位
2.3 -c 参数用来获取cpu部分状态值

4. 注意点

svctm 的值与await 的值很接近,表示几乎没有I/O等待,磁盘性能越好

rkB/s ,wkB/s 根据系统引用不同,会有不同的值,但有规律遵循:长期,超大数据读写,肯定不正常,需要优化程序读取.

如果await 的值远高于svctm 的值,则表示IO队列等待时间太长,需要优化程序或更换更优质的磁盘.
行解释

如果util 接近100%时,表示磁盘带宽跑满了. 需要优化程序或者增加磁盘.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值