TDengine 是一款時序數據庫(Time-Series Database),屬于底層(ceng)開源軟件。在(zai)幫(bang)助(zhu)用戶(hu)定(ding)位和(he)解決(jue)問(wen)(wen)題(ti)時,我們發(fa)現有(you)時候會遇到這(zhe)樣一類問(wen)(wen)題(ti):代碼路(lu)徑較長,整體步驟較多,Debug 的(de)(de)話工作(zuo)量很(hen)大,臨時修改代碼的(de)(de)處理效率也很(hen)低。因此(ci),在(zai)處理這(zhe)類問(wen)(wen)題(ti)時,TDengine 研發(fa)工程(cheng)師會采(cai)取動(dong)態追蹤的(de)(de)方法,希望能快速定(ding)位問(wen)(wen)題(ti)。這(zhe)時候就需要(yao)用到一個神奇的(de)(de)工具——bpftrace。
bpftrace 是 Linux 高級追(zhui)蹤工具和(he)(he)語言。該(gai)工具基于 eBPF 和(he)(he) BBC 實現了通過探針機(ji)制采集內核(he)和(he)(he)程序(xu)運行的信息,然后用圖表等(deng)方式將信息展示出來,幫助開發者(zhe)找到隱藏較(jiao)深的 Bug、安全(quan)問題和(he)(he)性能(neng)瓶頸。其用戶和(he)(he)貢(gong)獻者(zhe)包括 Netflix、Facebook、Red Hat 和(he)(he) Shopify 等(deng)著名的科技公司(si)。性能(neng)分析大神 Brendan Gregg 也是其重度參(can)與(yu)者(zhe)。
在生產系統(tong)中(zhong),打開(kai)日志(zhi)到(dao) 143,或者使用(yong) GDB,都會影(ying)響系統(tong)的正常運行(xing)(xing);而 bpftrace 可以(yi)動(dong)(dong)態(tai)跟蹤(zong)系統(tong)的運行(xing)(xing)情況(kuang),并在大部分情況(kuang)下,幾(ji)乎不會影(ying)響系統(tong)的正常運行(xing)(xing)。用(yong) TDengine 研發(fa)工(gong)程(cheng)師的話說(shuo):開(kai)啟(qi)動(dong)(dong)態(tai)追蹤(zong),對于疑難雜癥,不用(yong)再在日志(zhi)海(hai)里撈針了(le)。
TDengine 離用戶最近的研發(fa)工(gong)程師金明磊,說:bpftrace 給(gei)人一(yi)種隨便哪里都可以 trace 的感覺……
那么 bpftrace 到底有多少神奇之處,除了能快速定(ding)位問題(ti),它還能在哪些(xie)方面大顯神通(tong)?
本(ben)次直播,金明磊將(jiang)結合 TDengine 的(de)相關問題和大家聊(liao)一聊(liao)這款神奇(qi)的(de) Linux 性能工具——bpftrace。
金明磊,TDengine Database 研發工程師(shi),從(cong)(cong) 2004 年開始(shi)從(cong)(cong)事 Linux 平臺上(shang)的(de)軟件開發工作,對于系統編程、問(wen)題定位與解決(jue)都有相(xiang)當豐(feng)富的(de)經驗。目(mu)前(qian)在濤(tao)思數據(ju)從(cong)(cong)事 TDengine 的(de)分(fen)布式集群相(xiang)關研發工作。他將(jiang)分(fen)享:
- bpftrace 的前世今生
- bpftrace 相關工具
- 如何使用 bpftrace 處理 TDengine 節點離線問題
歡迎(ying)大家掃描下方二維碼(ma),關注 TDengine Database 的視頻號,觀看(kan)每周(zhou)的微課堂以及直播活動。



























