操作系统性能优化实践
创始人
2025-05-31 03:40:01

感谢内容提供者:四川省奇呱科技有限公司

文章目录

  • 一、常见性能指标及USE法分类
    • 1.CPU 性能指标
      • a.CPU使用率
      • b.上下文切换
      • c.平均负载
      • d.CPU缓存命中率
    • 2.内存性能指标
      • a.系统内存指标
      • b.进程内存指标
      • c.SWAP
    • 3.I/O性能指标
      • a.文件系统
      • b.磁盘
    • 4.网络性能指标
      • a.应用层
      • b.传输层
      • c.网络层
      • d.链路层
    • 5.常见指标分类(USE法)
  • 二、常见性能工具
    • 1. CPU性能工具
    • 2. 内存性能工具
    • 3. 文件系统和磁盘I/O性能工具
    • 4. 网络性能工具
  • 三、根据指标找工具
    • 1.根据指标找工具(CPU性能)
    • 2.根据指标找工具(内存性能)
    • 3.根据指标找工具(文件系统和磁盘I/O)
    • 4.内存性能工具
  • 四、根据工具找指标
    • 1.根据指标找工具(CPU性能)
    • 2.根据工具查指标(网络性能)
    • 3.根据工具查指标(文件系统和磁盘I/O)
    • 4.根据工具查指标(内存性能)
  • 五、CPU性能分析一般步骤
  • 六、内存性能分析一般步骤
  • 七、网络性能分析一般步骤
  • 八、I/O性能分析一般步骤

一、常见性能指标及USE法分类

1.CPU 性能指标

a.CPU使用率

  1. 用户CPU
  2. 系统CPU
  3. IOWAIT
  4. 软中断
  5. 硬中断
  6. 窃取CPU
  7. 客户CPU

b.上下文切换

  1. 自愿上下切换
  2. 非自愿上下文切换

c.平均负载

d.CPU缓存命中率

2.内存性能指标

a.系统内存指标

  1. 已用内存
  2. 剩余内存
  3. 可用内存
  4. 缺页异常
    1. 主缺页异常
    2. 次缺页异常
  5. 缓存/缓冲区
    1. 使用量
    2. 命中率
  6. Slabs

b.进程内存指标

  1. 虚拟内存(CSS)
  2. 常驻内存(RSS)
  3. 按比例分配共享内存后的物理内存(PSS)
  4. 独占内存(USS)
  5. 共享内存
  6. SWAP内存
  7. 缺页异常
    1. 主缺页异常
    2. 次缺页异常

c.SWAP

  1. 已用空间
  2. 剩余空间
  3. 换入速度
  4. 换出速度

3.I/O性能指标

a.文件系统

  1. 储存空间容量、使用量以及剩余空间
  2. 索引节点容量、使用量以及剩余量
  3. 缓存
    1. 页缓存
    2. 目录项缓存
    3. 索引节点缓存
    4. 具体文件系统缓存(如ext4的缓存)
  4. IOPS(文件I/O)
  5. 响应时间(延迟)
  6. 吞吐量(B/s)

b.磁盘

  1. 使用率
  2. IOPS
  3. 吞吐量(B/S)
  4. 响应时间(延迟)
  5. 缓冲区
  6. 相关因素
    1. 读写类型(是顺序还是随机)
    2. 读写比例
    3. 读写大小
    4. 存储类型(如RAID级别、本地还是网络)

4.网络性能指标

a.应用层

  1. QPS(每秒请求数)
  2. 套接字缓冲区大小
  3. DNS解析延迟
  4. 响应时间
  5. 错误数

b.传输层

  1. TCP连接数
    1. 全连接
    2. 半连接
    3. TIMEWAIT
  2. 连接跟踪数
  3. 重传数
  4. 丢包数
  5. 延迟

c.网络层

  1. 丢包数
  2. TTL
  3. 拆包

d.链路层

  1. PPS(每秒网络帧数)
  2. BPS(每秒字节数)
  3. 丢包数
  4. 错误数

