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.rhkb.cn/news/414192.html

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

相关文章

【知识图谱】4、LLM大模型结合neo4j图数据库实现AI问答的功能

昨天写了一篇文章,使用fastapi直接操作neo4j图数据库插入数据的例子, 本文实现LLM大模型结合neo4j图数据库实现AI问答功能。 废话不多说,先上代码 import gradio as gr from fastapi import FastAPI, HTTPException, Request from pydantic…

HarmonyOS开发实战( Beta5版)耗时分析器Time Profiler实践指导

DevEco Studio集成的DevEco Profiler性能调优工具(以下简称为Profiler),提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。开发应用或服务过程中,如果遇到卡顿、加载耗时等性能问题,开发者通常会关注相关函数…

机器学习周报(8.26-9.1)

文章目录 摘要Abstractself-attetionQKV理解如何让self-attention更有效local attention/truncated attention方法stride attention方法Global Attention方法data driving方法Clusteringsinkhorn sorting network选取representative keys减少Keys数量的方法self-attentionSynth…

jQuery库

注明&#xff1a;本文参考自&#xff1a;jQuery - 白月黑羽 (byhy.net) jQuery安装 Download jQuery | jQuery下载到本地 ps: script标签中的src属性&#xff1a;表示包含要执行的代码的外部文件位置 <!DOCTYPE html> <html lang"en"><head><s…

让自家的智能语音助手实现todo任务的添加

我家的树莓派在成为了“智能语音助手”后&#xff0c;经过rasa学习训练&#xff0c;已经可以帮忙查日期/时间&#xff0c;查天气预报&#xff0c;进行一些简单的闲聊。但是&#xff0c;我希望它的功能还可以再强大些&#xff0c;比如说&#xff0c;可以帮我记录todo任务。为了实…

当网络适配器的Wireless出现感叹号

1.出现如下情况 链接&#xff1a; &#xff1a;一招搞定Intel(R) Wireless-AC 9560显示感叹号&#xff0c;无法打开wifi模块&#xff01;_intel(r)wireless-ac9560感叹号-CSDN博客z 重点&#xff1a; 原因是因为电脑静电的问题。

生产es所有节点全部掉线 排查

生产es所有节点全部掉线 查看message日志发现 内存溢出 修改jvm的改小 清理buff/cache sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches 把es内存的…

Bean 的生命周期

什么是Bean的生命周期 Bean 的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程&#xff0c;Bean 对象从创建到销毁中经历了哪些过程 什么时候创建Bean对象&#xff1f;创建Bean对象的前后会调用什么方法&#xff1f;Bean对象什么时候销毁&#xff1f;Bean对象的销…

13-springcloud gateway集成nacos实现负载均衡

网关作为访问系统的入口&#xff0c;负载均衡是必选项而不是可选项&#xff0c;本文介绍gateway与nacos集成&#xff0c;实现负载均衡的过程。关于springcloud gateway的基本用法&#xff0c;同学可以看看上篇文章: 12-使用gateway作为网关。 0、环境 jdk&#xff1a;1.8spri…

idea插件开发的第一天-写一个小Demo

介绍 Demo说明 本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8本文在Tools插件之上进行开发 Tools插件说明 Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了idea插件的开发难度,并提供开发者模块,可以极大的为开发者开发此插件提供便利Tools插件安装需…

LLM系列 | 36:Google最新开源大模型:Gemma 2介绍及其微调(下篇)

引言 环境安装 数据准备 下载 处理 模型训练 模型inference 结果 gemma-2-9b gemma-2-9b-it 引言 低头观落日&#xff0c;引手摘飞星。 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖黑神话的小女孩。本文紧接前文Google最新开源大…

栈和队列——用队列实现栈

题目中给出&#xff0c;让我们应用两个队列实现栈&#xff0c;首先我们先来想一下&#xff0c;栈是先进后出&#xff0c;队列是先进先出。所以我们就需要应用两个队列来回导才能实现栈的特点。因为这道题是基于队列来实现的&#xff0c;所以在下方若有看不懂的函数名称可以去栈…

【indirect 函数 ★二级下拉菜单】

Indirect 函数 &#x1f33c;indirect函数参数&#x1f33c;应用&#xff1a;&#x1f33c;跨表引用同一单元格&#x1f33c;二级下拉列表 &#x1f33c;indirect函数参数 返回⬅️【文本字符串所指定的引用】 INDIRECT(ref_text,[a1]) 其中【ref_text】是引用的文本 [a1] 是…

网络安全实训六(靶机实例DC-3)

1 信息收集 1.1 获取靶机IP 1.2 扫描靶机网站的目录 1.3 扫描端口和服务器信息 1.4 进入网站 1.5 在msf中给搜索joomla扫描器 1.6 设置参数查看joomla版本信息 1.7 按照版本号搜索漏洞 1.8 查看漏洞使用 2 渗透 2.1 查看是否存在SQL注入 2.2 获取到数据库信息 2.3 爆破列表 2…

盘点java8 stream中隐藏的函数式接口

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 提到函数式接口&#xff0c;最常见的就是lambda表达式&#xff0c;IDEA也有智能的提示&#xff1a; 最后改成这样的就是最简洁的、IDEA希望的风格&#…

【我要成为配环境高手】Visual Studio中Qt安装与配置(无伤速通)

1.下载安装Qt和VSIX插件 2.本地环境变量配置 添加如下&#xff1a; D:\ProgramData\Qt\Qt5.14.2\5.14.2\msvc2017_64\libD:\ProgramData\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin3.VS配置 ⭐项目右键->属性->调试->环境&#xff0c;添加如下&#xff1a;(很重要&#x…

随笔十、音频扩展模块测试

本项测试简单&#xff0c;对购买的音频扩展模块进行录音放音测试 按照使用说明&#xff0c;连接音频小板&#xff0c;一个喇叭一个麦克风&#xff0c;4根线&#xff0c;buildroot系统镜像 录音测试 rootRK356X:/# arecord -c 1 -r 44100 -f S16_LE /tmp/record.wav Recording …

【面试五】PID控制算法

一、 PID算法简介 PID&#xff08;Proportional-Integral-Derivative&#xff09;控制算法是一种经典的反馈控制方法&#xff0c;广泛应用于自动控制系统&#xff0c;例如温度控制、速度控制、位置控制等。 PID控制算法的核心包含三个部分&#xff1a;比例项&#xff08;P&…

Linux基础(包括centos7安装、linux基础命令、vi编辑器)

一、安装CentOS7 需要&#xff1a;1、VMware Workstation&#xff1b;2、CentOS7镜像 1、安装镜像 2、虚拟机配置 开启虚拟机&#xff0c;鼠标从vm中移出来用快捷键ctrlalt 点击开始安装&#xff0c;设置密码&#xff0c;等待安装完成,&#xff0c;重启。 3、注意事项 如果没…

CAN总线简介

CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO国际标准化的串行通信协议。 历史背景 CAN 最初出现在80年代末的汽车工业中&#xff0c;由德国 Bosch 公司最先提出。当时&#xff0c;由于消费者对于汽车功能的要求越来越多&a…