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 

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值