简介
nginx
作为常用的web
代理服务器,某些场景下对于性能要求还是蛮高的,所以本片文章会基于操作系统调度以及网络通信两个角度来讨论一下Nginx
性能的优化思路。
基于操作系统调度进行Nginx优化
CPU工作方式
对于用户进程,CPU
会按照下面的规则完成工作调度:
- 每个用户进程被加载到内存中,就会采用
CFS
调度算法,即对于vruntime
少的优先运行,得到CPU
的运行时间片就会运行,时间一到就会被挂起。 - 进程优先级越高得到时间片的时间就越长。
- 进程实际运行时间不一定和时间片相等,当进程遇到IO阻塞时也会被挂起。
如下图,我们的用户进程nginx
就会被放到csf_rq
中,操作系统会等deadline
进程(dl_rq中的进程)
和实时进程(rt_rq中的进程)
拿到时间片运行完之后,从cfs_rq中取出最左节点运行。