Linux——性能调优工具一览

news2024/12/23 21:05:16

一、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.coloradmin.cn/o/2083711.html

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

相关文章

界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合

Telerik UI for ASP.NET Core是用于跨平台响应式Web和云开发的最完整的UI工具集,拥有超过60个由Kendo UI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格,提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。 本文将介绍界面组件Teler…

【MySQL 11】索引 (带思维导图)

文章目录 🌈 一、索引介绍⭐ 1. 索引的概念⭐ 2. 索引的分类⭐ 3. 索引的价值 🌈 二、认识磁盘⭐ 1. MySQL 与存储⭐ 2. 磁盘的物理结构⭐ 3. 磁盘的随机访问与连续访问 🌈 三、MySQL 与磁盘交互⭐ 1. MySQL 与磁盘交互的基本单位⭐ 2. MySQL…

一文深度了解堆

什么是堆? 堆(Heap)是一种基于数组的树形数据结构,其中每个节点都有一个值,且每个节点的值都大于等于(或小于等于)其子节点的值。堆分为大顶堆(Max Heap)和小顶堆&#…

回答网友一个C#对话框位置的问题

起因 ‭ 2024-08-28 19:40:20 colorDialog 打开出现的 位置控制不了 鸽子 2024-08-28 20:06:06 你是可以控制的 ‭ 0:00:47 试了下没用,可能是系统 问题吧 代码 位置的设置 SetWindowPos(hWnd, IntPtr.Zero, 0, 0, 0, 0, 1); 核心代码 protected override IntPt…

django学习入门系列之第十点《django的模板语法》

文章目录 获取请求与响应request获取请求方式在url中传递值在结构体中传递值返回一个值读取HTML中的内容 重定向(跳转网页)往期回顾 获取请求与响应 request request是一个对象,封装了用户通过浏览器发送过来的所有数据获取请求方式 获取请…

Ai产品经理的探索:技能、机遇与未来展望

Ai时代的产品经理 随着人工智能(AI)的飞速发展,AI已经从一个前沿技术概念逐步演变为驱动各行业创新的核心力量。从智能助手到自动驾驶,从个性化推荐系统到图像识别,AI正在以不可思议的速度改变着我们的生活方式和工作…

python解释器[源代码层面]

1 PyDictObject 在c中STL中的map是基于 RB-tree平衡二元树实现,搜索的时间复杂度为O(log2n) Python中PyDictObject是基于散列表(散列函数)实现,搜索时间最优为O(1) 1.1 散列列表 问题:散列冲突:多个元素计算得到相同的哈希值 …

华为IS-IS实验及配置

AR1配置 #进入ISIS进程 isis 1 #配置设备类型为Level-1is-level level-1 #定义区域和System-ID等信息network-entity 49.0001.0010.0000.0001.00 #ISIS邻居命名is-name AR1 #接口配置IP和启用ISIS interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 isis ena…

【C++】C++ STL 探索:String的使用与理解

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶 这篇文章将带大家深入探讨C STL中的string使用与理解。在接下来的几篇文章中,我们将介绍…

WT2605C蓝牙语音芯片:引领糖尿病管理智能化,优化血糖仪音频与蓝牙传输方案

开发背景 全球糖尿病成人患者数量截至2021年约为5.37亿,并预计到2045年将增长至7.83亿。患病率不仅随年龄增长,还展现出明显的地域差异,例如巴基斯坦的患病率最高。此外,老年人群和某些特定地区的居民面临更高的糖尿病风险。 语音…

Leetcode 22. 括号生成 回溯 C++实现

Leetcode 22.括号生成 问题:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。 算法: 创建返回数组 ans ,和临时变量 path 。 当左括号数量 open 小于应填括号数 n 时&#…

【Python机器学习】NLP词中的数学——主题建模

目录 齐普夫定律 相关度排序 工具 其他工具 Okapi BM25 在文档向量中,词计数是有用的,但是纯词计数,即使按照文档长度进行归一化处理,也不能告诉我们太多该词在当前文档相对于语料库中其他文档的重要度信息。如果能弄清楚这些…

carla unreal engine源码:如何创建radar可视化探测锥

文章目录 前言一、C实现方法1、DrawDebugCone函数2、carla工程修改3、make launch4、探测锥验证 二、蓝图实现方法1、创建并打开蓝图2、打开蓝图事件图表3、绘制蓝图事件4、编译再运行 前言 1、在自动驾驶仿真调试以及测试过程中,我们经常会用到雷达的探测锥&#…

SkyWalking部署(监控系统)

简介 SkyWalking 是一个开源的应用性能监控 (APM) 和可观测性平台,旨在帮助开发者、运维人员和架构师监控、诊断和优化微服务架构中的应用。SkyWalking 提供了一套完整的工具链,用于收集、分析和可视化应用的性能指标、追踪和日志数据。 SkyWalking 的…

wpf prism 《2》、导航

》》》主程序 using Prism.Commands; using Prism.Mvvm; using Prism.Navigation; using Prism.Navigation.Regions; using System;namespace BlankApp2.ViewModels {public class MainViewModel : BindableBase{private string _title "Prism Application";public…

数据结构《排序》

在之前数据结构之算法复杂度章节中我们学习了复杂度相关的概念,这就使得懂得如何来区分算法的好坏,在之前C语言专题中在指针的学习时我们了解了冒泡排序,之后再数据结构的二叉树章节中我们又学习了堆排序,其实排序不止这两种&…

搜剧平台源码 可一键转存他人链接

简介 1、一键转存他人链接:就是将别人的分享链接转为你自己的 2、转存心悦搜剧资源:就是将心悦搜剧平台上的所有资源都转成你自己的 3、每日自动更新:自动转存每天的资源并入库 前端uin-app,后端PHP,兼容微信小程序…

基于vue框架的博物馆预约网站的设计与实现8k352(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,类别,博物馆,预约信息,馆藏精品 开题报告内容 基于Vue框架的博物馆预约网站的设计与实现开题报告 一、开题报告名称 基于Vue框架的博物馆预约网站的设计与实现 二、研究背景与意义 随着信息技术的飞速发展和人们生活水平的日益…

QT5.14.2编译有界面的DLL供C#Winform程序调用步骤

目标:公司要设计一套软键盘程序给到WinForm程序调用、因此需要封装QT的软键盘程序给到C#调用,跟C#调用MFC的DLL代码差不多,感觉就是封装了一下QT的代码成为MFC格式的。 步骤:1、新建QT对应的库项目、编译器使用MSVC2017 64位、编…

Apache RocketMQ 中文社区全新升级丨阿里云云原生 7 月产品月报

云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 趋势热点 🥇 通义灵码入选 2024 世界人工智能大会最高荣誉「镇…