曙海教學優勢
本課程以項目實現為導向,面向企事業項目實際需要,秉承二十一年積累的教學品質,老師將會與您分享設計的全流程以及工具的綜合使用經驗、技巧。線上/線下/上門皆可,課程可定制,熱線:4008699035。
曙海培訓的課程培養了大批受企業歡迎的工程師。曙海培訓的課程在業內有著響亮的知名度。大批企業和曙海
建立了良好的合作關系,合作企業30萬+。
Linux系統編程與調試調優培訓課程
課程大綱?
第1章???????? 進入 Linux的精彩世界
1.1 Linux啟動過程(多核)
1.2 Linux系統組成
1.3 strace和ltrace
1.4 GNU工具鏈和GDB調試
1.5 GCC編譯的各個階段分解
1.6 ELF文件分析
1.7 反匯編, objdump, dwarfdump
1.8 readelf, nm, strip
1.9 GDB調試技巧: 斷點、watch、內存與backtrace等
1.10 GDB與多線程
1.11 LD_PRELOAD與動態庫捕獲
1.12 gprof
1.13 gcov
1.14 崩潰轉儲core dump
第2章???????? Linux內核進程調度與調試
2.1 進程生命周期
2.2 調度的上下文切換以及開銷
2.3 調度算法的出發點:吞吐率與響應
?
實驗課
??? 1.寫一個工具自動分析文件系統中程序與庫的依賴關系圖;
??? 2.寫一個工具自動分析文件系統中程序與庫的符號依賴;
??? 3.gcov白盒覆蓋率
??? 4.gdb調試多線程
??? 5. gdb attach到一個運行進程
??? 6.調試core dump實例
??? 7. 用?strace和ltrace跟蹤一個應用對內核和庫的調用
??? 8. 跟蹤和攔截Linux應用程序對動態庫的調用
?
?
?
2.2 進程調度算法
2.2.1 SCHED_FIFO/RR
2.2.2 SCHED_NORMAL與CFS算法
2.2.3 nice
2.3 進程調度時機
2.4 Linux實時性與RT解決方案
2.5 SMP
2.5.1 多核負載均衡
2.5.2 CPU熱插拔
2.5.3 CPU affinity
2.5.4 BFS算法
2.6 針對CPU資源的Cgroups
2.7 系列案例演示調度行為對系統響應的影響
第3章???????? 內核調試
3.1 printk 及其變體
3.2 內核崩潰oops分析
3.3 內核debug?選項
3.4 proc 和?sys
3.5 內核啟動過程調試
3.6 內核啟動時間優化調試
3.7 待機和電源管理調試
3.8 用JTAG調試內核
實驗課程
1.使用dev_xxx和pr_xxx打印信息
2.分析一次內核崩潰oops并反匯編
3.寫一個透過/proc在用戶空間和內核空間進行交互的例子
4.使用JTAG和GDB調試內核
5.運行一個多線程的程序,觀察top, htop, mpstat的情況
6.通過chrt, nice, renice, taskset方法改變進程的調度屬性
7.通過cgroup分配CPU資源
?
第4章???????? ?內存分析與內存泄露
1.? MMU系統
2.? page與zone
3.? buddy系統
4.? slab、kmalloc
5.? 用戶空間malloc與內核buddy等的關系
6.? out-of-memory (OOM)與控制
7.? 進程的內存消耗
8.? page cache與swap
9.? zRAM
10. 內存泄露剖析
11. Addresssanitizer與valgrind
12. 針對內存資源的Cgroups
實驗課程
1.分析一個運行時Linux的內存分布情況
2.用smem觀察進程的內存變化
3.用valgrind跟蹤一個有堆內存泄露的進程
4.啟動編譯器Addresssanitizer
4.寫一個有棧溢出的程序并觀察溢出表現
5.做I/O動作,觀察page cache變化
6.運行一個引起OOM的程序
7.運行一個程序的多個副本,觀察PSS變化
?
?
第5章???????? Linux多進程與多線程
1.? 多進程通信
2.? 多線程通信
3.? 正確的互斥和同步方法
4.? 可重入與線程安全
5.? 多進程、多線程調試
6.? IPC調試、死鎖
7.? Linux的I/O模型
8.? 多線程與I/O
9.? C10K問題
第6章???????? Linux性能優化
1. CPU負載分析:top, htop,?mpstat
2. I/O負載分析:iostat, iotop
3. Linux邏輯分析儀:LTTng
4. 綜合性能瓶頸:oprofile/perf
5. 程序執行時間分布分析
6. cache miss分析
7. 開機優化:bootchart
8. 功耗優化: powertop?和?cpufreq-bench
9. ftrace
10. Linux基準程序(LMBench,Bonnie++, IOZone, Netperf/iperf等)
11. 特別彩蛋:?LEP(Linux Easy Profiling)
實驗課程
1.觀察一個有一定CPU、I/O負載的系統CPU、I/O情況
2.運行oprofile分析?binary的時間比例
3.使用Bonnie++分析文件系統的性能
4.修改diry_ratio等值分析文件系統性能
5.使用LMBench分析操作系統性能
6.觀察一個LTTng的結果
7.運行perf觀察CPU、I/O分布情況
8.運行perf觀察程序的時間分布
?
?
?