5.常见指标分类(USE法)

PS:USE法(Utilization Saturation and Errors),专门用于系统资源性能监控的分类方法

常见指标分类(USE法)

资源类型性能指标
CPU使用率CPU使用率
CPU饱和数运行队列长度或平均负载
CPU错误数硬件CPU错误数
内存使用率已用内存百分比或SWAP用量百分比
内存饱和数内存换页量
内存错误数内存分配失效或OOM
存储设备I/O使用率设备 I/O时间百分比
存储设备I/O饱和数等待队列长度或延迟
存储设备I/O错误数I/O错误数
文件系统使用率已用容量百分比
文件系统饱和数已用容量百分比
文件系统错误数文件读写错误数
网络使用率带宽使用率
网络饱和数重传报文数
网络错误数网卡收发错误数、丢包数
文件描述符使用率已用文件描述符数百分比
连接跟踪使用率已用连接跟踪数百分比
连接数饱和度TIMEWAIT状态连接数

二、常见性能工具

1. CPU性能工具

性能指标性能工具说明
平均负载uptime、top、/proc/loadavguptime最简单;top提供了更全的指标;
/proc/loadavg常用于监控系统
系统CPU使用率vmstat、mpstat、top、sar、/proc/stattop、vmstat、mpstat只可以动态查看,而sar还可以记录历史数据;/proc/stat是其他性能工具的数据来源,也常用于监控
进程CPU使用率top、ps、pidstat、htop、atoptop和ps可以按CPU使用率给进程排序,而pidstat只显示实际用了CPU的进程;htop和atop以不同颜色显示更直观
系统上下文切换vmstat除了上下文切换次数,还提供运行状态和不可中断状态进程的数量
进程上下文切换pidstat注意加上-w选项
软中断top、mpstat、/proc/softirqstop提供软中断CPU使用率,而/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数
硬中断vmstat、/proc/interruptsvmstat提供总的中断次数,而/proc/interrupts提供各种中断在每个CPU上运行的累积次数
网络dstat、sar、tcpdumpdstat sar提供总的网络接收和发送情况,而tcpdump则是动态抓取正在进行的网络通讯
I/Odstat、sardstat和sar都提供了I/O的整体情况
CPU缓存perf使用perf stat子命令
CPU数Iscpu、/proc/cpuinfoIscpu更直观
事件剖析perf、火焰图、execsnoopperf和火焰图用来分析热点函数以及调用栈,execsnoop用来检测短时进程
动态追踪ftrace、bcc、systemtapftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本>=4.1)

2. 内存性能工具

性能指标性能工具说明
系统已用、可用、剩余内存free、vmstat、sar、/proc/meminfofree最为简单,而vmstat、sar更为全面;/proc/meminfo是其他工具的数据来源,也常用于监控系统中
进程虚拟内存、常驻内存、共享内存ps、top、pidstat、/proc/pid/stat、/proc/pid/statusps和top最简单,而pidstat则需要加上-r选项;/proc/pid/stat和/proc/pid/status是其他工具的数据来源,也常用于监控系统中
进程内存分布pmap、/proc/pid/maps/proc/pid/maps是pmap的数据来源
进程Swap换出内存top、/proc/pid/status/proc/pid/maps是top的数据来源
进程缺页异常ps、top、pidstat注意给pidstat加上-r选项
系统换页情况sar注意加上-B选项
缓存/缓冲区用量free、vmstat、sar cachestatvmstat最常用,而cachestat需要安装bcc
缓存/缓冲区命中率cachetop需要安装bcc
SWAP已用空间和剩余空间free、sarfree最为简单。而sar还可以记录历史
Swap换入换出vmstat、sarvmstat最为简单,而sar还可以记录历史
内存泄露检测menmleak、valgrindmemleak需要安装bcc,vglgrind还可以在旧版本(如3.x)内核中使用
指定文件的缓存大小pcstat需要从源码下载安装

