在Linux系统中,监控服务器性能是确保系统稳定运行和及时发现问题的重要手段,掌握常用的性能监控命令,对于每一位Linux系统管理员和开发者来说都是必不可少的技能,本文将详细介绍几个关键的Linux性能监控命令,包括vmstat
、mpstat
、pidstat
、free
、top
等,帮助读者全面了解并高效利用这些工具来优化系统性能。
1、概述
vmstat
(Virtual Meomory Statistics)命令用于报告关于进程、内存、分页、块IO、陷阱以及CPU活动的信息,它是通过主动查询/proc
文件系统获取相关信息的。
2、常用参数及示例
基本用法:vmstat [选项] [延迟 [次数]]
-a
:显示所有信息。
-s
:只显示汇总信息。
示例:每隔1秒获取一次服务器的资源使用数据,总共获取10次
vmstat 1 10
3、监控指标简介
r:表示目前实际在运行的指令队列(有多少任务需要CPU执行),需要结合CPU的核数及使用百分比来看,如果该值持续大于CPU核数+5,说明CPU使用很繁忙,通常会造成CPU的使用率很高。
b:表示目前因等待资源而阻塞运行的指令个数,比如等待I/O、内存交换、CPU等资源而造成阻塞,该值过高的话,需要检查这些资源是否出现瓶颈。
swpd:表示虚拟内存已使用的大小,如果物理内存不够用时,会把服务器物理内存中长时间未实际运行的程序释放出来存放到swap中,以腾出内存供急需物理内存来运行的程序先使用,一般使用的是磁盘的空间,而磁盘的I/O读写一般比物理内存要慢,如果存在大量读写交换,将会影响程序运行的性能。
free:表示空闲的物理内存的大小,其数据不包含buff和cache这两列的数据。
buff:表示Linux/Unix系统缓冲区的内存大小,一般对块设备的读写才需要缓冲区,操作系数会自动根据服务器的物理内存去调整缓冲区使用内存的大小,以提高读写速度,一般内存较大的服务器,该值一般较大。
cache:表示用来给已打开的文件作为缓存的内存大小,用来缓存我们打开的文件,为了提高程序执行的性能,把空闲的物理内存一部分拿来作为文件和目录的缓存,当程序使用内存时,buffer/cached会很快被使用,当free不够用时,这些缓存占用的内存会释放出来。
si:表示每秒从磁盘(虚拟内存swpd)读入到内存中的数据或内容的大小,如果该值长期大于0,则表示物理内存可能已经不够用了,将磁盘空间调入内存。
so:表示每秒从物理内存写入磁盘(虚拟内存swpd)的数据或内容的大小。
bi:表示数据块设备每秒从磁盘读取的块数量,块设备指的是系统上所有的磁盘和其他块设备,默认块大小是1024字节(Byte);在随机磁盘读写时,bi、bo的值越大(如超过1024k),CPU在I/O等待的值也会越大。
bo:表示数据块设备每秒写入磁盘的块数量。
in:表示每秒CPU的中断次数,包括时钟中断。
cs:表示CPU每秒上下文切换次数,例如调用系统函数,就会导致上下文切换,如果观察到in、cs两个指标过高,就需要对系统进行性能调优。
us:表示用户模式CPU使用时间的百分比,该值一般越高,说明CPU被正常利用地越好,给密集型CPU应用做压力测试时,us的值可以接近100%,说明CPU已经充分被用于执行算法服务。
sy:表示系统内核进程执行时间百分比,sy的值高时,说明系统内核消耗的CPU资源多,通常in、cs、I/O的频繁操作过高时,都会引起sy指标过高。
id:表示空闲CPU时间的占比,id + us + sy = 100,可以认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wa:表示I/O等待时间百分比,wa的值高时,说明I/O等待时间比较严重,可能是由于磁盘大量进行随机访问所造成的。
st:表示CPU等待虚拟机调度的时间占比,一般在虚拟机中才会有值,物理机中该指标一般维持为0,一台物理机中通常会有多个虚拟机同时在运行,那么虚拟机之间就会存在CPU争抢的情况,该值如果一直持续很高,那么表示虚拟服务器需要长期等待CPU,运行在该服务器的应用程序的性能会受到直接影响,该值越高,也会引起sy的值变高,因为操作系统内核需要不断地调度CPU。
1、概述
mpstat
(Memory Performance Statistics)命令用于显示各个可用处理器的一些统计信息,包括每个CPU的使用率、上下文切换次数、中断次数、CPU状态等,它可以帮助管理员了解每个CPU的工作负载情况,以便进行性能分析和优化。
2、常用参数及示例
基本用法:mpstat [选项] [间隔时间] [次数]
-P {cpu_list}
:指定监控的CPU列表,可以是单个CPU编号或范围,如“0”表示第一个CPU,“0-3”表示前四个CPU等。
-V
:显示详细的版本信息。
示例:每隔1秒获取一次服务器的资源使用数据,总共获取10次
mpstat 1 10
3、监控指标简介
%usr:表示用户模式下CPU使用时间的百分比,和vmstat
中得到的us数据基本一致。
%nice:表示CPU在进程优先级调度下CPU占用时间的百分比。
%sys:表示系统内核进程执行时间百分比。
%iowait:表示I/O等待时间的百分比。
%irq:表示用于处理系统中断的CPU百分比。
%soft:表示用于软件中断的CPU百分比。
%steal:表示CPU等待虚拟机调度的时间占比。
%guest:表示运行vCPU(virtual processor,虚拟处理器)时所消耗的CPU时间百分比。
%gnice:表示运行降级虚拟程序所使用的CPU占比。
%idle:表示空闲CPU时间的占比。
1、概述
pidstat
(Process state)命令用于监控系统中每个进程和线程的任务调度、上下文切换、CPU使用等情况,还可以查看特定进程的资源消耗情况,这对于分析某个进程的性能问题非常有帮助。
2、常用参数及示例
基本用法:pidstat [选项] [间隔时间] [次数]
-u
:显示每个进程的用户态、核心态、总的CPU使用时间等信息。
-h
:显示每个进程的详细历史信息,包括CPU使用率的变化等。
-p {pid_list}
:指定要监控的进程ID列表。
示例:每隔1秒获取一次服务器的资源使用数据,总共获取10次
pidstat 1 10
3、监控指标简介
UID:用户ID,表示进程所属的用户。
PID:进程ID,唯一标识一个进程。
%usr:用户模式下CPU使用时间的百分比。
%system:系统模式下CPU使用时间的百分比。
%guest:来宾模式下CPU使用时间的百分比。
%wait:等待CPU时间的百分比。
CPU:进程使用的CPU时间百分比总和。
minflt/s:每秒发生的缺页错误次数(内存页面错误)。
majflt/s:每秒发生的主缺页错误次数(磁盘I/O错误)。
VSZ:虚拟内存大小(KB)。
RSS:常驻集大小(KB),即进程实际使用的物理内存大小。
%MEM:进程使用的可用内存百分比。
Command:启动该进程的命令名称。
1、概述
free
命令用于快速查看服务器内存的使用情况,包括物理内存和虚拟内存的使用量、已用空间、可用空间等信息,它是对/proc/meminfo
收集到的信息的一个概述。
2、常用参数及示例
基本用法:free [选项]
-m
:以
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态