vmstat命令
功能是用于监视系统资源状态,查看系统关于进程、内存、硬盘I/O等整体运行状态。
展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存的交换情况,io读写等
用法:vmstat a b 表示每a秒采集b次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 1289956 2076 239612 0 0 7 1 26 49 0 0 100 0 0
r 等待执行的任务数
b 等待io的进程数量
swpd 正在使用虚拟内存的大小,单位是k
free 空闲内存的大小
buff 缓冲,加速数据"写入"硬盘
cache 缓存,加速数据从硬盘中"读取"
加-a参数
nact:非活跃内存的大小
active:活跃内存的大小
si 每秒从交换分区写入内存的大小 kb/s
so 每秒从内存写入交换区的大小
bi 每秒读取的块数(读磁盘)
bo 每秒写入的块数(写磁盘)
in 每秒的中断数 该值越大:内核消耗的cpu时间越多
cs 每秒上下文切换数 该值越大:内核消耗的cpu时间越多
us 用户进程执行消耗cpu的时间 该值长期超过50%:考虑优化程序算法
sy 系统进程执行消耗cpu的时间 该值过高:系统内核消耗的cpu资源多
id 空闲时间
wa 等待io时间 该值高的原因:磁盘大量随机访问和磁盘带宽出现瓶颈在vmstat命令中,我们重点关注r的值,以及cpu中us,sy,wa的值
--------------------------------------------------------------------------------------------------------
iostat 对系统的磁盘操作活动进行监视
-x 显示详细信息
Linux 3.10.0-957.el7.x86_64 (node19) 05/06/2022 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.04 0.00 0.10 0.03 0.00 99.83
%user cpu在用户模式下的时间百分比
%nice cpu在nice值的用户模式下的时间百分比
%system cpu在系统模式下的时间百分比
%iowait cpu等待输入输出完后时间的百分比
%steal 管理程序维护一个虚拟处理器,虚拟cpu的无意识等待时间百分比
%idle cpu空闲时间的百分比
----------------------------------------------------------------------------------------------------------
free -m 查看内存的情况
total used free shared buff/cache available
Mem: 1602 106 1259 9 236 1323
Swap: 2047 0 2047
total 总内存的大小
used 已经使用的内存的大小
free 空闲内存的大小
shared 进程间的共享内存
buff/cache 缓冲/缓存
available 可用的内存大小
-----------------------------------------------------------------------------------------------------------
df -h 用来检查linux服务器的文件系统的磁盘空间占用情况
文件系统 容量 以用 可用 已用占比 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 10G 4.2G 5.9G 42% /
devtmpfs 791M 0 791M 0% /dev
tmpfs 802M 0 802M 0% /dev/shm
tmpfs 802M 9.7M 792M 2% /run
tmpfs 802M 0 802M 0% /sys/fs/cgroup
/dev/sda1 1014M 127M 888M 13% /boot
tmpfs 161M 0 161M 0% /run/user/0
面试中被问到过上述指令,印象深刻的还有,buffer和cacahe的区别:
buffer
1.buffer:缓冲区,buffer是为了提高内存和硬盘(或其他I/O设备)之间数据交换速度而设计的。
buffer是根据硬盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
cache
2.cache:缓存区,cache是为了提高CPU和内存之间的数据交换速度而设计的。
即将经常用到的数据放到缓存区内,方便CPU的读取,从而提高性能。
简单理解下:
buffer是缓冲(缓和冲击),主要通过减少不必要的状态切换和设备I/O来提高性能;
cache是缓存(缓存数据),主要通过将部分数据放到读写速度快的地方,加快取用速度,从而提高性能。
共性:
都属于内存,数据都是临时的,一旦关机数据都会丢失。
差异:
1.buffer是写入数据,cache是读取数据
2.buffer数据丢失会影响数据完整性,源数据不受影响;cache数据丢失不影响数据完整性,但影响性能
3.buffer大小够用就行;cache越大,性能越好