最近学习的16个Linux命令,主要分为以下几个类别:
系统监控工具类命令:
1、vmstat
vm即为virtual memory 虚拟内存,此命令是给出给定时间间隔的服务器的运行状态值,包括CPU使用率,内存使用,虚拟内存交换情况,IO读写情况等。运行结果如下解图所示,vmstat 2表示每2秒刷新显示一次。
r 表示等待运行的进程数,即多少个进程真的分配到CPU,当这个数目超过CPU的数目就会出现CPU瓶颈。
b 表示阻塞的进程数,即非中断睡眠状态的进程数。
swap 表示虚拟内存已经使用的大小。 free 表示空闲的物理内存大小
buff 用来存储目录有什么内容和权限的缓存。 cache 表示用来记忆我们打开的文件,给文件做相应的缓冲。
si 表示每秒从磁盘读入虚拟内存的大小。 so每秒从虚拟内存写入磁盘的大小。i与o是相对于虚拟内存而言的。
bi 表示每秒从块设备接收到的块数即读块设备,bo 表示每秒发送到块设备的块数即写块设备。
in 表示CPU每秒的中断次数,包括时间中断。 cs 表示每秒上下文切换次数。例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
us 表示用户cpu时间,sy 表示系统cpu时间,id表示空闲cpu时间。wa表示等待IO cpu时间。
2、iostat
从系统启动开始的CPU平均时间,类似于uptime,同时还会创建一个服务器磁盘子系统的活动报告,包括cpu使用情况和磁盘使用情况。
iostat -c 单独显示CPU使用时间 iostat -d 单独显示硬盘设备(Device)的I/O口的每秒传输次数和读写速度及容量。
主要参数说明: %user 表示显示user level为应用时,CPU占用情况;%nice表示显示user level在nice priority时,cpu占用情况,%system表示显示user level为kernel系统时cpu占用情况。
%idle表示空闲时间所占比例。
tps表示该设备每秒IO传输的次数。
3、iotop
是一个用来监视磁盘IO使用状况的top类工具。详细功能用于没有在终端页面跑起来,后续再介绍。
4、top
动态观察系统进程状况,了解系统资源整体性能。
具体细节和参数见百度百科资料。
2、检查统计类工具
df(disk free ):检查文件系统的磁盘空间使用情况,多少被使用,多少剩余。
具体参数指标:-a 显示所有文件的磁盘使用情况
-k 以字节为单位显示磁盘使用情况 -i 以i节点信息显示而不是磁盘块 -T显示出文件的系统类型 -h以易读的方式显示磁盘空间 -H采用1000而不是1024进行容量转换。
du(disk usage):统计目录(或文件)所占磁盘空间的大小。
-a为每个指定文件显示所占磁盘情况,-h 以人性化方式显示, -s 近显示总计当前目录大小。