曙海教学优势
全国免费报名电话:4008699035。该课程,秉承21年教学品质,以项目案例为依托,面向企事业单位实际需求,讲师将会与您分享设计的全流程以及工具的综合使用技巧以及经验。课程支持定制,线下/线上/上门都可以。
曙海培训的课程培养了大批受企业欢迎的工程师。大批企业和曙海
建立了良好的合作关系,合作企业三十多万家。我们的课程得到广大企事业单位广泛认可与赞赏。
本课程针对在Linux之上开发多进程、多线程程序,它的主要内容包括各类开发工具、编译优化、执行乱序、动态链接库拦截、白盒测试,以及如何在Linux中设计好多进程的通信、多线程的通信并进行调试,如何避免多线程程序的内存故障、临界区竞态访问出错,如何规划好各个线程的各自的工作、设计好I/O模型等。
课程的后半部分,会讲解性能优化,分析清楚CPU、内存、I/O瓶颈,分析运行时耗时的代码,分析一些延迟的来源等,涉及到对ftrace、perf、kprobe、uprobe、eBPF/BCC、getdelays、火焰图等工具的讲解。
第一章 开发工具:编译,调试,拦截,跟踪和测试
第1节 进入 Linux的精彩世界
1 Linux启动过程(多核)
2 Linux系统组成
3 strace和ltrace
4 LD_PRELOAD与动态库捕获
5 meltdown漏洞
第2节 GCC和GDB
1 GNU工具链和GDB调试
2 GCC与编译优化
3 编译乱序与执行乱序
4 反汇编, objdump
5 GDB调试技巧: 断点、watch、内存与backtrace等
6 崩溃转储core dump
第3节 ELF文件分析
1 readelf, nm, strip
2 dwarfdump
3 程序、库依赖关系分析
第4节 GNU toolchain其他功能
1 gprof
2 gcov白盒测试
第二章 系统编程:多进程和多线程
第1节 Linux多进程编程
1. 多进程模型
2. 多进程通信
3. 进程间通信(IPC)调试
第2节 Linux多线程
1. 多线程程序创建
2. 线程生命周期
3. 线程调度策略和优先级设置
4. 正确的互斥和同步方法
5. 可重入与线程安全
6. IPC调试、死锁
7. 多进程、多线程调试
8. 线程的栈和栈溢出
9. 优先级翻转问题
第3节 多线程模型
1. 多线程程序的模型,线程的规划
2. 阿姆达尔定律
3. Linux的I/O模型
4. 多线程与I/O
5. C10K问题
第三章 系统优化:理论和工具
第1节 Linux性能模型
USE模型
吞吐率
延迟
排队论
CPU、mem和I/O
Lock和lock竞争
省电优化攻略
第2节 工具篇
Ftrace
Perf
eBPF/BCC
getdelays
latencytop
Powertop
剖析知识
第3节 CPU相关优化
模型与基础工具:top, mpstat
CPU的时间分布:中断、软中断、D状态(iowait)等
SCHED跟踪
CPU的stalled状态,CPI与IPC
Cache, branch miss
CPU在干什么:ON-CPU火焰图,代码热点
CPU在等什么:OFF-CPU火焰图
第4节 I/O相关优化
模型: iostat,iotop等
跟踪
Blktrace
Blk-mq
Page cache与I/O
Swap与I/O
第5节 网络相关优化
模型
跟踪
多队列网卡
RSS/RPS/XPS