iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux性能分析工具有哪些
  • 705
分享到

Linux性能分析工具有哪些

2023-06-15 13:06:16 705人浏览 泡泡鱼
摘要

linux性能分析工具有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知

linux性能分析工具有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。

性能分析工具

首先来看一张图:

Linux性能分析工具有哪些

上图是Brendan Gregg 的一次性能分析的分享,这里面的所有工具都可以通过man来获得它的帮助文档,下问简单介绍介绍一下常规的用法:

vmstat--虚拟内存统计

vmstat(VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。

vmstat的常规用法:vmstat interval times即每隔interval秒采样一次,共采样times次,如果省略times,则一直采集数据,直到用户手动停止为止。简单举个例子:

Linux性能分析工具有哪些

可以使用ctrl+c停止vmstat采集数据。

第一行显示了系统自启动以来的平均值,第二行开始显示现在正在发生的情况,接下来的行会显示每5秒间隔发生了什么,每一列的含义在头部,如下所示:

  •  procs:r这一列显示了多少进程在等待cpu,b列显示多少进程正在不可中断的休眠(等待io)。

  •  memory:swapd列显示了多少块被换出了磁盘(页面交换),剩下的列显示了多少块是空闲的(未被使用),多少块正在被用作缓冲区,以及多少正在被用作操作系统的缓存

  •  swap:显示交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。

  •  io:显示了多少块从块设备读取(bi)和写出(bo),通常反映了硬盘I/O。

  •  system:显示每秒中断(in)和上下文切换(cs)的数量。

  •  cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO。

内存不足的表现:free  memory急剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa)

iOStat--用于报告中央处理器统计信息

iostat用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息,默认显示了与vmstat相同的cpu使用信息,使用以下命令显示扩展的设备统计:

Linux性能分析工具有哪些

第一行显示的是自系统启动以来的平均值,然后显示增量的平均值,每个设备一行。

常见linux的磁盘IO指标的缩写习惯:rq是request,r是read,w是write,qu是queue,sz是size,a是verage,tm是time,svc是service。

  •  rrqm/s和wrqm/s:每秒合并的读和写请求,“合并的”意味着操作系统从队列中拿出多个逻辑请求合并为一个请求到实际磁盘。

  •  r/s和w/s:每秒发送到设备的读和写请求数。

  •  rsec/s和wsec/s:每秒读和写的扇区数。

  •  avgrq –sz:请求的扇区数。

  •  avgqu –sz:在设备队列中等待的请求数。

  •  await:每个IO请求花费的时间。

  •  svctm:实际请求(服务)时间。

  •  %util:至少有一个活跃请求所占时间的百分比。

dstat--系统监控工具

dstat显示了cpu使用情况,磁盘io情况,网络发包情况和换页情况,输出是彩色的,可读性较强,相对于vmstat和iostat的输入更加详细且较为直观。在使用时,直接输入命令即可,当然也可以使用特定参数。

如下:dstat –cdlmnpsy

Linux性能分析工具有哪些

iotop--LINUX进程实时监控工具

iotop命令是专门显示硬盘IO的命令,界面风格类似top命令,可以显示IO负载具体是由哪个进程产生的。是一个用来监视磁盘I/O使用状况的top类工具,具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。

可以以非交互的方式使用:

iotop –bod interval,查看每个进程的I/O,可以使用pidstat,pidstat –d instat

pidstat--监控系统资源情况

pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。

使用方法:

pidstat –d interval  #统计CPU使用信息  pidstat –u interval  #统计内存信息  Pidstat –r interval

top

top命令的汇总区域显示了五个方面的系统性能信息:

  •  负载:时间,登陆用户数,系统平均负载;

  •  进程:运行,睡眠,停止,僵尸;

  •  cpu:用户态,核心态,NICE,空闲,等待IO,中断等;

  •  内存:总量,已用,空闲(系统角度),缓冲,缓存;

  •  交换分区:总量,已用,空闲

任务区域默认显示:进程ID,有效用户,进程优先级,NICE值,进程使用的虚拟内存,物理内存和共享内存,进程状态,CPU占用率,内存占用率,累计CPU时间,进程命令行信息。

htop

htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。

Linux性能分析工具有哪些

Htop可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点:

  •  可以横向或者纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。

  •  在启动上,比top更快。

  •  杀进程时不需要输入进程号。

  •  htop支持鼠标操作。

mpstat

mpstat 是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。常见用法:

mpstat –P ALL interval times

netstat

Netstat用于显示与IP、tcp、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

常见用法:

netstat –npl   #可以查看你要打开的端口是否已经打开。  netstat –rn    #打印路由表信息。  netstat –in    #提供系统上的接口信息,打印每个接口的MTU,输入分组数,输入错误,输出分组数,输出错误,冲突以及当前的输出队列的长度。

ps--显示当前进程的状态

ps参数太多,具体使用方法可以参考man ps,

常用的方法:

ps  aux  #hsserver  ps –ef |grep #hundsun  #杀掉某一程序的方法  ps  aux | grep mysqld | grep –v grep | awk ‘{print $2 }’ xargs kill -9  #杀掉僵尸进程  ps –eal | awk ‘{if ($2 == “Z”){print $4}}’ | xargs kill -9

