当前位置:首页 >> 中医美容 >> Linux动态找出技术概念介绍

Linux动态找出技术概念介绍

发布时间:2024-11-08

就可以通过悬装载点(上会为/sys/kernel/debug/tracing书目)内的副本手写,来跟ftrace交互。伪装成操作者系统或者领域程序的直通意外事件。

perf是我们的老朋友,无论如何这是一种最简单的型式伪装成机制,你也可以用perf来假设动束缚态意外事件。

eBPF则在BPF(Berkeley Packet Filter)一新构建而来,不仅默许意外事件伪装成机制,还可以通过自假设的BPF标识符(C语言)来权利构建。所以,eBPF无论如何是外国籍于操作者系统的直通时,可以话说是Linux的DTrace.在分析作法大量意外事件的时候,可以用从天而降图展开利用计算机分析作法

ftrace:

通过debugfs缺少硬件

ftrace缺少了多个伪装成器,常用不同类型的监控,比如表达式codice_,里断停用,当前配置等,确切默许的伪装成器取决于该系统配置,你可以指派示意图的下达,来查询所有默许的伪装成器:

其里,function隐含伪装成表达式的指派,function_graph声称伪装成表达式的codice_关系,也是生成直观的codice_关系图,这是最常用的两种伪装成器。

除了伪装成器外,领域于ftrace此前,还只所需确定伪装成最终目标,之外操作者系统表达式和操作者系统意外事件,其里:

表达式就是操作者系统里的表达式名意外事件,则是操作者系统GCC里定时假设的伪装成点

同样的,你可以指派示意图的下达,来查询默许的表达式和意外事件

在这里我们就可以一切都是到个有趣的小实验,比如我们一切都是侦测ls下达内外就会中用多更少的open()该系统codice_,open()在操作者系统里互换的表达式叫作do_sys_open,我们一起来完成这个实验:

设为抓取do_sys_open给graph_function, echo do_sys_open> set_graph_function配置伪装成可选,背著进表达式codice_伪装成,并伪装成codice_当前,echo function_graph> current_tracer; echo funcgraph-proc> trace_options背著进伪装成, echo 1> tracing_on指派一个ls下达后,停用伪装成, ls; echo 0> tracing_on检视结果,cat trace

给与结果如下:

你则就会觉得抱怨,事实上有专门的此前端给ftrace领域于,就是trace-cmd, 你可以通过sudo apt-get install trace-cmd展开安装,然后你只只所需展开

说明了一下,无论如何动束缚态监控,就是在该系统和领域程序正常直通时,通过操作者系统缺少的剪切来动束缚态监控他们的犯罪行为,从而辅助排查成效能瓶颈。而在Linux该系统里,常用的动束缚态监控作法之外ftrace, perf, eBPF, SystemTap等。当你已经定位了某个操作者系统表达式,但不确实他的解决问题基本概念,你就可以通过ftrace来伪装成他的指派全过程。

接下来我们继续研读其他的动束缚态侦测新技术:

perf:

通过perf record/top时,都是事前对意外事件展开谐波,然后再进一步根据采用天内,评估各个表达式codice_振幅,无论如何,perf的机制远不止于此。比如

你可以用perf来分析作法CPU cache, CPU迁移,是从预测,称之为令心率等各种操作者系统意外事件perf也可以只对感兴趣的意外事件展开动束缚态监控

同ftrace一样,你也可以通过perf list来检视所默许的意外事件

你可以通过perf probe来追加剪切,比如我们同样来系统对do_sys_open,我们可以:

strace:

他基于ptrace来解决问题,同时:

由于ptrace是该系统codice_,就只所需在操作者系统束缚态和使用者束缚态翻转,当意外事件天内量比较多的时候,繁忙的翻转必然就会影响原有服务的效能ptrace只所需借助SIGSTOP波形来悬挂起最终目标当前,这种波形支配和当前悬挂起,就会影响最终目标当前的犯罪行为

所以,在效能寻常的领域(比如书目),不推荐领域于strace(或者其他基于pstrace的效能基本功能)去排查和加载。

在strace的启发下,混合操作者系统里的utrace机制,perf也缺少了一个trace子下达,来取代strace的基本功能。一般而言ptrace机制来话说,perf trace基于操作者系统意外事件,自然要比当前伪装成的效能好很多,perf的领域于作法如下,跟strace其实很像

eBPF & BCC:

ftrace和perf的机制已经很丰沛了,不过,他们有一个一同的瑕疵,就是不够灵活性,没法像DTrace那样可以通过剧本去一切都是到权利构建。而eBPF就是Linux国际版的DTrace.可以通过C语言权利构建(可以构建可以通过LLVM转换为BPF字符串码后,初始化到操作者系统里指派),示意图这张图,就声称了eBPF的监控基本概念:

无论如何,在eBPF指派全过程里,程序代码,初始化还有maps等操作者,对所有的伪装成程序来话说都是CE的,把这些全过程通过python抽象化起来,也就开端了BCC(BPF Compiler Collection).

SystemTap:

在eBPF显现成来之此前,SystemTap是在Linux里,机制最接近DTrace的动束缚态监控机制。不过要警惕,SystemTap在不长时长相反都产物于操作者系统之外(而eBPF自开端以来,一直根植在操作者系统里)。所以从稳定度上来话说,SystemTap只在RHEL该系统里比较好用,在其他该系统里不易显现成来问题,当然,反过来话说,在3.x等旧国际版本的操作者系统里,也是SystemTap对eBPF的一个庞大优势

sysdig:

他是随着液体新技术的普及化而开端的,主要常用液体的动束缚态监控,汇集了一系列的效能基本功能的优势,sysdig = strace + tcpdump + htop + iftop + lsof + docker inspect. 而在操作者系统>=4.14,sysdig还可以通过eBPF来展开构建,所以,也可以用来监控操作者系统里的各种表达式和意外事件

如何选择监控基本功能:

可以不须自己理解区分一下,不同的情节的基本功能选择问题,比如:

在不只所需很高灵活性的情节里,领域于perf对效能意外事件展开谐波,然后再进一步配合从天而降图辅助分析作法,就是最常用的一种作法只所需对意外事件和表达式codice_展开抽样作法(不同较小的I/O栖息于),只所需用SystemTap以及eBPF,通过一些自假设的剧本来展开天内据处理

说明了:

在新国际版的操作者系统里,eBPF和BCC是最灵活性的动束缚态监控作法在旧国际版本操作者系统里,特别是在RHEL该系统里,由于eBPF默许受限,SystemTap是更多的选择。

新必奇蒙脱石散和益生菌的正确服用方法
干眼症用什么眼药水
胃溃疡能喝蒙脱石散么
拉肚子治疗小妙招
抗病毒治疗
标签:
友情链接: