你好! 这篇文章是基于个人对于岗位面试需求理解编写的,希望可以对读者有所帮助。
系统整体状况
- top ,使用该命令可以查看系统的CPU、负载等信息,查看CPU利用率排行第一的进程,系统的负载情况会按照1分钟、5分钟和15分钟分别展示,如果这几个值的和除以3再乘以100%,超过了60%,则表示当前的系统负载存在压力。;
- uptime,该命令是top命令的精简版,该命令主要能够查看系统的负载情况;
CPU状况
- vmstat,语法 vmstat -n 采样时间间隔 采样次数;
例如:vmstat -n 2 3,每2秒采样一次,一共采样3次
通过vmstat命令可以查看包括CPU在内的一些系统信息
procs:
- r:运行和等待CPU时间片的进程数,数量不要超过总核数的2倍,否则表示系统压力大
- b:等待资源的进程数,包括磁盘I/O等待、网络I/O等待。。。等信息
cpu: - us:用户进程的CPU使用率
- sy:系统进程的CPU使用率
- id:空闲CPU百分比
- wa:等待资源I/O的CPU百分比
如果us+sy的值大于80%,则可能存在CPU使用率过高的情况
- mpstat,语法:mpstat -P ALL 采样时间间隔 采样次数;
可以看到该机器的CPU情况,包括用户使用率(%usr)和空闲率(%idle) - pidstat,语法:pidstat -p 进程号 -u 采样间隔 采样次数,获取程序的CPU使用情况;
内存状况
- free,语法:free -m,使用MB为单位,查看内存的使用情况;
- pidstat,语法:pidstat -p 进程号 -r 采样间隔 采样次数,查看进程的内存使用情况;
磁盘状况
- df,使用命令df -h,可以查看磁盘的使用和剩余状况;
- iostat,语法:iostat -dkx 采样间隔 采样次数,可以查看磁盘的I/O状况。
- -d:显示设备(磁盘)的使用状况
- -k:以KB为单位显示磁盘的输出
- -x:在输出中包括扩展的磁盘指标
该命令可以搭配lsblk命令(列出所有的块设备,并且显示它们之间的依赖关系)
tips:需要关注几个参数 - rkB/s:每秒读取的千兆字节数
- wkB/s:每秒写入的千兆字节数
- await:磁盘响应时间,平均每次设备I/O操作的等待时间(毫秒)。时间越短越好
- %util:统计时间间隔秒中有百分之多少的时间用于I/O操作,即该值=设备I/O操作时间/统计间隔时间。所以该值暗示了设备的繁忙程度,如果该值是100%,则表示设备已经接近满负荷运行了(如果是多磁盘,因为磁盘的并发能力,所以磁盘的使用率未必就达到了瓶颈)
- pidstat,语法:pidstat -p 进程ID -d 采样间隔 采样次数,可以查看该进程的每秒读取的千兆字节数(kB_rd/s)和已经完成或将要写入的千兆字节数(kB_wr/s)
tips:-d参数只能是内核2.6.20及以后版本才有。可以通过uname -r来查看内核发型号信息
网络状况
- ifstat,该命令需要到官网进行下载和编译安装,语法:ifstat -a 采样间隔 采样次数,监听所有网络端口,包括回环端口(lo),可以查看网卡的每秒读入量(KB/s in)和读出量(KB/s out)
文本搜索工具grep
语法:grep [options] [pattern] file,即命令 参数 匹配模式 文件数据
- -i:不区分大小写
- -v:排除匹配结果
- -n:显示匹配行与行号
- -o:仅显示匹配到的字符串本身
- -E:支持使用扩展的正则表达式元字符(egrep命令)
- -c:只统计匹配的行数
- -w:只匹配过滤的单词
- -q:静默模式,即不输出任何信息
- - -color=auto,为grep过滤结果添加颜色
- 输出以i开头的行(不区分大小写):grep “^i” test.txt -i -n,注:这里的-i代表不区分大小写,-n代表显示匹配行和行号
- 输出以.结尾的行:grep “.$” test.txt -n,注:因为.在这里有着特殊含义, 所以要用\转义一下, 如果不加转义字符的话, grep就会把它当做正则表达式来处理(.代表的含义是匹配任意一个字符)
- 在Linux系统中,所有文件的结尾都有一个$符号,"."点表示任意一个字符, 有且只有一个, 不包含空行