前提
tengine在reload过程中存在cpu掉量的问题,经查reload阶段cpu状态,发现cpu usr占用率比较高。
查看老的worker进程退出时代码发现,tengine在退出前会集中处理连接上的事件,消耗过多cpu,因此去掉该集中处理过程。
该优化方式可能会导致系统中shutting down 状态 worker进程退出较慢,从而造成一定程度的堆积。
自测发现,该改动能有效减少cpu掉量问题。
查看nginx新版本,在1.9.4版本中,也做了相应的优化。
http://nginx.org/en/CHANGES
https://github.com/nginx/nginx/blob/master/src/os/unix/ngx_process_cycle.c