3. 文件系统和磁盘I/O性能工具

性能指标性能工具说明
文件系统空间容量、使用量、以及剩余空间df详细文档可以执行
info coreutils’ df invocation’ 命令查询
索引节点容量、使用量、以及剩余量df注意加上-i选项
页缓存和可回收Slab缓存/proc/meminfo、sar、vmstat注意sar需要加上 -r 选项,而/pro/meminfo是其他工具的数据来源,也常用于监控
缓冲区/proc/meminfo、sar、vmstat注意sar需要加上-r选项,而/pro/meminfo是其他工具的数据来源,也常用于监控
目录项、索引节点以及文件系统的缓存/proc/slabinfo、slabtopslabtop更直观,而/proc/slabinfo常用于监控
磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度iostat,sar,dstat、/proc/diskstatsiostat最为常用,注意使用iostat -d-x或sar -d选项;/proc/diskstats则是其他工具数据来源,也常用于监控
进程I/O大小以及I/O延迟pidstat,iotop注意使用pidstat -d选项
块设备I/O事件跟踪blktrace需要跟blkparse配合使用,比如blktrace -d /dev/sda -o- | blkparse -i-
进程I/O系统调用跟踪strace、perftracestrace只可以跟踪单个进程,而perf trace还可以跟踪所有进程的系统调用
进程块设备I/O大小跟踪biosnoop、biotop需要安装bcc
动态追踪ftrace、bcc、systemtapftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本>=4.1)

4. 网络性能工具

性能指标性能工具说明
吞吐量(BPS)sar、nethogs、iftop /proc/net/dev分别可以查看网络接口、进程以及IP地址的网络吞吐量; /proc/net/dev 常用于监控
吞吐量(PPS)sar、/proc/net/dev注意使用sar -n DEV选项
网络连接数netstat、ssss速度更快
网络错误数netstat、sar注意使用netstat -s或者sar -n EDEV/EIP选项
网络延迟ping、hping3ping基于ICMP,而hping3则基于TCP协议
连续跟踪数conntrack、/proc/sys/net/netfilter/nf_conntrack_count、 /proc/sys/net/netfilter/nf_conntrack_maxconntrack可用来查看所有连接跟踪的相信信息,nf_conntrack_count只是连接跟踪的数量,而nf_conntrack_max则限制了总的连接跟踪数量
路由mtr、traceroute、routeroute用于查询路由表,而mtr和traceroute则用来排查和定位网络链路中的路由问题
DNSdig、nslookup用于排查DNS解析的问题
防火墙和NATiptables用于排查防火墙及NAT的问题
网卡选项ethtool用于查看和配置网络接口的功能选项
网络抓包tcpdump、Wireshark通常在服务器中使用tcpdump抓包后再复制出来用Wireshark的图形界面分析
动态追踪ftrace、bcc、systemtapftrace用于跟踪内核函数调用栈,而bcc和systemtap则用于跟踪内核或应用程序的执行过程(注意bcc要求内核版本 >= 4.1)

三、根据指标找工具

1.根据指标找工具(CPU性能)

性能指标性能工具说明
平均负载uptime、topuptime最简单;top提供了更全的指标
系统整体CPU使用率vmstat、mpstat、top、sar、/proc/stattop、vmstat、mpstat只可以动态查看,而sar还可以记录历史数据 /proc/stat是其他性能工具的数据来源
进程CPU使用率top、pidstat、ps、htop、atoptop和ps可以按CPU使用给进程排序,而pidstat只显示实际用了CPU的进程;htop和atop以不同颜色显示更直观
系统上下文切换vmstat除了上下文切换次数,还提供运行状态和不可中断状态进程的数量
进程上下文切换pidstat注意加上-w选项
软中断top、mpstat、/proc/softirqstop提供软中断CPU使用率,而/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数
硬中断vmstat、/proc/interruptsvmstat提供总的中断次数,而/proc/interrupts 提供各种中断在每个CPU上运行的累积次数
网络dstat、sar、tcpdumpdstat和sar提供总的网络接收和发送情况,而tcpdump则是动态抓取正在进行的网络通讯
I/Odstat、sardstat和sar都提供了I/O的整体情况
CPU个数、proc、cpuinfo、IscpuIscpu更直观
时间剖析perf、execsnoopperf可以用来分析CPU的缓存以及内核调用链,execsnoop用来监控短时进程

