
曙海教學(xué)優(yōu)勢
本課程,秉承二十一年積累的教學(xué)品質(zhì),以項目實(shí)現(xiàn)為導(dǎo)向,面向企事業(yè)項目實(shí)際需要,老師將會與您分享設(shè)計的全流程以及工具的綜合使用經(jīng)驗(yàn)、技巧。課程可定制,線上/線下/上門皆可,熱線:4008699035。
曙海培訓(xùn)的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
建立了良好的合作關(guān)系,20多年來,合作企事業(yè)單位以達(dá)30多萬。曙海培訓(xùn)的課程在業(yè)內(nèi)有著響亮的知名度。
本課程針對在Linux之上開發(fā)多進(jìn)程、多線程程序,它的主要內(nèi)容包括各類開發(fā)工具、編譯優(yōu)化、執(zhí)行亂序、動態(tài)鏈接庫攔截、白盒測試,以及如何在Linux中設(shè)計好多進(jìn)程的通信、多線程的通信并進(jìn)行調(diào)試,如何避免多線程程序的內(nèi)存故障、臨界區(qū)競態(tài)訪問出錯,如何規(guī)劃好各個線程的各自的工作、設(shè)計好I/O模型等。
課程的后半部分,會講解性能優(yōu)化,分析清楚CPU、內(nèi)存、I/O瓶頸,分析運(yùn)行時耗時的代碼,分析一些延遲的來源等,涉及到對ftrace、perf、kprobe、uprobe、eBPF/BCC、getdelays、火焰圖等工具的講解。
第一章 開發(fā)工具:編譯,調(diào)試,攔截,跟蹤和測試
第1節(jié) 進(jìn)入 Linux的精彩世界
1 Linux啟動過程(多核)
2 Linux系統(tǒng)組成
3 strace和ltrace
4 LD_PRELOAD與動態(tài)庫捕獲
5 meltdown漏洞
第2節(jié) GCC和GDB
1 GNU工具鏈和GDB調(diào)試
2 GCC與編譯優(yōu)化
3 編譯亂序與執(zhí)行亂序
4 反匯編, objdump
5 GDB調(diào)試技巧: 斷點(diǎn)、watch、內(nèi)存與backtrace等
6 崩潰轉(zhuǎn)儲core dump
第3節(jié) ELF文件分析
1 readelf, nm, strip
2 dwarfdump
3 程序、庫依賴關(guān)系分析
第4節(jié) GNU toolchain其他功能
1 gprof
2 gcov白盒測試
第二章 系統(tǒng)編程:多進(jìn)程和多線程
第1節(jié) Linux多進(jìn)程編程
1. 多進(jìn)程模型
2. 多進(jìn)程通信
3. 進(jìn)程間通信(IPC)調(diào)試
第2節(jié) Linux多線程
1. 多線程程序創(chuàng)建
2. 線程生命周期
3. 線程調(diào)度策略和優(yōu)先級設(shè)置
4. 正確的互斥和同步方法
5. 可重入與線程安全
6. IPC調(diào)試、死鎖
7. 多進(jìn)程、多線程調(diào)試
8. 線程的棧和棧溢出
9. 優(yōu)先級翻轉(zhuǎn)問題
第3節(jié) 多線程模型
1. 多線程程序的模型,線程的規(guī)劃
2. 阿姆達(dá)爾定律
3. Linux的I/O模型
4. 多線程與I/O
5. C10K問題
第三章 系統(tǒng)優(yōu)化:理論和工具
第1節(jié) Linux性能模型
USE模型
吞吐率
延遲
排隊論
CPU、mem和I/O
Lock和lock競爭
省電優(yōu)化攻略
第2節(jié) 工具篇
Ftrace
Perf
eBPF/BCC
getdelays
latencytop
Powertop
剖析知識
第3節(jié) CPU相關(guān)優(yōu)化
模型與基礎(chǔ)工具:top, mpstat
CPU的時間分布:中斷、軟中斷、D狀態(tài)(iowait)等
SCHED跟蹤
CPU的stalled狀態(tài),CPI與IPC
Cache, branch miss
CPU在干什么:ON-CPU火焰圖,代碼熱點(diǎn)
CPU在等什么:OFF-CPU火焰圖
第4節(jié) I/O相關(guān)優(yōu)化
模型: iostat,iotop等
跟蹤
Blktrace
Blk-mq
Page cache與I/O
Swap與I/O
第5節(jié) 網(wǎng)絡(luò)相關(guān)優(yōu)化
模型
跟蹤
多隊列網(wǎng)卡
RSS/RPS/XPS
?