日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

javamac系统通过pid获取进程名称_线上环境 Linux 系统调用追踪

發(fā)布時(shí)間:2025/4/5 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javamac系统通过pid获取进程名称_线上环境 Linux 系统调用追踪 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

提到如何動(dòng)態(tài)追蹤進(jìn)程中的系統(tǒng)調(diào)用,相信大家第一時(shí)間都能想到 strace,它的基本用法非常簡(jiǎn)單,非常適合用來(lái)解決 “為什么這個(gè)軟件無(wú)法在這臺(tái)機(jī)器上運(yùn)行?” 這類問(wèn)題。但如果需要分析線上服務(wù) (特別是延遲敏感型)的某些系統(tǒng)調(diào)用的延遲時(shí),strace 則不那么合適,因?yàn)樗氲拈_(kāi)銷會(huì)非常大,從性能分析大師 Brendan Gregg 的測(cè)試結(jié)果得知,被 strace 追蹤的目標(biāo)進(jìn)程的運(yùn)行速度會(huì)降低 100 倍以上,這對(duì)生產(chǎn)環(huán)境來(lái)說(shuō)將是個(gè)災(zāi)難。

那么是否有比較好用的工具用在生產(chǎn)環(huán)境上呢?答案是肯定的,下面將介紹兩款工具的常用命令,方便大家需要時(shí)查閱。

Perf

眾所周知,perf 是 Linux 系統(tǒng)下非常強(qiáng)大的性能工具,由 Linux 內(nèi)核開(kāi)發(fā)人員在不斷演進(jìn)和優(yōu)化。除了可以分析 PMU (Performance Monitoring Unit) 硬件事件,內(nèi)核事件等通用功能外,perf 還提供了其他“子模塊”,比如 sched 分析調(diào)度器,timechart 根據(jù)負(fù)載特征可視化系統(tǒng)行為,c2c 分析可能存在的 false sharing (RedHat 在大量 Linux 的應(yīng)用上,測(cè)試過(guò)這套 c2c 的開(kāi)發(fā)原型,成功地發(fā)現(xiàn)了很多熱點(diǎn)的偽共享緩存行問(wèn)題。)等,而 trace 則可用于分析系統(tǒng)調(diào)用,其功能非常強(qiáng)大,并保證了可以接受的開(kāi)銷 —— 運(yùn)行速度僅放慢 1.36 倍(dd 作為測(cè)試負(fù)載)。我們一起看下幾個(gè)常用的場(chǎng)景:

調(diào)用 syscall 數(shù)量的 top 排行榜

perf top -F 49 -e raw_syscalls:sys_enter --sort comm,dso --show-nr-samples

從輸出可以看到在采樣期間,kube-apiserver 的調(diào)用 syscall 的次數(shù)最多。

顯示超過(guò)一定延遲的系統(tǒng)調(diào)用信息

perf trace --duration 200

從輸出中可以看到進(jìn)程名稱、pid ,超過(guò) 200 ms 的具體系統(tǒng)調(diào)用參數(shù)和返回值。

統(tǒng)計(jì)某個(gè)進(jìn)程一段時(shí)間內(nèi)系統(tǒng)調(diào)用的開(kāi)銷

perf trace -p $PID -s

從輸出中可以看到各系統(tǒng)調(diào)用的次數(shù),返回錯(cuò)誤次數(shù),總延遲,平均延遲等信息。

我們也可以進(jìn)一步分析高延遲的調(diào)用棧信息

perf trace record --call-graph dwarf -p $PID -- sleep 10

對(duì)一組任務(wù)進(jìn)行 trace

比如后臺(tái)有 2 個(gè) bpf 工具在運(yùn)行,我們想看下它們系統(tǒng)調(diào)用使用情況,就可以先將它們添加到 perf_event 這個(gè) cgroup 下,再執(zhí)行 perf trace:

mkdir /sys/fs/cgroup/perf_event/bpftools/
echo 22542 >> /sys/fs/cgroup/perf_event/bpftools/tasks
echo 20514 >> /sys/fs/cgroup/perf_event/bpftools/tasks
perf trace -G bpftools -a -- sleep 10

perf-trace 的使用就介紹到這里,更多的用法請(qǐng)參考 man 手冊(cè),從上面可以看到 perf-trace 的功能非常強(qiáng)大,根據(jù) pid 或 tid 就可以進(jìn)行過(guò)濾。但似乎沒(méi)有對(duì)容器和 Kubernetes(K8s) 環(huán)境進(jìn)行便捷的支持。不用著急,接下來(lái)介紹的這個(gè)工具就是針對(duì)容器和 K8s 環(huán)境的。

Traceloop

對(duì)于 Traceloop 大家可能有點(diǎn)陌生,但提到 BCC 想必大家就覺(jué)得熟悉了。BCC 的前端是 Python/C++,其所屬 iovisor 下還有一個(gè)項(xiàng)目叫 gobpf 是 BCC 的 go binding。而 Traceloop 則是基于 gobpf 庫(kù)進(jìn)行開(kāi)發(fā)的,此項(xiàng)目的主要目標(biāo)應(yīng)用場(chǎng)景是容器、K8s 環(huán)境。其原理比較簡(jiǎn)單,其架構(gòu)如圖所示:

核心步驟如下:

1. 利用 bpf helper 獲取 cgroup id,根據(jù) cgroup id 而不是 pid、tid 進(jìn)行過(guò)濾。

2. 每個(gè) cgroup id 對(duì)應(yīng)一個(gè) bpf tail call,通過(guò)這種方式實(shí)現(xiàn)對(duì)此 cgroup id 對(duì)應(yīng)的 perf ring buffer 進(jìn)行寫入。

