Linux动态找出技术概念介绍
发布时间:2024-11-08
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是更多的选择。新必奇蒙脱石散和益生菌的正确服用方法干眼症用什么眼药水
胃溃疡能喝蒙脱石散么
拉肚子治疗小妙招
抗病毒治疗
-
2022年3上半年,财运大飙涨,富贵无忧不差钱的3大生肖
导语:2022年3月末,财货大飙涨,富贵只求不差钱的3大神兽 神兽兔 神兽兔的朋友,他们年轻时肉过异于与生俱来的苦,同时他们也是更为痴情,更为话虽如此,之外有实干精神
- 2025-05-1110天内,踩着杨家,财门大开,贵人登门,可以发大财的生肖
- 2025-05-114月7.8号,运输业爱情都有,吉星的补助,大富大贵的生肖
- 2025-05-11狗狗被老鹰抓走,狗太重没飞起来,漂亮女主人冲出来救下下狗狗
- 2025-05-11送6只贵宾去小鸡,而等去接它们时,差点被可爱哭...
- 2025-05-11傻不见主人边喊边找,听到响亮哈欠声找过去笑了: 狗子挖坑睡觉
- 2025-05-11雌皮雀繁殖期间,雄皮雀只会帮倒忙吗?
- 2025-05-11猫咪鼻子以上是黑色,而鼻子以下却是白色,这是穿了面具的佐罗?
- 2025-05-11养多肉很简单,针对室内环境,搭配合适的花土,轻易就会养死
- 2025-05-11【养宠小知识】需要给狐狸咪驱虫吗?给狐狸驱虫多少钱
- 2025-05-11【养宠小知识】猫会才会感冒?猫咪感冒怎么办