epoll:从原理到实战
8 篇从为什么需要 IO 多路复用开始,逐步走进 epoll 的内核实现,再回到 Nginx、Redis 与 Go runtime 中的真实应用。
章节目录
按阅读顺序排列- 01 为什么需要 epoll?
Linux 高性能网络编程入门,从 C10K 问题到 IO 多路复用的演进历程,深入理解 epoll 相比 select 和 poll 的巨大优势
- 02 epoll 的核心原理
深入解析 epoll 的内部工作机制,包括三个核心 API、红黑树与就绪链表数据结构、以及水平触发与边缘触发的区别
- 03 事件循环、缓冲区与工作分配
分清事件通知和数据传输,梳理事件数组复用、非阻塞读写、缓冲区生命周期与背压。
- 04 多进程/多线程的 epoll 使用
epoll 在多进程和多线程环境下的使用,包括惊群效应、EPOLLEXCLUSIVE 独占模式、SO_REUSEPORT 负载均衡,以及完整的多进程服务器实现
- 05 跨平台 IO 多路复用对比
Linux 的 epoll、macOS/BSD 的 kqueue、Windows 的 IOCP,以及 Go 的跨平台封装机制详解
- 06 深入内核源码
Linux 内核中 epoll 的完整实现,包括事件循环、回调机制、与网络驱动的交互等底层细节
- 07 监控与调试
epoll 的性能监控工具、常见问题诊断、性能瓶颈定位,以及实战中的调试技巧
- 08 实战案例分析
Nginx、Redis、Go runtime 中 epoll 的实际应用,深入理解真实项目如何使用 epoll