linuxcpu测试命令_linux压力测试软件

linuxcpu测试命令_linux压力测试软件linux系统分析之工具大全(观测,性能分析等)修订记录2023/03/23 增加并细化pidstat指令2023/06/13 细化blktrace(实在是分析io的利器)2023/06/14 新增”

linux系统分析之工具大全(观测,性能分析等)   修订记录   2023/03/23 增加并细化pidstat指令2023/06/13 细化blktrace(实在是分析io的利器)2023/06/14 新增”分析问题前60秒你使用的分析手段”小节   前言   工欲善其事必先利其器,要想分析清楚linux服务器中的各类问题,比如性能问题,服务程序的bug,那么必须对该系统下的分析工具有一定的了解,本文对当前的主流cpu,内存,网络,io以及各种debug分析工具(blktrace,perf,systemtap)做了个简单总结。   注:学无止境,故需持续更新   性能分析工具   
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件linux性能分析工具   总观   分析问题前60秒做的事情   分析问题,首先需要对全局有个大致了解,文章分析问题的前60秒应该做的事情 就展示了我们最开始该使用的一些分析手段,总结一下,就是以下几步:   top   最常规的大盘工具了,展示进程以及系统全局的cpu,内存等信息   atop   atop除了有非常全的大盘信息(cpu,内存,磁盘,网络),还能实时展示进程cpu,磁盘io信息,同时会实时监视频率期间,退出进程的退出原因(是正常退出,还是收到信号,如果是前者,其返回值是多少,如果是后者,又收到了什么信号呢?)   它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可相应的atop日志文件进行分析。   http://bean-li.github.io/atop-exit-code/   https://www.cnblogs.com/xybaby/p/8098229.html   dstat   dstat默认输出的是相关资源的总和,通过设置相关参数,可以只看某个cpu,某个网卡或者某个磁盘的数据   sar   sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。   要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来;怀疑CPU存在瓶颈   可用 sar -u 和 sar -q 等来查看怀疑内存存在瓶颈   可用sar -B、sar -r 和 sar -W 等来查看怀疑I/O存在瓶颈   可用 sar -b、sar -u 和 sar -d 等来查看   缺点   看到的是整个系统的情况,比如像进程的缺页中断等情况可以通过pidstat查看   sar 找出系统瓶颈的利器   sar —— Linux 上最为全面的系统性能分析工具之一   vmstat   vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可实时动态监视操作系统的虚拟内存、进程、CPU活动   vmstat输出字段说明:Procs(进程):   Memory(内存):   Swap:   IO:(现在的Linux版本块的大小为1024bytes)   system:   CPU(以百分比表示)   pidstat   pidstat – 进程(或子进程) 堆栈,磁盘,内存, cpu,上下文切换等   pidstat主要用于监控全部或指定进程占用系统资源的情况(甚至可以查看子进程),可监控如下状态:CPU(-u,通过-t还可以看到子进程的情况),内存(-r)(包括内存使用以及缺页情况)(重点是其能看到单个进程的情况)、磁盘IO(-d)、上下文切换切换进程堆栈使用   pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息   进程(或子进程)内存情况   除了可以展示常规的内存,还可以展示内存缺页中断情况   进程(或子进程)磁盘情况   进程(或子进程)堆栈使用情况   进程(或子进程)cpu使用情况   进程(或子进程)上下文切换使用情况   man pidstat   调用层   ltrace   用来跟踪进程调用库函数的情况   strace   strace常用来跟踪进程执行时的系统调用和所接收的信号。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。   像ceph这种多进程程序,一般要加-f,表示除了监视主进程,也会监视其子进程   cpu相关   mpstat   mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。   perf   很重要的一点是还能输出进程占用耗时的调用栈   运行一会ctrl+C中断,会产生 perf.data文件,然后可以按如下查看:   使用perf 分析ceph CPU usage High   tiptop   资料比较少,看man文档   内存相关   free   slabtop   pmap   通过该命令,可以看到一个进程的内存分布情况。最后一行的mapped 该进程映射到文件的内存量。writable/private 该进程使用的私有地址空间。shared 该进程和其它进程共享的地址空间量。   io相关   iotop   统计每个进程的io信息   iostat   blktrace   分析io耗时   使用步骤一般如下:使用blktrace来收集硬盘io数据;使用blkparse来分析收集到的数据(此时信息太多,不利于查看)使用bbt汇总blkparse的分析结果,结果如下图,形象
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件   一些有意思的使用某个阶段(比如d2c)延时图   得到数据后,通过excel工具就可以画图了
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件   每秒iops和bps变化图   注意,这一步之后,我们会得到如下文件:   注意,如果我们blktrace -d sdb,只sdb的时候,我们可以通过sys_iops_fp.dat和sys_mbps_fp.dat对应的IOPS和MBPS信息:   通过excel等工具画图
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件   io size分布   这个步骤之后会生成三个文件:   其中r表示读操作的offset和size信息,w表示写操作的offset和size信息,c表示读+写。   其输出格式如下:   第一个字段是时间,第二个字段是开始扇区即offset,第三个字段为结束扇区。根据第二个字段和第三个字段算出来size。单位为扇区。然后通过excel等工具可以画图
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件   绘制io轨迹图   上一小节里,可以拿到不同时间里,访问磁盘的位置以及访问扇区的个数,如果不考虑访问扇区的个数,我们可以得到一张访问轨迹2D图:
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件一个io耗时和大小统计的脚本   统计了IO的读/写数量、最大延迟、延迟的分布情况、块大小及数量,来源: 剖析生产系统的I/O模式   输出示例   其他   当然,除了上面这些,还可以做很多其他的事情,具体参见bbt的help   上述使用主要参考来自blktrace分析IO 以及 Beyond iostat: Storage performance analysis with blktrace ,感谢   使用blktrace排查iowait cpu高的问题 : 通过blktrace可知道是哪个磁盘哪些扇区在频繁io,通过文件系统block块大小可由扇区推出来其在文件系统中的block号,进而通过debugfs可找到该block对应的inode号,进而可以通过inode号用debugfs获得文件名字,有了文件名字通过lsof就知道是哪个程序在频繁调用它了   perf分析io   Linux 4.6 内核的块设备层的预定义了 19 个通用块层的 tracepoints。这些 tracepoints,可以通过如下 perf 命令来列出来,   我们可以利用 block:block_rq_insert 来跟踪 fio 测试时,该进程写往块设备 /dev/sampleblk1 IO 请求的起始扇区地址和扇区数量,   因为我们指定了记录调用栈的信息,所以,perf script 可以 fio 从用户态到内核 block:block_rq_insert tracepoint 的完整调用栈的信息。 并且,给出了主次设备号,相关操作,及起始扇区和扇区数,   使用简单的处理,我们即可发现这个测试在通用块层的 IO Pattern,   Linux Block Driver – 4   线程io size分布以及数量   stap脚本如下:   对ceph存储机器运行脚本,结果显示如下:   性能优化大师Gregg的脚本   Linux Block Driver – 4   使用systemtap调查异常io的来源   iosnoop/Heatmap   iosnoop 不但可以了解块设备上的 IO 请求大小,更有从 IO 请求发起到完成的延迟时间的信息。   iosnoop脚本   http://oliveryang.net/2016/08/linux-block-driver-basic-4/   http://www.brendangregg.com/blog/2014-07-16/iosnoop-for-linux.html   iosnoop 在短时间内会产生大量的输出,每个 IO 请求的 IO 延迟时间都可能有很大差异,如何能对 fio 测试的延迟有没有更好的数据呈现方式呢? Heatmap 就是一个这样的工具(脚本见:https://github.com/brendangregg/HeatMap),结合iosnoop后的具体使用如下:   参考:   Linux Block Driver – 4   网络相关   iftop   
linuxcpu测试命令_linux压力测试软件
linuxcpu测试命令_linux压力测试软件   类似于iotop查看每个进程的io信息,iftop可以查看ge ge每个网络连通的主机的网络流量信息   缺点   与iptraf一样,只能跟踪单个网卡信息,如果不加-i选项,默认用的是第一个网卡   从零开始学习iftop流量监控(找出服务器耗费流量最多的ip和端口)   nethogs   类似于top和iotop,可以按进程实时统计网络带宽利用率   ifstat   可以观察各个网卡流量的输入以及输出情况   netstat / ss   ss是socket层专用的,而netstat横跨网络各层   ss(Socket Statistics的缩写)命令可以用来 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比 netstat 更快速高效。它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。   当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。   tcpdump + wireshark   ip   Linux下IP命令使用   ifconfig的替代品,   功能包括显示不同网络接口的统计数据, 比如接收发送包数量以及丢包,或包错误信息   ip地址的查看,添加,删除;网络接口设置   1)激活和停止网络端口   可以使用ip命令的up和down选项来激某个特定的接口   2)修改设置传输队列的长度   3)修改网络设置MTU(最大传输单)的值   4)修改网卡的MAC地址   路由查看,添加,修改,删除,路由策略设置   以下是查看百度网址的路由:   查看ARP信息   地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址。   ping   查看网络时延以及丢包情况   iperf   iperf服务器间的网络带宽能力以及带宽是否稳定   tc   tc是网络模拟工具,可以模拟网络延迟,网络丢包,网络包重复,包乱序,包损坏等   Linux流量控制工具TC   iptables   防火墙相关命令   处理目标文件的工具   来源于“深入理解计算机系统P473”   ldd   查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。   nm   列出一个目标文件的符号表种定义的符号   size   列出目标文件种节的名字和大小   readleaf   显示一个目标文件的完整结构,包括elf头中编码的所有信息。包含上面nm以及size命令的功能。   objdump   所有二进制工具之母,能够显示一个目标文件中的所有信息,它最大的作用试反汇编.text节中的二进制程序   硬件相关   lscpu/lspci/lsscis   内核分析   sysrq   Linux内核调试方法总结之sysrq   linux下的SysRq键   ftrace   cephfs内核客户端性能追踪   https://www.ibm.com/developerworks/cn/linux/l-cn-ftrace1/index.html   使用 ftrace 来跟踪系统问题 – ftrace 介绍   使用 ftrace 来跟踪系统问题 – 隐藏的电灯开关   https://zhuanlan.zhihu.com/p/33267453   systemtap   perf   debugfs   使用blktrace排查iowait cpu高的问题 :   通过blktrace可知道是哪个磁盘哪些扇区在频繁io(也可以通过perf),通过文件系统block块大小可由扇区推出来其在文件系统中的block号,进而通过debugfs可找到该block对应的inode号,进而可以通过inode号用debugfs获得文件名字,有了文件名字通过lsof就知道是哪个程序在频繁调用它了通过文件系统上的block号查找inode   通过inode查找文件   查看文件的磁盘layout   A Minimum Complete Tutorial of Linux ext4 File System   man debugfs   nb工具ebpf   Libbpf-tools —— 让 Tracing 工具身轻如燕   其他   lsof   lsof(list open files)是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。   lsof 一切皆文件   pstack   展示进程调用栈   swapon/swapoff   swap分区开启于关闭   参考   Linux性能调优指南   linux性能调优指南   linux工具参考

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/70264.html

(0)
上一篇 2024年 8月 7日 下午3:56
下一篇 2024年 8月 7日

相关推荐

关注微信