基础知识体系
基础篇
- Linux版本
- 内核版本格式
- xx.yy.zz 主版本.次版本.补丁版本
- 小于2.6版本时
- 次版本为奇数时表示开发版
- 次版本为偶数时表示稳定版
- 大于2.6版本时
- longterm 长期支持版
- stable 稳定版
- mainline 主线开发版
- 常见发行版本
- RedHat
- Ubuntu
- CentOS
- Debian
- Fedora
- 内核版本格式
重要概念
命令提示符
- 命令或路径自动补全使用 Tab键
使用
type X
查看X命令的分类man
- man X
- man 1 man
- help
- help X # 获取内部命令的帮助
- X —help # 获取外部命令的帮助
- info
cd
进入指定路径
pwd
显示当前路径
mkdir
新建目录
rmdir
删除目录
cp
复制
-r 复制目录
-p 保留用户权限和时间属性
-a 尽可能保留文件所有属性,相当于 -dpR
rm
删除
-r 递归删除
-f 强制删除,不提示
mv
移动或重命名
mv file dir/ 移动
mv file file1 重命名
head
显示文件前n行
tail
显示文件尾n行
wc
统计
cat
查看文件内容,过长时不宜使用
tar
打包命令,扩展名.tar
配合gzip和bzip2 可以使用打包、压缩
gzip
压缩与解压缩,扩展名.gz
bzip2
压缩与解压缩,扩展名.bz2
通配符
- * 匹配任意字符
- ? 匹配任意单个字符
- [xyz] 匹配xyz中的任意一个字符
- [a-z] 匹配a到z的字符范围
- [^xyz] 匹配不在xyz中的任意字符
<a name="EmZh9"></a>
### vim文本编辑
- 正常模式
- i 当前位置进入插入模式
- I 移动到当前行首进入插入模式
- a 当前位置光标之后进入插入模式
- A 移动到当前行尾进入插入模式
- o 当前行下一行进入插入模式
- O 当前行上一行进入插入模式
- : 进入命令模式
- esc 回到正常模式
- hjkl 左下上右
- yy y$ 复制
- dd d$ 剪切
- p 粘贴
- u 撤销
- x 删除单个字符
- r 替换单个字符
- G 定位指定的行
- ^$ 定位到行首和行尾
- 命令模式
- w #保存
- w name #另存为
- q #退出
- q! #退出不保存
- !cmd #执行命令
- set nu #设置显示行号
- / #查找
- s/old/new/ #替换命令
- 插入模式
- 可视模式
- v 字符可视化模式
- V 行可视化模式
- ctrl + v 块可视化模式
<a name="5r7cC"></a>
### 用户管理
- 用户命令
- 常用命令
- useradd 添加用户
- userdel 删除用户
- passwd 设置用户密码
- usermod 修改用户信息
- groupadd 添加用户组
- groupdel 删除用户组
- 家目录
- /root
- /home/NAME
- 管理员身份运行
- su 切换用户
- sudo 临时用root用户身份执行某条命令
- visudo 修改sudo命令的配置文件
- 用户配置文件
- /etc/passwd 用户信息配置文件
- /etc/shadow 用户密码配置文件
<a name="t2MUn"></a>
### 权限管理
- 权限相关命令
- chmod 修改权限
- chown 修改属主、属组
- chgrp 单独修改属组
- 权限表示方法
- 字符表示
- r
- w
- x
- 目录权限
- rx 进入目录读取文件名
- wx 修改目录内文件名
- x 进入目录
- 特殊权限
- /etc/passwd 用户信息配置文件
- /tmp目录权限为777,确保只有root用户和文件属主才可操作自己的文件和目录
<a name="dS0tk"></a>
## 系统管理篇
<a name="TucdA"></a>
### 正则表达式
对字符串操作的一组逻辑公式,常用于文本的查找和替换。
- 基本元字符
- ^
- $
- *
- 扩展元字符
<a name="LzRDW"></a>
### 文本与文件查找
```shell
# grep
### -i 忽略大小写
### -v 反转
### -a 处理二进制文件
### -R 递归方式
# find
### -name 按文件名查找
### -perm 按权限查找
### -user 按属主查找
### -type 按类型查找
网络配置
- 配置文件
- ifcfg-eth0 eth0网卡的配置文件
- networking 主机名配置文件
- resolv.conf 域名配置文件
配置命令
rpm安装
# rpm ### -i 安装 ### -q 查询 ### -e 卸载 ### -U 升级
源码编译安装
./configure make make install
yum
# yum install X 安装 # yum update X 更新 # yum remove X 删除
服务与日志
服务管理
- service NAME start|stop |restart
- systemctl start|stop| restart NAME
日志管理
访问控制方式分类
- DAC 自主访问控制,管理的主体是用户,根据是否有RWX权限管理,没有SELinux,root任意访问
- MAC 强制访问控制,管理的主体是进程,在DAC之上根据进程是否有某一类资源的权限管理,拥有SELinux,root也只能访问自己可访问的资源类型
- 常用命令
- getenforce 查看状态
- setenforce 修改状态
配置文件
表
- filter 用于过滤
- nat 用于转换
- 链
- INPUT 进入本机
- OUTPUT 从本机发出
- FORWARD 转发方法
- PREROUTING 路由转换前
- POSTROUTING 路由转换后
# iptables ### -i -o 接口 ### -s -d IP地址/子网掩码 ### -p tcp/udp 协议 ### --sport 源端口 ### --dport 目的端口 ### -j 动作 ### -j ACCEPT ### -j DROP ### -j REJECT 拒绝并返回RST包 ### -j SNAT 源地址转换 ### -j DNAT 目标地址转换 ### -j MASQUERADE 动态源地址转换
tcpdump
```shelltcpdump
-v 显示详情
-n 不将IP解析为主机名
-i 接口
host 主机
port 端口
-r filename 从文件读取
-w filename 保存到文件
<a name="WPtfg"></a>
### 磁盘分区和文件系统
- 链接文件
- 软链接
- 硬链接
- 配置文件
- /etc/fstab
- mount挂载
```shell
# mount
### -t 文件系统类型
### -o 挂载选项
### -o ro 只读挂载
### -o rw 读写挂载
### -o remount 重新挂载
mkfs
格式化命令
mkfs.ext4 格式化为ext4文件系统
mkfs.xfs 格式化为xfs文件系统
df 查看分区使用空间
du 查看文件夹使用空间
<a name="dwXhY"></a>
### lvm
- 分层
- PV 物理卷
- VG 卷组
- LV 逻辑卷
- 常用命令
```shell
# pv
# pvcreate 建立pv
# pvs 查看pv
# vg
# vgcreate 建立vg
# vgs 查看vg
# lv
# lvcreate 建立lv
# lvs 查看lv
# lvextend 扩展lv
系统启动过程与故障修复
- 启动过程简述
- BIOS选择启动设备
- MBR硬盘可引导扇区
- GRUB 系统可引导工具
- 内核
- init或systemd
- service或systemd服务
- 启动tty等待用户登陆
更新内核版本
Shell是命令解释器,翻译用户的命令给内核执行,并将结果返回给用户
- BASH脚本作用
- 组合系统命令实现自动化
- 由基础命令组成脚本,不用深入掌握系统函数库
内外部命令
管道符号 |
- 重定向符号
- < 输入重定向
输出重定向,覆盖模式
输出重定向,追加模式
- sort 对文本进行排序
- join 连接两个字符串
进程与内存的查看与调整
```shellps
top
查看进程信息
free
查看内存使用率
iftop
查看进程网络情况
sar
更详细的查看系统状态,用于排故
<a name="s6rZw"></a>
### 变量与环境变量
- 变量的定义
- Shell变量无需声明,VAR=value
- unset $VAR #销毁变量
- 环境变量
- PATH
- 命令解释路径
- 配置文件
- /etc/profile 系统环境变量默认保存文件
- /etc/bashrc 当前shell初始化时默认配置文件
<a name="oSZz0"></a>
### 转义与引用
- 转义符号 /
- 引用符号
- '' 所见即所得
- "" 会解释里面的变量
<a name="K6BUH"></a>
### 循环
- while
- 根据while判断结果决定是否执行
- 判断的结果为命令的返回值,为0则循环继续
- 如果结果一直为0 则无法结束循环,形成死循环
- for
- 一般使用 for ... in 格式
- 需要使用(( )) 包裹C语言格式
- 支持break、continue循环控制
- 支持嵌套
<a name="gRqGN"></a>
### 函数
- 函数是对重复利用的代码进行封装
- 定义格式 函数名(){}
- 使用时直接使用函数名即可调用
<a name="YPQj0"></a>
### 运算符
- 基本符号
- +
- -
- *
- /
- %
- 弊端
- 运算效率低
- 不支持浮点运算
<a name="Z4yag"></a>
### 测试与判断
- test测试
- [[ ]]
- 文件测试 [[ -f name ]]
- 数字比较 [[ $VAR gt 0 ]]
- if
- 根据命令返回值判断真假
- 支持if/else
- 支持嵌套
- case
- case分支一般作为if的补充
- 分支结束符号 ;; 是 ;的转义形式
<a name="n2t4U"></a>
### 计划任务
- 一次性计划任务 at
- 周期性计划任务 cron
- crontab -l
- crontab -e
<a name="I4Hq6"></a>
## 文本操作篇
<a name="56iuj"></a>
### 正则表达式和文本搜索
- . 单个字符
- [xyz] 匹配xyz任意一个
- ^ 匹配行开始
- $ 匹配行结尾
- \ 转义特殊字符
- * 匹配任意次数
- + 匹配1次或多次
- ? 匹配0次或1次
- {m,n} 匹配出现次数
- |并列匹配
- () 分组
<a name="4Ijf0"></a>
### sed
- 基础
```shell
sed 'cmd' filename
sed -e 'cmd' -e 'cmd' filename
- s 替换
- d 删除
- a 追加
- i 插入
- c 更改
- n 下一步
- r 读文件
- w 写文件
- q 退出
- y 替换
- p 打印
- 高级
- 多行命令
- N 将多行追加到模式空间进行处理
- D 删除多行模式空间第一个字符至第一个换行符,并返回到脚本开头执行
- P 输出多行模式空间第一个字符至第一个换行符
- 保持空间模式
- h 将模式空间中的内容存储至保存空间,覆盖保存空间
- H 将模式空间中的内容存储至保存空间,追加保存空间
- g 将保存空间的内容存储至模式空间,覆盖模式空间
- G 将保存空间的内容存储至模式空间,追加模式空间
- x 交换模式空间和保存空间内容
- 条件与分支
- 工作方式
- BEGIN{} 用于预处理
- {} 用于行处理
- END{} 用于后处理
- 运算符
- 算术运算符
- 关系运算符
- 布尔运算符
- 循环
- while
- for
- break/continue
- 函数
- 算术函数
- 随机函数
- 字符串函数
- 条件
- if (条件)
- 支持嵌套
- 支持if/else
- 系统变量
常见指标分类(USE法) | ||
---|---|---|
资源 | 类型 | 性能指标 |
CPU | 使用率 | CPU使用率 |
CPU | 饱和度 | 运行队列长度或平均负载 |
CPU | 错误数 | 硬件CPU错误数 |
内存 | 使用率 | 已用内存百分比或SWAP百分比 |
内存 | 饱和度 | 内存换页量 |
内存 | 错误数 | 内存失败分配或OOM |
存储设备I/O | 使用率 | 设备I/O时间百分比 |
存储设备I/O | 饱和度 | 等待队列长度或延迟 |
存储设备I/O | 错误数 | I/O错误数 |
文件系统 | 使用率 | 已用容量百分比 |
文件系统 | 饱和度 | 已用容量百分比 |
文件系统 | 错误数 | 文件读写错误数 |
网络 | 使用率 | 带宽使用率 |
网络 | 饱和度 | 重传报文数 |
网络 | 错误数 | 网卡收发错误数、丢包数 |
文件描述符 | 使用率 | 已用文件描述符占比 |
连接跟踪 | 使用率 | 已用连接跟踪数占比 |
连接数 | 饱和度 | TIME_WAIT状态连接数 |
常见性能工具
CPU性能工具
CPU性能工具 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
平均负载 | uptime、top /proc/loadavg |
top提供的比较全面 /proc/loadavg是数据源,用于监控 |
系统CPU使用率 | vmstat、mpstat、top、sar /proc/stat |
vmstat、mpstat、top只可以动态查看,sar可以记录数据,/proc/stat是数据源,用于监控 |
进程CPU使用率 | pidstat、top、ps、htop、atop | top、ps可以排序,pidstat只显示使用了CPU的进程,htop、atop更直观 |
系统上下文切换 | vmstat | 上下文切换次数、不可中断状态进程数 |
进程上下文切换 | pidstat | 注意加上 -w选项 |
软中断 | top、mpstat /proc/softirqs |
top提供软中断CPU使用率,mpstat和/proc/softirqs提供软中断在每个CPU上次数 |
硬中断 | vmstat /proc/intterrupts |
vmstat提供总的中断次数 /proc/interrupts提供中断在每个CPU上次数 |
网络 | dstat、sar、tcpdump | dstat、sar提供总的网络收发情况,tcpdump抓包 |
I/O | dstat、sar | dstat、sar提供总体IO情况 |
CPU缓存 | perf | perf stat 、perf record |
CPU数量 | lscpu /proc/cpuinfo |
lscpu更直观 |
事件剖析 | perf、火焰图、execsnoop | perf和火焰图分析热点函数调用栈 execsnoop监测短时进程 |
动态追踪 | ftrace、bcc、systemtap | ftrace用来跟踪内核函数调用栈,bcc和systemtap用于跟踪内核或应用执行过程 |
内存性能工具
内存性能工具 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
系统已用、可用、剩余内存 | free、vmstat、sar /proc/meminfo |
free最简单、vmstat、sar更全面 /proc/meminfo是数据源,用于监控 |
进程虚拟内存、常驻内存、共享内存 | ps、top、pidstat /proc/PID/stat和status |
ps和top最简单、pidstat需要添加-r选项 /proc/PID/stat和status是数据源,用于监控 |
进程内存分布 | pmap /proc/PID/maps |
/proc/PID/maps是pmap的数据源 |
进程swap换出内存 | top /proc/PID/status |
/proc/PID/status是top的数据源 |
进程缺页异常 | ps、top、pidstat | pidstat需要添加-r选项 |
系统换页情况 | sar | sar -B |
缓存/缓冲区用量 | free、vmstat、sar、cachestat | vmstat最常用,cachestat需要bcc |
缓存/缓冲区命中率 | cachetop | 需要bcc |
swap已用和剩余空间 | free、sar | sar可以记录历史数据 |
swap换入换出 | vmstat、sar | sar可以记录历史数据 |
内存泄漏检测 | memleak、valgrind | memleak需要bcc、valgrind可以兼容旧版本内核 |
指定文件的缓存大小 | pcstat | 需要源码下载安装 |
文件系统和磁盘I/O性能工具
文件系统和磁盘I/O性能工具 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
fs空间容量、使用量、剩余空间 | df | 详细可查帮助文档 info coreutils ‘df invocation’ |
索引节点容量、使用量、剩余量 | df | df -i |
页缓存和可回收Slab缓存 | vmstat、sar /proc/meminfo |
sar -r /proc/meminfo是数据源、可用于监控 |
缓冲区 | vmstat、sar /proc/meminfo |
sar -r /proc/meminfo是数据源、可用于监控 |
目录项、fs、inode的缓存 | slabtop /proc/slabinfo |
slabtop更直观 |
磁盘IO使用率、IOPS、吞吐量 | iostat、dstat /proc/diskstats |
iostat最常用,注意使用iostat -d -x或 sar-d /proc/diskstats是数据源、可用于监控 |
远程IO及IO延迟 | pidstat、iotop | pidstat -d |
块设备IO事件跟踪 | blktrace | 需要跟blkparse配合使用 blktrace -d /dev/sda -o- | blkparse -i- |
进程IO调用跟踪 | strace、perf trace | strace只跟踪单个进程、perf trace跟踪所有进程 |
进程/块设备IO大小跟踪 | biosnoop、biotop | 需要bcc |
动态跟踪 | ftrace、bcc、systemtap | ftrace用来跟踪内核函数调用栈,bcc和systemtap用于跟踪内核或应用执行过程 |
网络性能工具
网络性能工具 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
吞吐量(BPS) | sar、nethogs、iftop /proc/net/dev |
可分别查看网络接口、进程、IP地址的网络吞吐量 /proc/net/dev常用于监控 |
吞吐量(PPS) | sar /proc/net/dev |
sar -n DEV |
网络连接数 | netstat 、ss | ss速度更快 |
网络错误数 | netstat、sar | netstat -s 或 sar -n EDEV/EIP |
网络延迟 | ping、hping3 | ping基于ICMP、hping3基于TCP |
连接跟踪数 | conntrack /proc/sys/net/netfilter/nf_conntrack_count /proc/sys/net/netfilter/nf_conntrack_max |
contrack可查看所有连接跟踪的相关信息 nf_conntrack_count查看连接跟踪数量 nf_conntrack_max限制了总的连接跟踪数量 |
路由 | mtr、traceroute、route | route查询路由表、 mrt、traceroute排查定位网络链路中的路由问题 |
DNS | dig、nslookup | 排查DNS问题 |
防火墙和NAT | iptables | 排查防火墙和NAT问题 |
网卡选项 | ethtool | 查看和配置网络接口的功能选项 |
网络抓包 | tcpdump、wireshark | tcpdump抓包、wireshark分析 |
动态追踪 | ftrace、bcc、systemtap | ftrace用来跟踪内核函数调用栈,bcc和systemtap用于跟踪内核或应用执行过程 |
根据指标找工具
CPU性能
CPU性能 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
平均负载 | uptime、top | top提供的比较全面 |
系统CPU使用率 | vmstat、mpstat、top、sar /proc/stat |
vmstat、mpstat、top只可以动态查看,sar可以记录数据,/proc/stat是数据源,用于监控 |
进程CPU使用率 | pidstat、top、ps、htop、atop | top、ps可以排序,pidstat只显示使用了CPU的进程,htop、atop更直观 |
系统上下文切换 | vmstat | 上下文切换次数、不可中断状态进程数 |
进程上下文切换 | pidstat | 注意加上 -w选项 |
软中断 | top、mpstat /proc/softirqs |
top提供软中断CPU使用率,mpstat和/proc/softirqs提供软中断在每个CPU上次数 |
硬中断 | vmstat /proc/intterrupts |
vmstat提供总的中断次数 /proc/interrupts提供中断在每个CPU上次数 |
网络 | dstat、sar、tcpdump | dstat、sar提供总的网络收发情况,tcpdump抓包 |
I/O | dstat、sar | dstat、sar提供总体IO情况 |
CPU数量 | lscpu /proc/cpuinfo |
lscpu更直观 |
事件剖析 | perf、火焰图、execsnoop | perf和火焰图分析热点函数调用栈 execsnoop监测短时进程 |
内存性能
内存性能 | |
---|---|
性能指标 | 性能工具 |
系统已用、可用、剩余内存 | free、vmstat、sar /proc/meminfo |
进程虚拟内存、常驻内存、共享内存 | ps、top、pidstat |
进程内存分布 | pmap |
进程swap换出内存 | top /proc/PID/status |
进程缺页异常 | ps、top、pidstat |
系统换页情况 | sar |
缓存/缓冲区用量 | free、vmstat、sar、cachestat |
缓存/缓冲区命中率 | cachetop |
swap已用和剩余空间 | free、sar |
swap换入换出 | vmstat、sar |
内存泄漏检测 | memleak、valgrind |
指定文件的缓存大小 | pcstat |
文件系统和磁盘IO
文件系统和磁盘I/O性能 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
fs空间容量、使用量、剩余空间 | df | 详细可查帮助文档 info coreutils ‘df invocation’ |
索引节点容量、使用量、剩余量 | df | df -i |
页缓存和可回收Slab缓存 | vmstat、sar /proc/meminfo |
sar -r /proc/meminfo是数据源、可用于监控 |
缓冲区 | vmstat、sar /proc/meminfo |
sar -r /proc/meminfo是数据源、可用于监控 |
目录项、fs、inode的缓存 | slabtop /proc/slabinfo |
slabtop更直观 |
磁盘IO使用率、IOPS、吞吐量 | iostat、dstat /proc/diskstats |
iostat最常用,注意使用iostat -d -x或 sar-d /proc/diskstats是数据源、可用于监控 |
远程IO及IO延迟 | pidstat、iotop | pidstat -d |
块设备IO事件跟踪 | blktrace | 需要跟blkparse配合使用 blktrace -d /dev/sda -o- | blkparse -i- |
进程IO调用跟踪 | strace、perf trace | strace只跟踪单个进程、perf trace跟踪所有进程 |
进程/块设备IO大小跟踪 | biosnoop、biotop | 需要bcc |
网络性能
网络性能 | ||
---|---|---|
性能指标 | 性能工具 | 说明 |
吞吐量(BPS) | sar、nethogs、iftop | 可分别查看网络接口、进程、IP地址的网络吞吐量 |
吞吐量(PPS) | sar /proc/net/dev |
sar -n DEV |
网络连接数 | netstat 、ss | ss速度更快 |
网络延迟 | ping、hping3 | ping基于ICMP、hping3基于TCP |
连接跟踪数 | conntrack | contrack可查看所有连接跟踪的相关信息 |
路由 | mtr、traceroute、route | route查询路由表、 mrt、traceroute排查定位网络链路中的路由问题 |
DNS | dig、nslookup | 排查DNS问题 |
防火墙和NAT | iptables | 排查防火墙和NAT问题 |
网卡选项 | ethtool | 查看和配置网络接口的功能选项 |
网络抓包 | tcpdump、wireshark | tcpdump抓包、wireshark分析 |
动态追踪 | ftrace、bcc、systemtap | ftrace用来跟踪内核函数调用栈,bcc和systemtap用于跟踪内核或应用执行过程 |
根据工具找指标
CPU性能
根据工具查指标 | |
---|---|
性能工具 | CPU性能指标 |
uptime | 平均负载 |
top | 平均负载、运行队列、整体CPU使用率、每个进程的状态和CPU使用率 |
htop | top增强版、不同颜色区分更直观 |
atop | CPU、内存、磁盘、网络各种资源的全面监控 |
vmstat | 系统整体CPU使用率、上下文切换次数、中断次数、运行状态和不可中断状态进程数 |
mpstat | 每个CPU的使用率和软中断次数 |
pidstata | 进程和线程的CPU使用率、中断上下文切换次数 |
/proc/softirqs | 软中断类型和在每个CPU上的累积中断次数 |
/proc/interrupts | 硬中断类型和在每个CPU上的累积中断次数 |
ps | 每个进程的状态和CPU使用率 |
pstree | 进程的父子关系 |
dstat | 系统整体的CPU使用率 |
sar | 系统整体的CPU使用率、包括历史数据 |
starce | 进程的系统调用 |
perf | CPU性能事件剖析,如调用链分析、CPU缓存、CPU调度等 |
execsnoop | 监控短时进程 |
内存性能
根据工具查指标 | |
---|---|
性能工具 | 内存性能指标 |
free /proc/meminfo |
系统已用、可用、剩余内存以及缓存和缓冲区的使用量 |
top、ps | 进程虚拟、常驻、共享内存以及缺页异常 |
vmstat | 系统剩余内存、缓存、缓冲区、换入、换出 |
sar | 系统内存换页情况、内存使用率、缓存缓冲用量以及swap使用情况 |
cachestat | 系统缓存和缓冲区的使用率 |
cachetop | 系统缓存和缓冲区的命中率 |
slabtop | slab缓存使用情况 |
/proc/PID/status | 进程swap情况 |
pmap | 进程地址空间和内存状态 |
valgrind | 进程内错误检查器、检测内存初始化、泄漏、越界访问等内存错误 |
memleak | 内存泄漏检测 |
pcstat | 查看指定文件的缓存情况 |
文件系统和磁盘IO
根据工具查指标 | |
---|---|
性能工具 | 文件系统和磁盘IO性能指标 |
iostat | IO使用率、IOPS、吞吐量、响应时间、IO平均大小、等待队列长度 |
pidstat | 进程IO大小以及IO延迟 |
sar | 磁盘IO使用率、IOPS、吞吐量以及响应时间 |
dstat | 磁盘IO使用率、IOPS、吞吐量 |
iotop | 按IO大小对进程排序 |
slabtop | 目录项、索引节点、文件系统的缓存 |
/proc/slabinfo | 目录项、索引节点、文件系统的缓存 |
/proc/meminfo | 页缓存、和可回收slab缓存 |
/proc/diskstats | 磁盘的IOPS、吞吐量以及延迟 |
/proc/PID/io | 进程IOPS、IO大小、以及IO延迟 |
vmstat | 缓存和缓冲区用量汇总 |
blktrace | 跟踪块设备IO事件 |
biosnoop | 根据进程的块设备IO大小 |
biotop | 跟踪进程块IO并按IO大小排序 |
strace | 跟踪进程IO的系统调用 |
perf | 跟踪内核的IO事件 |
df | 磁盘空间和索引节点的使用量和剩余量 |
mount | 文件系统的挂载以及挂载参数 |
du | 目录占用磁盘空间大小 |
tune2fs | 显示和设置文件系统参数 |
hdparam | 显示和设置磁盘参数 |
网络性能
根据工具查指标 | |
---|---|
性能工具 | 网络性能指标 |
ifconfig、ip | 配置和查看网络接口 |
ss | 查看网络连接数 |
sar | 查看网络接口的网络收发情况 |
nethogs | 查看进程的网络收发情况 |
iftop | 查看IP的网络收发情况 |
ethtool | 查看和配置网络接口 |
conntrack | 查看和管理网络连接跟踪状况 |
dig、nslookup | DNS解析问题 |
mtr、route、traceroute | 查看路由并测试链接信息 |
ping、hping3 | 测试网络延迟 |
tcpdump | 网络抓包 |
wireshark | 分析网络包 |
iptables | 配置和管理防火墙和NAT规则 |
perf | 剖析内核协议的性能 |
bcc、systemtap | 动态跟踪内核协议栈的行为 |