2.根据指标找工具(内存性能)

性能指标性能工具
系统已用、可用,剩余内存free、vmstat、sar、/proc/meminfo
进程虚拟内存、常驻内存、共享内存ps、top
进程内存分布pmap
进程Swap换出内存top、/proc/pid/status
进程缺页异常ps、top
系统换页情况sar
缓存/缓冲区用量free、vmstat、sar、cachestat
缓存/缓冲区命中率cachetop
SWAP已用空间和剩余空间free、sar
Swap换入换出vmstat
内存泄露检测memleak、valgrind
指定文件的缓存大小pcstat

3.根据指标找工具(文件系统和磁盘I/O)

性能指标性能工具说明
文件系统空间容量,使用量以及剩余空间df详细文档见info coretils ‘df invocation’
索引节点容量、使用量以及剩余量df使用-i选项
页缓存和可回收Slab缓存/proc/meminfo、sar、vmstat使用sar -r选项
缓冲区/prac/meminfo、sar、vmstat使用sar -r选项
目录项、索引节点以及文件系统的缓存/proc/slabinfo、slabtopslabtop更直观
磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度iostat、sar、dstat使用iostat -d -X 或sar -d选项
进程I/O大小以及I/O延迟pidstat、iotop使用pidstat -d选项
块设备I/O事件跟踪blktrace示例:blktrace -d /dev/sda -0- | blkparse -i-
进程I/O系统调用跟踪strace通过系统调用跟踪进程的I/O
进程块设备I/O大小跟踪biosnoop、biotop需要安装bcc软件包

4.内存性能工具

性能指标性能工具说明
吞吐量(BPS)sar、nethogs、iftop分别可以查看网络接口、进程以及IP地址的网络吞吐量
PPSsar、/proc/net/dev查看网络接口的PPS
连接数netstat、SS查看网络连接数
延迟ping、hping3通过ICMP、TCP等测试网络延迟
连接跟踪数conntrack查看和管理连接跟踪状况
路由mtr、route、traceroute查看路由并测试链路信息
防火墙和NATiptables配置和管理防火墙及NAT规则
网卡功能ethtool查看和配置网络接口的功能
抓包tcpdump、Wireshark抓包分析网络流量
内核协议栈跟踪bcc、systemtap动态跟踪内核协议栈的行为
DNSdig、nslookup排查DNS解析问题

四、根据工具找指标

1.根据指标找工具(CPU性能)

性能工具CPU性能指标
uptime平均负载
top平均负载、运行队列、整体的CPU使用率以及每个进程的状态和CPU使用率
htoptop增强版,以不同颜色区分不同类型的进程,更直观
atopCPU、内存、磁盘和网络等各种资源的全面监控
vmstat系统整体的CPU使用率、上下文切换次数、中断次数,还包括处于运行和不可中断状态的进程数量
mpstat每个CPU的使用率和软中断次数
pidstat进程和线程的PU使用率、中断上下文切换次数
/proc/softirqs软中断类型和在每个CPU上的累积中断次数
/proc/interrupts硬中断类型和在每个CPU上的累积中断次数
ps每个进程的状态和CPU使用率
pstree进程的父子关系
dstat系统整体的CPU使用率
sar系统整体的CPU使用率,包括可配置的历史数据
strace进程的系统调用
perfCPU性能事件剖析,如调用链分析、CPU缓存、CPU调度等
execsnoop监控短时进程

2.根据工具查指标(网络性能)

