Linux系统性能查询指令

uptime

快速查看平均负载(任务对CPU资源的需求)
例:

解释:
  22:27:13指系统当前时间
  Up 5 min指系统已运行5min
  1 user 指系统当前有一个用户登录
  load average:后面三个数字,分别显示系统在1分钟、5分钟和15分钟内的平均负载

top

综合查询系统负载、CPU利用分布情况、内存使用、每个进程的内存使用情况;

a)间隔刷新:top之后,按d;
b)添加进程字段显示列:top之后,按f;
c)显示平均/各CPU的利用率信息:top之后,按1

例:

dmesg

打印内核环形缓存区中的内容,用于设备故障诊断;

语法格式:dmesg [options…]
dmesg [ more | less | tail | head | grep ]

打印后2行日志:
例:

vmstat: Virtual Meomory Statistics(虚拟内存统计)

对操作系统的虚拟内存、进程、CPU活动进行监控,所有cpu整体统计情况。

语法:vmstat [选项] [参数]
选项:
  -a:显示活动内页;
   -f:显示启动后创建的进程总数;
  -m:显示slab信息;
  -n:头信息仅显示一次;
  -s:以表格方式显示事件计数器和内存状态;
  -d:报告磁盘状态;
  -p:显示指定的硬盘分区状态;
  -S:输出信息的单位。
参数:
  事件间隔:状态信息刷新的时间间隔;
  次数:显示报告的次数。

显示虚拟内存使用情况,在2s内进行5次采样:
例:

解释:
  procs(进程):
   r:运行队列中进程数量
   b:等待IO的进程数量
  memory(内存):
   swpd: 使用虚拟内存大小
   free:可用内存大小
   buffer是I/O缓存,用于内存和硬盘的缓冲;
   cache是高速缓存,用于CPU和内存之间的缓冲;
  swap:
   si: 每秒从交换区写到内存的大小
   so: 每秒写入交换区的内存大小
  io:
   bi: 每秒读取的块数
   bo: 每秒写入的块数
  system(系统):
   in: interrupt,每秒中断数,包括时钟中断。
   cs: count/second,每秒上下文切换数。
  cpu(以百分比表示):
   us: user time,用户进程执行时间
   sy: system time,系统进程执行时间
   id: idle time,空闲时间(包括IO等待时间),以百分比表示。
   wa: 等待IO时间

拓展

虚拟内存和物理内存:物理内存就是系统硬件提供的内存大小,是真正的内存,虚拟内存是为了满足物理内存不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。在物理内存不足时,内核会将暂时不用的内存块信息写到交换空间,相应的物理内存得以释放,当需要用到原始内容时,这些信息会重新从交换空间读入物理内存。linux的内存管理采取分页存取机制,内核根据”最近最经常使用“算法将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存,在Linux内存管理中,主要是通过“调页Paging”和“交换Swapping”来完成上述内存调度。调页算法是将内存中最近不常使用的页面换到磁盘上,把活动页面保留在内存中供进程使用。交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。

缓存和缓冲:Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的。它的引入是为了减小短期内突发I/O的影响,起到流量整形的作用。Cache(缓存)是系统两端处理速度不匹配时的一种折衷策略。Cache和Buffer都是2个层面之间的中间层,是内存。Cache解决的是时间问题,以提高速度;Buffer解决的是空间问题,给信息找到一个暂存空间。buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的。

mpstat:Multiprocessor Statistics

实时系统监控工具。报告CPU相关的统计信息,这些信息存放在/proc/stat文件中。在多CPU系统里,可以查看所有CPU的平均状况信息以及特定CPU的信息。

语法格式:mpstat [-P {cpu/ALL}] [internal] [count]
  -P {cpu/ALL},表示监控哪个CPU,在[0,cpu个数-1]中取值
  internal,相邻的两次采样的间隔时间
  count,采样的次数

每两秒产生一次监控报告,产生两次:
例:

解释:
  %usr 在internal时间段里,用户态的CPU时间,不包含 nice值为负进程
   %nice 在internal时间段里,nice值为负进程的CPU时间
  %sys 在internal时间段里,核心时间
  %iowait 在internal时间段里,硬盘IO等待时间
  %irq 在internal时间段里,硬中断时间
  %soft 在internal时间段里,软中断时间
  %steal 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
  %guest 显示运行虚拟处理器时CPU花费时间的百分比
  %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间

pidstat

用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。

语法格式:pidstat [选项] [时间间隔] [次数]
选项:
  -u:默认的参数,显示各个进程的cpu使用统计
  -r:显示各个进程的内存使用统计
  -d:显示各个进程的IO使用情况
  -p:指定进程号
  -w:显示每个进程的上下文切换情况
  -t:显示选择任务的线程的统计信息外的额外信息
  -T {TASK /CHILD /ALL}
   TASK表示报告独立的task,
   CHILD表示报告进程下所有线程统计信息。
   ALL表示报告独立的task和task下面的所有线程。
  -h:在一行上显示了所有活动,这样其他程序可以容易解析。
  -I:在SMP环境,表示任务的CPU使用率/内核数量
  -l:显示命令名和所有参数

查看所有cpu的使用情况:
例:

iostat:I/O statistics(输入/输出统计)

磁盘活动和cpu使用情况统计。不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

