perfgao

nginx的时间管理

本文主要以work进程为主要研究对象,研究其在epoll模式下的时间管理逻辑。

时间缓存

nginx 为尽量减少性能损耗,对时间的管理,采用了自己对时间进行缓存,以减少系统调用次数(时间更新使用gettimeofday函数)。这样做也是因为服务器基本对时间的精确度有个容忍度。

三类事件触发时间更新

  • 网络IO事件
  • 超时事件
  • 定时事件

查看更多

nginx 防止惊群

惊群

惊群现象就是多个进程同时等待同一个事件,当有事件发生时,所有进程都被唤醒,同时去响应这个事件,最后只有一个进程能成功执行,而其他进程只能继续重新休眠。nginx 在master/workers模型下,多个worker进程进行epoll_wait,当有新的连接事件发生,会唤醒所有进程的epoll_wait,结果有些进程发现accpte是失败的。这样的话,开销变大,性能也会随之下降。

查看更多

nginx事件驱动框架

本文主要阐述个人对nginx的核心机制–事件驱动框架理解,分享自己的见得。也希望帮助相关爱好者更清除的了解nginx。文中如有不妥的地方,欢迎指导更正。

首先先了解下,目前流行的web server中,使用最广的Apache在处理请求时,主要是fork出子进程进行处理,其特征就是一个请求占用一个子进程,请求处理完后进程退出销毁。这种处理架构很明显地随着需要http连接增多对系统的资源占用也随之增加,并发能力不高。而对于nginx是如何做到高性能,高并发的呢–nginx的强大就是使用了事件驱动,也就是IO多路复用。对于nginx的几个worker进程而言,她们关注的是事件。(本文主要探讨的是linux环境下使用epoll模块的IO多路复用)

查看更多

HEXO -- Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

查看更多