strace

跟踪程序执行过程中产生的系统调用及接收到的信号,帮助分析程序或命令执行中遇到的异常情况。

举例:查看Mysqld在linux上加载哪种配置文件,可以通过运行下面的命令:

strace –e stat64 mysqld –print –defaults > /dev/null

uptime

能够打印系统总共运行了多长时间和系统的平均负载,uptime命令最后输出的三个数字的含义分别是1分钟,5分钟,15分钟内系统的平均负荷。

lsof

lsof(list open files)是一个列出当前系统打开文件的工具。通过lsof工具能够查看这个列表对系统检测及排错,常见的用法:

#查看文件系统阻塞    lsof /boot  #查看端口号被哪个进程占用    lsof  -i : 3306  #查看用户打开哪些文件     lsof –u username  #查看进程打开哪些文件     lsof –p  4838  #查看远程已打开的网络链接    lsof –i @192.168.34.128

perf

perf是Linux kernel自带的系统性能优化工具。优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature,用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。

性能调优工具如 perf,Oprofile 等的基本原理都是对被监测对象进行采样,最简单的情形是根据 tick 中断进行采样,即在 tick 中断内触发采样点,在采样点里判断程序当时的上下文。假如一个程序 90% 的时间都花费在函数 foo() 上,那么 90% 的采样点都应该落在函数 foo() 的上下文中。运气不可捉摸,但我想只要采样频率足够高,采样时间足够长,那么以上推论就比较可靠。因此,通过 tick 触发采样,我们便可以了解程序中哪些地方最耗时间,从而重点分析。

汇总:结合以上常用的性能测试命令并联系文初的性能分析工具的图,就可以初步了解到性能分析过程中哪个方面的性能使用哪方面的工具(命令)。

常用的性能测试工具

熟练并精通了第二部分的性能分析命令工具,引入几个性能测试的工具,介绍之前先简单了解几个性能测试工具:

perf_events

一款随 Linux 内核代码一同发布和维护的性能诊断工具,由内核社区维护和发展。Perf 不仅可以用于应用程序的性能统计分析,也可以应用于内核代码的性能统计和分析。

eBPF tools

一款使用bcc进行的性能追踪的工具,eBPF map可以使用定制的eBPF程序被广泛应用于内核调优方面,也可以读取用户级的异步代码。重要的是这个外部的数据可以在用户空间管理。这个k-v格式的map数据体是通过在用户空间调用bpf系统调用创建、添加、删除等操作管理的。

perf-tools:

一款基于 perf_events (perf) 和 ftrace 的Linux性能分析调优工具集。Perf-Tools 依赖库少,使用简单。支持Linux 3.2 及以上内核版本。

bcc(BPF Compiler Collection)

一款使用eBPF的perf性能分析工具。一个用于创建高效的内核跟踪和操作程序的工具包,包括几个有用的工具和示例。利用扩展的BPF(伯克利数据包过滤器),正式称为eBPF,一个新的功能,首先被添加到Linux 3.15。多用途需要Linux 4.1以上BCC。

ktap

一种新型的linux脚本动态性能跟踪工具。允许用户跟踪Linux内核动态。ktap是设计给具有互操作性,允许用户调整操作的见解,排除故障和延长内核和应用程序。它类似于Linux和Solaris DTrace SystemTap。

Flame Graphs

是一款使用perf,system tap,ktap可视化的图形软件,允许最频繁的代码路径快速准确地识别,可以是使用GitHub.com/brendangregg/flamegraph中的开发源代码的程序生成。

Linux observability tools | Linux 性能观测工具

Linux性能分析工具有哪些

首先学习的Basic Tool有如下:

uptime、top(htop)、mpstat、isstat、vmstat、free、ping、nicstat、dstat。

高级的命令如下:

sar、netstat、pidstat、strace、tcpdump、blktrace、iotop、slabtop、sysctl、/proc。

Linux benchmarking tools | Linux 性能测评工具

Linux性能分析工具有哪些

是一款性能测评工具,对于不同模块的性能测试可以使用相应的工具,想要深入了解,可以参考最下文的附件文档。

Linux tuning tools | Linux 性能调优工具

Linux性能分析工具有哪些

是一款性能调优工具,主要是从linux内核源码层进行的调优,想要深入了解,可以参考下文附件文档。

Linux observability sar | linux性能观测工具

Linux性能分析工具有哪些

sar(System Activity Reporter系统活动情况报告)是目前LINUX上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等方面。

sar的常归使用方式:

sar  [options] [-A] [-o file]  t [n]

其中:

t         #为采样间隔,n为采样次数,默认值是1;  -o file   #表示将命令结果以二进制格式存放在文件中,file 是文件名。  options   #为命令行选项

看完上述内容,你们掌握Linux性能分析工具有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网操作系统频道,感谢各位的阅读!

--结束END--

本文标题: Linux性能分析工具有哪些