语法格式:iostat [参数] [时间] [次数]
参数:
  -c显示 CPU 使用情况  
  -d显示磁盘使用情况
  --dec={ 0 | 1 | 2 }指定要使用的小数位数,默认为 2
  -g GROUP_NAME { DEVICE […] | ALL }显示一组设备的统计信息
  -H必须与 -g 一起使用,指示组的全局统计信息,不显示组中单个设备的统计信息
  -h以可读格式打印大小
  -j { ID | LABEL | PATH | UUID | … } [ DEVICE […] | ALL ]显示永久设备名。
   选项 ID、LABEL 等用于指定持久名称的类型
  -k以 KB 为单位显示
  -m 以 MB 为单位显示
  -N显示磁盘阵列(LVM) 信息
  -n显示NFS 使用情况
  -p [ { DEVICE [,…] | ALL } ] 显示磁盘和分区的情况
  -t在输出数据时,打印收集数据的时间
  -x 显示详细信息
  -z省略在采样期间没有活动的任何设备的输出

例:

解释:
  tps:每秒I/O数(即IOPS。磁盘连续读和连续写之和),磁盘吞吐量   
  kB_read/s:每秒从磁盘读取数据大小,单位KB/s
  kB_wrtn/s:每秒写入磁盘的数据的大小,单位KB/s kB_read:从磁盘读出的数据总数,单位KB
  kB_wrtn:写入磁盘的的数据总数,单位KB

free

显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。

语法格式:free [参数] [间隔]
参数:
  -b:以Byte为单位显示内存使用情况;
  -h:以人们易读的GB、MB、KB等格式显示
  -k:以KB为单位显示内存使用情况;
  -m:以MB为单位显示内存使用情况;
   -o:不显示缓冲区调节列;
  -s<间隔秒数>:持续观察内存使用状况;
  -t:显示内存总和列;

例:

sar:系统活动报告(System Activity Report)

从多方面对系统活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

语法格式:sar [options] [-A] [-o filename] t [n]
options:
  t为采样间隔,n为采样次数,默认值是1;
  -o file表示将命令结果以二进制格式存放在文件中
  -A:所有报告的总和
  -u:输出CPU使用情况的统计信息
  -v:输出inode、文件和其他内核表的统计信息
  -d:输出每一个块设备的活动信息
  -r:输出内存和交换空间的统计信息
  -b:显示I/O和传送速率的统计信息
  -a:文件读写情况
  -c:输出进程统计信息,每秒创建的进程数
  -R:输出内存页面的统计信息
  -y:终端设备活动情况
  -w:输出系统交换活动信息
  -n:统计网络信息 [DEV | EDEV | NFS | NFSD | SOCK | IP | EIP | ICMP | EICMP | TCP | ETCP | UDP | SOCK6 | IP6 | EIP6 | ICMP6 | EICMP6 | UDP6]
   DEV显示网络接口信息,
   EDEV显示关于网络错误的统计数据,
   NFS统计活动的NFS客户端的信息,
   NFSD统计NFS服务器的信息,
   SOCK显示套接字信息,
   ALL显示所有。
   可以单独或者一起使用

网络设备使用情况 1秒钟统计一次:
例:

解释:
  rxcmp/s 每秒钟接受的压缩数据包
  txcmp/s 每秒钟发送的压缩包
  rxmcst/s 每秒钟接收的多播数据包

ifstat

网络接口监测工具,监测网络流量

语法格式:ifstat [options]
options:
  -l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。
   加上-l参数比不加-l参数会多一个lo接口的状态信息。
  -a 监测能检测到的所有网络接口的状态信息。
  -z 隐藏流量是无的接口.  
  -i 指定要监测的接口,后面跟网络接口名
  -n关闭显示周期性出现的头部信息。
   不加-n参数运行ifstat,最顶部会保留网络接口,在多个分页中持续显示。
   加上-n参数把周期性的显示接口名称关闭,只在最初显示一次
  -t 在每一行的开头加一个时间戳
  -T 报告所有监测接口的全部带宽(最后一列total,显示所有接口的in和out流量)
  -w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
  -W 如果内容比终端窗口的宽度还要宽就自动换行
  -S 在同一行保持状态更新(不滚动不换行)
  -b 用kbits/s显示带宽而不是kbytes/s
  -q 安静模式,警告信息不出现
  -d 指定一个驱动来收集状态信息

df

检查linux服务器的文件系统的磁盘空间占用情况

语法格式:df [options]
options: 
  -a或–all:包含全部的文件系统;
  --block-size=<区块大小>:以指定的区块大小来显示区块数目;
  -h或–human-readable:以可读性较高的方式来显示信息;
  -H或–si:与-h参数相同,但在计算时是以1000 Bytes为单位而非1024 Bytes;
  -i或–inodes:显示inode的信息;
  -k或–kilobytes:指定区块大小为1024字节;
  -l或–local:仅显示本地端的文件系统;
  -m或–megabytes:指定区块大小为1048576字节;
  --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
  -P或–portability:使用POSIX的输出格式;
  --sync:在取得磁盘使用信息前,先执行sync指令;
  -t<文件系统类型>或–type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
  -T或–print-type:显示文件系统的类型;
  -x<文件系统类型>或–exclude-type=<文件系统类型>:不显示指定文件系统类型的磁盘信息;

显示/home文件夹下的磁盘空间:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值