性能工具主要功能
ifconfig、ip配置和查看网络接口
ss查看网络连接数
sar、/proc/net/dev/sys/class net/eth0/statistics查看网络接口的网络收发情况
nethogs查看进程的网络收发情况
iftop查看IP的网络收发情况
ethool查看和配置网络接口
conntrack查看和管理连接跟踪状况
nslookup、dig排查DNS解析问题
mtr、route、traceroute查看路由并测试链路信息
ping、hping3测试网络延迟
tcpdump网络抓包工具
Wireshark网络抓包和图形界面分析工具
iptables配置和管理防火墙及NAT规则
perf剖析内核协议栈的性能
systemtap、bcc动态追踪内核协议栈的行为

3.根据工具查指标(文件系统和磁盘I/O)

性能工具内存指标
iostat磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度
pidstat进程I/O大小以及I/O延迟
sar磁盘I/O使用率、IOPS、吞吐量以及响应时间
dstat磁盘I/O使用率、IOPS以及吞吐量
iotop按I/O大小对进程进行排序
slabtop目录项、索引节点以及文件系统的缓存
/proc/slabinfo目录项、索引节点以及文件系统的缓存
/proc/meminfo页缓存和可回收Slab缓存
/proc/diskstats磁盘的IOPS、吞吐量以及延迟
/proc/pid/io进程IOPS、I/O大小以及I/O延迟
vmstat缓存和缓冲区用量汇总
biktrace跟踪块设备I/O事件
biosnoop跟踪进程的块设备I/O大小
biotop跟踪进程块I/O并按I/O大小排序
strace跟踪进程的I/O系统调用
perf跟踪内核中的I/O事件
df磁盘空间和索引结点使用量和剩余量
mount文件系统的挂载路径以及挂载参数
du目录占用的磁盘空间大小
tune2fs显示和设置文件系统参数
hdparam显示和设置磁盘参数

4.根据工具查指标(内存性能)

性能工具说明
free、/proc/meminfo系统已用,可用、剩余内存以及缓存和缓冲区的使用量
top、ps进程虚拟、常驻、共享内存以及缺页异常
vmstat系统剩余内存、缓存、缓冲区、换入、换出
sar系统内存换页情况、内存使用率、缓存和缓冲区用量以及Swap使用情况
cachestat系统缓存和缓冲区的命中率
cachetop进程缓存和缓冲区的命中率
slaptop系统Slab缓存使用情况
/proc/pid/status进程Swap内存等
/proc/pid/smaps、pmap进程地址空间和内存状态
valgrind‘‘进程内存错误检查器,用来检测内存初始化、泄露、越界访问等各种内存错误’’
memleak内存泄露检测
pcstat查看指定文件的缓存情况

未完待续···

五、CPU性能分析一般步骤

六、内存性能分析一般步骤

七、网络性能分析一般步骤

八、I/O性能分析一般步骤

相关内容

热门资讯

