nginx 源码tips

  • 咱们以前说过,推荐设置worker的个数为cpu的核数,在这里就很容易理解了,更多的worker数,只会致使进程来竞争cpu资源了,从而带来没必要要的上下文切换
  • 并且,nginx为了更好的利用多核特性,提供了cpu亲缘性的绑定选项,咱们能够将某一个进程绑定在某一个核上,这样就不会由于进程的切换带来cache的失效
  • 由于每一个socket链接会占用掉一个fd,因此这也会限制咱们进程的最大链接数
  • 一个nginx能创建的最大链接数,应该是worker_connections * worker_processes。固然,这里说的是最大链接数,对于HTTP请求本地资源来讲,可以支持的最大并发数量是worker_connections * worker_processes
  • 而若是是HTTP做为反向代理来讲,最大并发数量应该是worker_connections * worker_processes/2。由于做为反向代理服务器,每一个并发会创建与客户端的链接和与后端服务的链接,会占用两个链接
  • 当客户端的一次访问,须要屡次访问同一个server时,打开keepalive的优点很是大,好比图片服务器,一般一个网页会包含不少个图片。打开keepalive也会大量减小time-wait的数量。

tips:#define ngx_cdecl __cdeclnginx

  • __cdecl__stdcall 函数调用约定
    • 调用约定是函数类型的一部分,所以函数的声明和定义处调用约定要相同,不能只在声明处有调用约定,而定义处没有或与声明不一样
相关文章
相关标签/搜索