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文件夹下的磁盘空间: