21 七月, 2008
Nginx的Architecture and scalability一节里这么介绍:
- one master process and several workers processes. The workers run as unprivileged user;
- 10,000 inactive HTTP keep-alive connections take about 2.5M memory;
- data copy operations are kept to a minimum.
Nginx运行时包括一个主进程和几个子进程,保持10K个HTTP连接,只耗用2.5M的内存。
2.5M/10K = 263Bytes
保留这么少的内存,意味着一旦HTTP请求进来,肯定少不了要申请内存,而频繁地内存申请释放操作要耗费很多CPU资源,然而Nginx又是出名的CPU资源小户,用到10%已经很了不起了(参考Why Use Nginx?中用户的表扬信)
用这么少的资源,不光要减少disk IO操作,也必须减少Memory操作才行,相信上面的“data copy operations are kept to a minimum.”是关键,不知道和这里提到的Patent有没有关联。
@todo: 做个记号,抽空研究一下源码。
几个链接:
关于 Nginx 的几个误解(不能说是误解,对于一个迅速发展的开源软件,今天和明天在功能或者支持上有些不一致很正常)
最新回复
发表评论