本文链接: https://www.lsjlt.com/news/280413.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux性能分析工具有哪些
    Linux性能分析工具有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知...
    99+
    2023-06-15
  • Java中有哪些性能分析工具
    今天就跟大家聊聊有关Java中有哪些性能分析工具,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VisualVMVisualVM是一个资源分析工具,一直从JDK 6更新到7。它默认内存...
    99+
    2023-06-17
  • 常用的Android性能分析工具有哪些
    常用的Android性能分析工具有以下几种: Android Studio Profiler:Android Studio自带的...
    99+
    2023-10-23
    Android
  • PHP 函数的性能分析工具有哪些?
    php 函数性能分析工具有助于识别瓶颈并改进代码。本文介绍了 xhprof(采样剖析)、tideways(商业平台)和 blackfire.io(saas 服务);实战案例展示了使用 x...
    99+
    2024-04-18
    php 性能分析工具
  • Linux性能监控工具有哪些
    这篇文章主要为大家展示了“Linux性能监控工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux性能监控工具有哪些”这篇文章吧。一、基于命令行的性能监控工具1.dstat - 多类...
    99+
    2023-06-16
  • linux性能查看工具有哪些
    常见的linux性能查看工具有:1.vmstat,虚拟内存统计工具;2.iostat,中央处理器统计工具;3.dstat,系统监控工具;3.pidstat,系统资源监控工具;5.Saidar,CLI系统数据监控和统计工具;6.netstat...
    99+
    2024-04-02
  • linux性能监控工具有哪些呢
    这期内容当中小编将会给大家带来有关linux性能监控工具有哪些呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.uptime该命令直观的显示了服务器在过去15分钟,5分钟,1分钟内的平均负载vmstat...
    99+
    2023-06-13
  • 分析 C++ 函数性能的常用工具有哪些?
    c++++ 函数性能分析工具汇总:gprof:分析函数调用图、运行时间和调用频率。valgrind:检测内存错误和性能问题,分析函数调用、内存分配和缓存命中率。perf:收集和分析性能数...
    99+
    2024-04-18
    c++ 性能分析 linux
  • java分析工具有哪些
    java的分析工具有:1.VisualVM,java应用程序性能分析和运行监控工具;2.YourKit,java性能分析工具;3.Jetm,java程序执行时间测量工具;4.Arthas,java诊断工具;java的分析工具有以下几种Vis...
    99+
    2024-04-02
  • linux网络抓包分析工具有哪些
    常见的linux网络抓包分析工具有:1.TcpDump,网络数据采集分析工具;2.Netstat,监控TCP/IP网络的工具;常见的linux网络抓包分析工具有以下两种TcpDumpTcpDump是一个网络数据采集分析工具,使用TcpDum...
    99+
    2024-04-02
  • Linux系统日志分析工具有哪些
    这篇文章将为大家详细讲解有关Linux系统日志分析工具有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。日志文件是非常重要的系统文件,记录了非常重要的系统事件,包括用户的登录信息、系统的启...
    99+
    2023-06-28
  • linux服务器性能测试工具有哪些
    1. Sysbench:一个多线程的基准测试工具,可以测试CPU、内存、IO等性能指标。2. IOzone:一个广泛使用的文件系统和...
    99+
    2023-06-08
    服务器性能测试工具 服务器
  • 常用的Linux性能监测工具有哪些
    今天小编给大家分享一下常用的Linux性能监测工具有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. uptime$&...
    99+
    2023-06-27
  • Linux下常用系统分析工具有哪些
    这篇文章给大家分享的是有关Linux下常用系统分析工具有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.CPU对于cpu我们主要介绍top,strace,perf,vmstat。1.1 toptop命令可以...
    99+
    2023-06-16
  • linux性能分析工具dstat是怎样的
    本篇文章给大家分享的是有关linux性能分析工具dstat是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。linux性能分析图表dsta...
    99+
    2024-04-02
  • 有哪些React性能优化工具
    这篇文章主要讲解了“有哪些React性能优化工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些React性能优化工具”吧! Profiler...
    99+
    2024-04-02
  • Linux磁盘分区工具有哪些
    这篇文章主要讲解了“Linux磁盘分区工具有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux磁盘分区工具有哪些”吧!Linux 中的 5 个管理磁盘分区的工具下面的列表没有特定的...
    99+
    2023-06-28
  • CentOS Linux下有哪些分区工具
    这篇文章给大家分享的是有关CentOS Linux下有哪些分区工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、硬盘的接口类型分区肯定是对硬盘进行分区,那么先来聊一聊硬盘的接口类型,硬盘就现在来分,分为两类,...
    99+
    2023-06-10
  • Linux各类性能分析工具用法详解
    文章目录 静态性能分析工具文件系统观测工具虚拟文件系统(VFS)分析工具磁盘管理工具进程资源占用监测系统库调用分析工具网络配置防火墙配置多路径配置进程调度系统命令操作查看硬件信息磁盘管理网络端...
    99+
    2023-09-02
    linux 运维 性能优化 自动化 监测
  • Linux常用性能分析命令有哪些
    这篇文章主要介绍了Linux常用性能分析命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。性能分析vmstat虚拟内存统计用法Usage:  vms...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作