黄瓜胶有什么好处 极速百科网 ... 黄瓜胶的好处有以下几点: 1、美白肌肤:黄瓜胶里面维生素C的含量非常多,能够有助于抑制黑色素的...
包公断案的歇后语,标题建议:《... 包公断案——铁面无私收到你的喜欢啦收到你的喜欢啦标题建议:《包公断案:公正无私,铁面无私的典范》包公...
硫离子的电子式怎么写,硫离子的... 硫离子的电子式为:S2-。硫是一种非金属元素,原子序数为16,在元素周期表中位于第三周期的VIA族。...
摇滚og是什么意思,摇滚OG指... 摇滚OG指的是元老级的摇滚歌手,是对这些歌手的肯定和赞扬。收到你的喜欢啦收到你的喜欢啦摇滚OG指的是...
用队列实现栈和用栈实现队列(C... 目录 一、用队列实现栈 二、 用栈实现队列 一、用队列实现栈 请你仅使用两个队列实现一个后入先出&...
代码随想录刷题-哈希表-两数之... 文章目录两数之和习题暴力解法哈希表 两数之和 本节对应代码随想录中:代码随想录...
凌恩生物明星产品:让你读懂细胞... 叶绿体和线粒体是真核细胞中不可或缺的重要细胞器,是第二套遗传信息系统,与...
密码如何“加盐加密”处理?程序... 目录 前言 一、手写加盐算法 1.1、加密 1.1.1、加密思路 1.1.2、加密简图 1.1.3、...
黑化什么意思网络用语 极速百科... 黑化,词语,也可指性情大变,比如原本某A是个文青,温文尔雅,突然某天某A大开杀戒,残忍无比,这就是所...
带有古和今的成语,古今的对话:... 带有古和今的成语有很多,例如:古为今用、古往今来、古稀之年、古今中外等等。这些成语都包含了古代和现代...
能力强的人有什么特点,标题建议... 能力强的人往往具备以下特点: 1. 学习能力:能力强的人通常能够快速学习新知识和技能,并能够灵...
跑步机怎么操作大图 极速百科网... 1. 启动跑步机:首先,确保跑步机已经插上电源,然后打开跑步机的电源开关。大多数跑步机都有一个启动/...
ELK+Filebeat+Ka... 文章目录ELK+Filebeat+Kafka分布式日志管理平台搭建为什么选择ELK&...
哈希结构的代码实现(开散列、闭... 哈希结构 unordered系列的关联式容器之所以查找效率比较高,是因为其底层使用了哈...
Java Annotation... 注解 注解(Annotation),又称元数据ÿ...
bim装配式工程师证书有用吗,... 首先,我们需要明确一点,那就是BIM装配式工程师证书肯定是有用的。这个证书证明了持有人掌握了BIM技...
什么东西可以深层清洁毛孔 极速... 首先,我们要明白,毛孔的深层清洁不仅仅是指清洁面部皮肤,还包括清洁身体和头发的毛孔。接下来,我将为你...
vip全称 极速百科网 极速百... VIP的英文全称为Very Important Person,中文翻译为重要人物、要员。一般指VIP...
公共交通工具有哪些 极速百科网... 1. 城市公交:这是大家最熟悉的公共交通工具之一,提供在城市内部的运输服务。公交车根据不同的大小和座...
智能火焰与烟雾检测系统(Pyt... 摘要:智能火焰与烟雾检测系统用于智能日常火灾检测报警,利用摄像头画面实时...
【学习笔记】《Writing ... 文章目录14 Energizing Writing 充满活力的写作14.1. ACTIVE VERS...
基于R语言因果关系推断模型实践... 通过数据得到可靠的因果关系一直是科学研究的主要目标之一。对因果关系的研究已经有千年之久;...
手机qq里怎么分组,手机QQ分... 1. 打开QQ应用,进入联系人界面。 2. 找到你想要分组的联系人或群聊。 3. 长按想...
带指的成语有哪些 极速百科网 ... 指日高升、一指蔽目、屈指可数、十指连心、三指佞臣、染指垂涎、戟指怒目、屈指可数。 如需更多含有...
第十八天 Vue-前端工程化总... 目录 Vue-前端工程化 1. 前后端分离开发 1.1 介绍 1.2 Yapi 2. 前端工程化 2...
急用钱公积金怎么提现,公积金提... 1. 了解公积金提现的条件和手续。在您考虑提现之前,请务必了解您所在地区的具体规定和要求。通常,您需...
杯子刻字励志八个字,志存高远,... 杯子刻字励志八个字建议如下: 1. 志存高远,自强不息。 2. 持之以恒,锐意进取。 ...
YOLOV4详解 1. 为什么要学习YOLOV4? 通过学习YOLOV3这个很重要的算法, 可以学习到作者重新设计Da...
提高曝光率:外贸网站如何充分利... 自从我从事外贸行业以来,谷歌优化一直是我关注的重点。 作为一个外贸从业者,...
Vue3 学习总结补充(一) 文章目录1、Vue3中为什么修改变量的值后,视图不更新?2、使用 ref...