Linux——性能调优工具一览

一、CPU

1.调优工具

根据指标找工具

性能指标工具说明

平均负载

uptime、top

uptime最简单、top提供了更全的指标

系统整体CPU使用率

vmstat、mpstat、top、sar、/proc/stat

top、vmstat、mpstat只可以动态查看,而sar还可以记录历史数据
/proc/stat是其他性能工具的数据来源

进程CPU使用率

top、pidstat、ps、htop、atop

top和ps可以按CPU使用率给进程排序,而pidstat只显示实际用了CPU的进程,htop和atop以不同颜色显示更为直观

系统上下文切换

vmstat

除了上下文切换此时,还提供运行状态和不可中断状态进程的数量

进程上下文切换

pidstat

注意加上-w选项

软中断

top、/proc/softirqs、mpstat

top提供软中断CPU使用率,而/proc/softirqs和mpstat提供了各种软中断在每个CPU上的运行次数

硬中断

vmstat、/proc/interrupts

vmstat提供总的中断次数,而/proc/interrupts提供各种中断在每个CPU上的运行的累积次数

网络

dstat、sar、tcpdump

dstat和sar提供总的网络接收和发送情况,而tcpdump则是动态抓取正在进行的网络通讯

I/O

dstat、sar

dstat和sar都提供了I/O的整体情况

CPU个数

/proc/cpuinfo、lscpu

lscpu更直观一些

事件剖析

perf、execsnoop

perf可以用来分析CPU的缓存以及内核调用链,execsnoop用来监控短时进程

根据工具查指标

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

2.CPU性能瓶颈

3.从不同的角度看待CPU调优

如何才能降低 CPU 使用率,提高 CPU 的并行处理能力,大体分析方向为两部分

应用程序

系统优化

编译器优化

 CPU绑定

算法优化CPU独占
异步处理优先级调整
多线程代替多进程为进程设置资源限制
善用缓存NUMA(Non-Uniform Memory Access)优化

                    中断负载均衡

 

二、磁盘

1.磁盘性能指标

使用率:指磁盘处理 I/O 的时间百分比
饱和度:指磁盘处理 I/O 的繁忙程度
IOPS:指每秒的 I/O 请求数
吞吐量:指每秒的 I/O 请求大小
响应时间:指 I/O 请求从发出到收到响应的间隔时间

2.调优工具

根据工具查指标

性能工具

文件系统和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缓存和缓冲区用量汇总
blktrace跟踪块设备I/O事件
biosnoop跟踪进程的块设备I/O大小
biotop   跟踪进程块I/O并按大小I/O大小排序
strace跟踪进程的I/O系统调用
perf跟踪内核中的I/O事件
df磁盘空间和索引节点使用量和剩余量
mount文件系统的挂载路径以及挂载参数
du目录占用的磁盘空间大小
tune2fs显示和设置文件系统参数
hdparm显示和设置磁盘参数

根据指标找工具

性能指标工具说明
文件系统空间容量、使用量以及剩余空间df查看文件系统的存储状态
索引节点容量、使用量以及剩余量df使用-i选项
页缓存和可回收Slab缓存/proc/meminfo、sar、vmstat使用sar -r选项
缓冲区/proc/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 -o- | blkparse -i-
进程I/O系统调用跟踪strace通过系统调用跟踪进程的I/O
进程块I/O系统调用跟踪biosnoop、biotop需要安装bcc软件包

iostat使用详解:iostat 命令详解_iostat命令详解参数-CSDN博客

三、网络

1.网络性能指标

带宽:表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)。

吞吐量,表示单位时间内成功传输的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽限制,而吞吐量 / 带宽,也就是该网络的使用率。

延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。在不同场景中,这一指标可能会有不同含义。比如,它可以表示,建立连接需要的时间(比如 TCP 握手延时),或一个数据包往返所需的时间(比如 RTT)。

PPS,是 Packet Per Second(包 / 秒)的缩写,表示以网络包为单位的传输速率。PPS 通常用来评估网络的转发能力,比如硬件交换机,通常可以达到线性转发(即 PPS 可以达到或者接近理论最大值)。而基于 Linux 服务器的转发,则容易受网络包大小的影响。

2.分析工具

通过sarifconfig命令查看Vastbase内节点网络使用情况,分析是否存在由于网络导致的性能瓶颈。

  • errors表示收包错误的总数量。
  • dropped表示数据包已经进入了Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃的总数量。
  • overruns表示Ring Buffer队列中被丢弃的报文数目,由于Ring Buffer(aka Driver Queue)传输的IO大于kernel能够处理的IO导致。

分析时,如果发现上述三个值持续增长,则表示网络负载过大或者存在网卡、内存等硬件故障。

3.详细排查

排查网络状态使用netstat -anp | grep命令

标记所在情况;
一个叫“redis-server”的进程,正在监听127.0.1:6379/0.0.0.:2222端口等等,“LISTEN”表示监听 PID:代表该进程的id 38464 

检查特定程序的网络链接情况 

查看端口 : 例如 5432端口我们看下

netstat -anp | grep 5432 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE引擎内置插件信息 储存的位置

.uproject。图标文件可以让UE 引擎内置插件,配置更改,比如我希望我的DataSmithImporter插件是启用的。

STM32 ADC采样详解

Content 0x00 前言0x01 ADC配置0x02 滤波处理 0x00 前言 在单片机开发过程中,常常涉及到ADC的使用,市面上大部分便宜的传感器都是采用的ADC来获取其数据,如MQ-2 烟雾传感器、光敏传感器等等。 此类传感器工作原理为根据所采集到的数据变化…

大模型入门 ch01:大模型概述

本文是github上的大模型教程LLMs-from-scratch的学习笔记,教程地址:教程链接 STAGE 1: BUILDING 1. 数据准备与采样 LLM的预测过程,是一个不断预测下一个词(准确的说是token)的过程,每次根据输…

【C++八股题整理】内存布局、堆和栈、内存泄露、函数调用栈

C八股题整理 内存布局C中的内存分配情况堆和栈的内存有什么区别? 堆堆内存分配慢如何优化?内存池内存溢出和内存泄漏是什么?如何避免?内存碎片是什么?怎么解决? 栈为什么栈的访问效率比堆高?函数…

UI自动化测试 —— web端元素获取元素等待实践!

前言 Web UI自动化测试是一种软件测试方法,通过模拟用户行为,自动执行Web界面的各种操作,并验证操作结果是否符合预期,从而提高测试效率和准确性。 目的: 确保Web应用程序的界面在不同环境(如不同浏览器、操作系统)下…

【前缀和算法】--- 进阶题目赏析

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 本篇我们来赏析前缀和算法的进阶题目。 🏠 和可被K整除的子数组 📌 题目解析 和可被k整除的子数组 📌 …

记一次ssh伪终端修改为shell

问题 用户ssh进行连接后,默认为伪终端。 解决办法,可以先拿到终端shell,查看用户是否为/bin/bash: 不是/bin/bash,使用如下命令进行修改: chsh -s /bin/bash rootservice sshd restart

量化投资策略与技术学习PART1.1:量化选股之再谈多因子模型(二)

在上一个多因子模型中,我手动对各个因子进行了回测,但是数据结果并不是十分理想,难道基本面指标真的和股票走势关系不大么? 这里我还是准备再测试一下,策略如下: (1)首先我获取了一下…

codeforces Round 970 (Div. 3)(A-F)

文章目录 [Codeforces Round 970 (Div. 3)](https://codeforces.com/contest/2008)A-[Sakurakos Exam](https://codeforces.com/contest/2008/problem/A)B-[Square or Not](https://codeforces.com/contest/2008/problem/B)C-[Longest Good Array](https://codeforces.com/cont…

Ubuntu上安装配置(jdk/tomcat/ufw防火墙/mysql)+mysql卸载

jdk安装 1.上传jdk压缩包 详情: 下载rz服务(lrzsz):sudo apt install lrzsz(在主用户root就不用sudo)下载压缩包:rz 2.解压jdk压缩包 : 详情: 在压缩包所在位置(解压压缩使用看Li…

测试人如何高效地设计自动化测试框架?

关于测试框架的好处,比如快速回归提高测试效率,提高测试覆盖率等这里就不讨论了。这里主要讨论自动化框架包含哪些内容,以及如何去设计一个测试框架。 什么是自动化测试框架? 它是由一个或多个自动化测试基础模块、自动化测试管…

Qt22双缓冲机制

Qt22双缓冲机制 知识点drawwidgetdrawwidget.hdrawwidget.cpp mainwindowmainwindow.hmainwindow.cpp main.cpp运行图 知识点 双缓冲就是在内存区申请一块缓存;然后显卡直接从这块内存读取数据.。 这样就不用鼠标边画,经过IO来读取这个环节;…

EasyExcel实现复杂Excel的导入

最近项目中遇到一个复杂的Excel的导入,并且数据量较大。因为数据不规则,所以只能使用POI进行自定义读取,但是发现数据量大之后,读取数据非常耗时。后面换成EasyExcel,性能起飞。 1. Excel样板 如上图,需要…

【C++】汇编分析,函数是如何调用,传参,返回

传参 有的是用寄存器传参,有的用push传参 我在MSVC编译测出来的是PUSH传参(debug模式),具体过程如下 long func(long a, long b, long c, long d,long e, long f, long g, long h) {long sum;sum (a b c d e f g h);ret…

VMware安装windows虚拟机详细过程

目录 准备工作配置虚拟机为虚拟机设置操作系统镜像安装windows10 准备工作 安装好VMware软件并激活,激活码自行查找 准备好系统镜像文件,可以在MSDN中下载,地址:https://next.itellyou.cn/ 配置虚拟机 选择自定义 默认 选择稍后…

骨灵冷火!Solon Cloud Gateway 照面发布

骨灵冷火,是练药的好火哟。极冷,又极热。在冰冻中被烧死:) 1、认识 Solon Cloud Gateway Solon Cloud Gateway 是基于 Solon Cloud、Vert.X 和 Solon Rx(reactive-streams) 接口实现。小特点: 纯响应式的接口体验流…

[Linux]:基本指令(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 与Windows环境不同,我们在linux环境下需要通过指令进行各操作&…

13.DataLoader 的使用

DataLoader 的使用 dataset:告诉程序中数据集的位置,数据集中索引,数据集中有多少数据(想象成一叠扑克牌)dataloader:加载器,将数据加载到神经网络中,每次从dataset中取数据&#x…

Zynq7000系列FPGA中的DDRC纠错码(ECC)

仅在半总线宽度(16位)数据宽度配置中提供可选的ECC支持。这种配置下,外部DRAM DDR设备需要26位,其中16位用于数据,10位用于ECC。每个数据字节使用独立的5位ECC字段,这种模式提供了单错误纠正和双错误检测的…

UE5蓝图 抽卡出货概率

SSR概率0.1 SR概率0.2 R概率0.7 ps:数组内相加为1。且从小到大排序。