author:咔咔
wechat:fangkangfk
优点一:IO多路复用epoll
概念:I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。
案例: 比如这里有三个学生分别是ABC三位,这个时候需要老师辅导作业,老师辅导作业的前提也得是学生把作业做完是吧!那么最好的方案是什么呢!那就是当A学生先把作业写完后,老师去辅导A。学生B作业写完之后,老师在去辅导b,这就是典型的IO复用
使用场景
1)当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。
2)当一个客户同时处理多个套接口时,这种情况是可能的,但很少出现。
3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。
4)如果一个服务器即要处理TCP,又要处理UDP,一般要使用I/O复用。
5)如果一个服务器要处理多个服务或多个协议,一般要使用I/O复用。
优点二:轻量级
功能模块少
代码模块化
优点三:CPU亲和
是一种把CPU核心的和Nginx的工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache,miss,获得更好的性能
优点四:处理静态文件很快速,使用的是sendfile方式传输文件
补充:nginx跟apache的优缺点
nginx 相对 apache 的优点:
轻量级,同样起web 服务,比apache 占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块出品迅速啊
Nginx本身就是一个反向代理服务器
Nginx支持7层负载均衡
nginx 适合做静态,简单,效率高
apache 相对nginx 的优点:
rewrite ,比nginx 的rewrite 强大
模块超多,基本想到的都可以找到
少bug ,nginx 的bug 相对较多
超稳定
apache 适合做动态,稳定,功能强