本想看到timer delta:日志,以为是整个nginx的epoll_wait接收到事件, 以及处理handler的整个事件所消耗的事件;来判断是否有阻塞发生;
但每次运行时,都会看到第一个 timer delta非常大:
第一个值非常大。 是handler真的消耗了这么多吗?
不是的。 是由于 第一次运行时 ngx_current_msec根本没有值造成的。
ngx_current_msec是靠ngx_epoll_process_events()->ngx_time_update()来更新的;
而刚启动时, ngx_current_msec = 0
而ngx_epoll_process_events()阻塞在了epoll_wait函数上。(由于传送过来的timer = -1, 导致epoll_wait无限阻塞)