3. 用戶空間根據(jù) cgroup id 讀取對(duì)應(yīng)的 perf ring buffer。

需要注意的是,當(dāng)前 cgroup id 的獲取方式是通過(guò) bpf helper:bpf_get_current_cgroup_id 來(lái)獲取的,這個(gè) id 是 cgroup v2 才有的。因此只適用于開(kāi)啟了 cgroup v2 的環(huán)境。尚不確定此項(xiàng)目團(tuán)隊(duì)是否有意向通過(guò)讀取 nsproxy 數(shù)據(jù)結(jié)構(gòu)等方式來(lái)對(duì) cgroup v1 進(jìn)行支持,因此在這里只做簡(jiǎn)單介紹。隨著 K8s 1.19 版本開(kāi)始支持 cgroup v2,期待 cgroup v2 能盡快普及起來(lái)。以下使用 Centos 8 4.18 版本內(nèi)核進(jìn)行簡(jiǎn)單的演示:在 traceloop 退出時(shí) dump 系統(tǒng)調(diào)用信息

sudo -E ./traceloop cgroups --dump-on-exit /sys/fs/cgroup/system.slice/sshd.service

從輸出中可以看到,其輸出和 strace/perf trace 類似,只是針對(duì) cgroup 進(jìn)行過(guò)濾。需要注意的是 Centos 8 沒(méi)有像 Ubuntu 將 cgroup v2 掛載到 /sys/fs/cgroup/unified,而是直接掛載到 /sys/fs/cgroup 下,在使用前建議執(zhí)行?mount -t cgroup2?來(lái)確定掛載信息。

對(duì)于 K8s 平臺(tái),該團(tuán)隊(duì)將 traceloop 集成到 Inspektor Gadget 項(xiàng)目中,通過(guò) kubectl 插件來(lái)運(yùn)行,由于管網(wǎng)給出詳細(xì)的 gif 示例,在這里就不做過(guò)多介紹了,對(duì) cgroup v2 有需求的朋友可以試一試。

Benchmark

從 benchmark 結(jié)果看,strace 的引起的目標(biāo)程序性能下降最大,perf trace 次之,traceloop 最小。

總結(jié)

strace 依然是解決 “為什么這個(gè)軟件無(wú)法在這臺(tái)機(jī)器上運(yùn)行?” 相關(guān)問(wèn)題的利器,但對(duì)于分析系統(tǒng)調(diào)用延遲等問(wèn)題,perf trace 是合適的選擇,其也是基于 BPF 的實(shí)現(xiàn),對(duì)于使用 cgroup v2 的容器、K8s 環(huán)境,traceloop 會(huì)更方便一些。

總結(jié)

以上是生活随笔為你收集整理的javamac系统通过pid获取进程名称_线上环境 Linux 系统调用追踪的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 最新日韩av在线 | 欧美整片第一页 | 国产精品18久久久 | 国产精品精品国产色婷婷 | 五月婷婷激情综合网 | 一区二区三区国产精品视频 | www国产精品 | 老司机午夜剧场 | 大乳丰满人妻中文字幕日本 | 成人在线观看黄色 | 久久在线视频 | 国产毛片3| 嫩草影院中文字幕 | 日韩美女爱爱 | 久久久精品福利 | 婷婷激情电影 | 久久精品视频在线免费观看 | 午夜欧美精品 | 国产精品第9页 | 精品久久中文字幕 | 亚洲一区二区三区久久久 | 伊人网视频 | 第九色| av中文资源网| 欧美日韩一区二区三区不卡视频 | 日本少妇videos高潮 | 亚洲精品国产欧美在线观看 | 欧美久久久久久久久 | 久久久久国产精品一区 | 日本熟妇人妻中出 | 国产chinese男男网站大全 | 日韩免费高清视频 | 九九影视理伦片 | 美日韩黄色片 | 日韩福利一区 | 国产精品伦 | 亚洲网站在线观看 | 综合色站导航 | 麻豆疯狂做受xxxx高潮视频 | 国产第三区 | 日韩特黄毛片 | 欧美激情国产日韩精品一区18 | 国产丝袜第一页 | aaaaa级少妇高潮大片免费看 | 丰满人妻一区二区三区53号 | 亚洲成人精品一区二区 | 黄色在线免费视频 | 91亚洲精品久久久久久久久久久久 | www.亚洲色图.com | 日日摸夜夜添狠狠添欧美 | 欧美精品免费在线 | 亚洲AV成人无码网站天堂久久 | 亚洲2022国产成人精品无码区 | 7799精品视频天天看 | 国产黄av| 久久精品亚洲 | 天堂资源av | 欧美三极片| 女厕厕露p撒尿八个少妇 | 天堂网一区二区 | 成人无码视频 | 96看片| 老司机精品福利导航 | 国产精品久久久久久久免费 | 日韩欧美高清 | 久色| 国产99久久久久 | 2021亚洲天堂| 国产黄色视屏 | 精品日韩制服无码久久久久久 | 亚洲 小说区 图片区 | 91色交| 色窝在线| 午夜精品久久久久久久久 | 毛茸茸free性熟hd | 欧美无专区 | 97自拍偷拍 | 私人午夜影院 | 国产中文字幕91 | 成人污在线 | 亚洲第一区视频 | 在线观看久 | 午夜精品福利在线 | 偷拍欧美另类 | 国产一级啪啪 | 国产精品va无码一区二区 | 国产精品.www | 国产高清www | 无码人妻aⅴ一区二区三区69岛 | 日韩欧美网| 在线不卡av | 榴莲视频黄色 | 毛片网 | 久久精品视频一区二区 | 色噜噜亚洲 | 777777av| 亚洲黄色免费 | 18禁裸男晨勃露j毛免费观看 | 色av一区二区 |