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