沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践!
Linux 跟踪很神奇!
跟踪器是一个高等的机能分析和调试对象,如不雅你应用过 strace(1)
或者 tcpdump(8)
,你不该该被它吓到 ... 你应用的就是跟踪器。体系跟踪器能让你看到很多的器械,而不仅是体系调用或者数据包,因为常见的跟踪器都可以跟踪内核或者应用法度榜样的任何器械。
有大年夜量的 Linux 跟踪器可供钠揭捉?择。因为它们中的每个都有一个官方的(或者非官方的)的吉祥物,我们有足够多的选择给孩子们展示。
以下是我对各个跟踪器的评价:
1. ftrace
你爱好应用哪一个呢?
大年夜多半人(开辟者、体系治理员、运维人员、收集靠得住性工程师(SRE)…)是不须要去进修体系跟踪器的底层细节的。以下是你须要去懂得和做的工作:
1. 应用 perf_events 进行 CPU 分析
git clone --depth 1 https://github.com/brendangregg/FlameGraph
perf record -F 99 -a -g -- sleep 30
perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg
Linux 的 perf_events(即 perf
,后者是它的敕令)是官方为 Linux 用户预备的跟踪器/分析器。它位于内核源铝闼楝并且保护的异常好(并且如今它的功能还在快速变强)。它一般是经由过程 linux-tools-common 这个包来添加的。
perf
可以做的工作很多,然则,如不雅我只能建议钠揭捉?习个中的一个功能的话,那就是 CPU 分析。固然大年夜技巧角度来说,这并不是事宜“跟踪”,而是采样。最难的部分是获得完全的┞坊和符号,这部分在我的 Linux Profiling at Netflix 中针对 Java 和 Node.js 评论辩论过。
2. 知道它能干什么
正如一位同伙所说的:“你不须要知道 X 光机是若何工作的,但你须要明白的是,如不雅你吞下了一个硬币,X 光机是你的一个选择!”你须要知道应用跟踪器可以或许做什么,是以,如不雅你安营业上确切须要它,你可以今后再去进修它,或者请会应用它的仁攀来做。
简单地说:几乎任何工作都可以经由过程跟踪来懂得它。内部文件体系、TCP/IP 处理过程、设备驱动、应用法度榜样内部情况。浏览我在 lwn.net 上的 ftrace 的文┞仿,也可以去浏览 perf_events 页面,那边有一些跟踪(和分析)才能的示例。
3. 须要一个前端对象
如不雅你要购买一个机能分析对象(有很多公司发卖这类产品),并请求支撑 Linux 跟踪。想要一个直不雅的“点击”界面去探查内核的内部,以及包含一个在不合客栈地位的延迟热力争。就像我在 Monitorama 演讲 中描述的那样。
我创建并开源了我本身的一些前端对象,固然它是基于 CLI 的(不是图形界面的)。如许可以使其它人应用跟踪器更快更轻易。比如,我的 perf-tools,跟踪新过程是如许的:
# ./execsnoop
Tracing exec()s. Ctrl-
推荐阅读
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践! 在进行物联网采购时,很多企业或组织机构缺点地认为物联网成功有一个标准的应用办法。实际情况倒是,没有最好的物联网>>>详细阅读
本文标题:性能分析和调试工具:Linux跟踪器之选
地址:http://www.17bianji.com/lsqh/40662.html
1/2 1