linux刷新磁盘_linux服务器性能调试命令

linux服务器性能调试命令


watch

  • 命令格式
    watch 参数
  • 命令功能
    可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
  • 命令参数
    -n或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
    -d或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
    -t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
  • 案例
    watch -n 1 -d netstat -ant 说明:每隔一秒高亮显示网络连接数的变化情况

14bf28561435d11f2067d656a06a5d1f.png

9257ce988817980e37362940063eb837.png

htop

  • 命令格式
    htop [参数]
  • 命令功能htop 是 Linux 系统中的一个互动的进程查看器
  • 命令参数
    -C --no-color 使用一个单色的配色方案(设置界面为无颜色)
    -d --delay=DELAY 设置延迟更新时间,单位秒(设置刷新时间,单位为秒)例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。
    -h --help 显示htop 命令帮助信息
    -u --user=USERNAME 只显示一个给定的用户的过程(显示指定用户的进程)例如,htop -u root 命令会只显示出用户名为 root 的相关进程。
    -p --pid=PID,PID… 只显示给定的PIDs
    -s --sort-key COLUMN 依此列来排序(以指定的列排序)。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
    -v –version 显示版本信息
  • 案例
    htop

fc49cf55dd05e3c08d6a0b624ae11066.png

9257ce988817980e37362940063eb837.png


PID:进程标志号,是非零正整数USER:进程所有者的用户名PR:进程的优先级别NI:进程的优先级别数值VIRT:进程占用的虚拟内存值RES:进程占用的物理内存值SHR:进程使用的共享内存值S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数%CPU:该进程占用的CPU使用率%MEM:该进程占用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间COMMAND:进程启动的启动命令名称


stress

  • 命令格式stress <options>
  • 命令功能
    stress 命令主要用来模拟系统负载较高时的场景
  • 命令参数-c, --cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根-i, --io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上-m, --vm N 产生 N 个进程,每个进程不断分配和释放内存--vm-bytes B 指定分配内存的大小 --vm-stride B 不断的给部分内存赋值,让 COW(Copy On Write)发生--vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程--vm-keep 一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)-d, --hadd N 产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件)--hadd-bytes B 指定文件大小-t, --timeout N 在 N 秒后结束程序 --backoff N 等待N微妙后开始运行-q, --quiet 程序在运行的过程中不输出信息-n, --dry-run 输出程序会做什么而并不实际执行相关的操作--version 显示版本号-v, --verbose 显示详细的信息
  • 案例
    参考:https://www.cnblogs.com/sparkdev/p/10354947.html

mpstat

  • 命令格式
    mpstat [-P {|ALL}] [internal [count]]
  • 命令功能
    面向CPU,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息
  • 命令参数
    -P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
    internal 相邻的两次采样的间隔时间、
    count 采样的次数,count只能和delay一起使用
    当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
  • 案例

eebb1cd346433a706d9e9167a2161b72.png

9257ce988817980e37362940063eb837.png


%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100
%sys 在internal时间段里,内核时间(%) (system/total)*100
%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%irq 在internal时间段里,硬中断时间(%) (irq/total)*100
%soft 在internal时间段里,软中断时间(%) (softirq/total)*100
%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100


pidstat

  • 命令格式
    pidstat [参数] [时间] [次数]
  • 命令功能
    用于监控全部或指定进程的CPU、内存、线程、设备IO等系统资源的占用情况
  • 命令参数
    -u 默认的参数,显示各个进程的CPU使用统计
    -r 显示各个进程的内存使用统计
    -d 显示各个进程的IO使用情况
    -p 指定进程号
    -w 显示每个进程的上下文切换情况
    -t 显示选择任务的线程的统计信息外的额外信息
  • 案例

9257ce988817980e37362940063eb837.png

0d3bceacd86ea0347f74e903ec636659.png


cswch:表示每秒自愿上下文切换(voluntary context switches)的次数,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。
nvcswch:表示每秒非自愿上下文切换(non voluntary context switches)的次数,是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换

9257ce988817980e37362940063eb837.png

59f92084376ee55abc70bd6a2a9aaa94.png


`UID`:用户ID
`PID`:进程ID
`%usr`:进程在用户空间占用CPU的百分比
`%system`:进程在内核空间占用CPU的百分比
`%guest`:任务花费在虚拟机上的CPU使用率(运行在虚拟处理器)
`%CPU`:任务总的CPU使用率
`CPU`:正在运行这个任务的处理器编号
`Command`:这个任务的命令名称


iostat

  • 命令格式
    iostat [参数] [时间] [次数]
  • 命令功能
    iostat主要用于监控系统设备的IO负载情况
  • 命令参数
    -c 显示CPU使用情况
    -d 显示磁盘使用情况
    -k 以K为单位显示
    -m 以M为单位显示
    -N 显示磁盘阵列(LVM) 信息
    -n 显示NFS使用情况
    -p 可以报告出每块磁盘的每个分区的使用情况
    -t 显示终端和CPU的信息
    -x 显示详细信息
  • 案例

9257ce988817980e37362940063eb837.png

a529c77cd6b6eea276b1a6ae71816dd1.png


%user:CPU处在用户模式下的时间百分比
%nice:CPU处在带NICE值的用户模式下的时间百分比
%system:CPU处在系统模式下的时间百分比
%iowait:CPU等待输入输出完成时间的百分比
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle:CPU空闲时间百分比
Device:设备名称
rrqm/s:每秒合并到设备的读取请求数
wrqm/s:每秒合并到设备的写请求数
r/s:每秒向磁盘发起的读操作数
w/s:每秒向磁盘发起的写操作数
rkB/s:每秒读K字节数
wkB/s:每秒写K字节数
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度
await:平均每次设备I/O操作的等待时间 (毫秒),一般地,系统I/O响应时间应该低于5ms,如果大于 10ms就比较大了
r_await:每个读操作平均所需的时间;不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间
w_await:每个写操作平均所需的时间;不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
svctm:平均每次设备I/O操作的服务时间 (毫秒)(这个数据不可信!)
%util:一秒中有百分之多少的时间用于I/O操作,即被IO消耗的CPU百分比,一般地,如果该参数是100%表示设备已经接近满负荷运行了


vmstat

  • 命令格式
    vmstat 参数]
  • 命令功能
    Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,对某个进程进行深入分析需要使用pidstat。
  • 命令参数
    -a:显示活跃和非活跃内存
    -f:显示从系统启动至今的fork数量 。
    -m:显示slabinfo
    -n:只在开始时显示一次各字段名称。
    -s:显示内存相关统计信息及多种系统活动数量。
    delay:刷新时间间隔。如果不指定,只显示一条结果。
    count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
    -d:显示磁盘相关统计信息。
    -p:显示指定磁盘分区统计信息
    -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
    -V:显示vmstat版本信息。
  • 案例

d4f53fba122f6e70e2c16a75ea2d26f9.png

9257ce988817980e37362940063eb837.png


Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap:
si: 每秒从交换区写到内存的大小
so: 每秒写入交换区的内存大小
IO:(现在的Linux版本块的大小为1024bytes)
bi: 每秒读取的块数
bo: 每秒写入的块数
系统:
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间
备注:
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且 在 b中的队列 大于3, 表示 io性能不好。


总结:以上命令一般分析CPU以及进程、磁盘IO等方面是非常有用的,而且很快找出性能问题;

几个概念:

平均负载:可运行状态+不可中断状态

CPU使用率:单位时间内CPU的使用情况

一般我们认为平均负载高于CPU数量的百分之70是属于高负载,有一定的性能问题存在;


想了解学习更多C++后台服务器方面的知识,请关注:微信公众号:====CPP后台服务器开发====


扫码关注更多精彩

3bd75bcc4b0c1bff2a8299f08fa8a078.png

http://weixin.qq.com/r/si6IkH-EJSJarTvz93ug (二维码自动识别)

d02e2761500ffffb47d1286c20fabb12.png

b9fe442100eede647f2c40c8a7e308a8.gif

e1ea2fda470a7966ebcaa67539642b1b.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值