原文地址:https://www.cnblogs.com/shitoufengkuang/p/4910333.html

一、前言

1、Nignx版本:1.7.11 以上

2、NGINX采用了异步、事件驱动的方法来处理连接。这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求。

3、NGINX工作在非阻塞的socket模式下,并使用了epoll 和 kqueue这样有效的方法。

4、NGINX可以非常好地处理百万级规模的并发请求。

5、阻塞操作可以毁掉NGINX的性能,我们必须不惜一切代价避免使用阻塞。

6、即使在当前官方的NGINX代码中,依然无法在全部场景中避免使用阻塞,NGINX1.7.11中实现的线程池机制解决了这个问题

二、问题

1、通常情况下,NGINX是一个事件处理器,即一个接收来自内核的所有连接事件的信息,然后向操作系统发出做什么指令的控制器。

2、所谓“阻塞操作”是指任何导致事件处理循环显著停止一段时间的操作

3、操作可以由于各种原因成为阻塞操作

三、线程池

1、对NGINX而言,线程池执行的就是配货服务的功能。它由一个任务队列和一组处理这个队列的线程组成。

2、当工作进程需要执行一个潜在的长操作时,工作进程不再自己执行这个操作,而是将任务放到线程池队列中,任何空闲的线程都可以从队列中获取并执行这个任务。

3、磁盘的读取速度不能比磁盘产生数据的速度快。

4、“从磁盘读取”这个操作通常是阻塞操作最常见的示例,但是实际上,NGINX中实现的线程池可用于处理任何不适合在主循环中执行的任务。

5、线程池中执行的两个基本操作是大多数操作系统中的read()系统调用和Linux中的sendfile()。

Nginx 学习笔记(六)引入线程池 性能提升9倍相关推荐

  1. 全是精髓!也许是最完美的“Nginx学习笔记”了,阿里云高工“365”天手写!

    前言 "Nginx",一个高性能的HTTP和反向代理web服务器,Nginx因为内存少.并发能力强的特性,深受虚拟机主机提供商的欢迎,可以支持高达50000个并发连接数的响应.Ng ...

  2. Nginx 学习笔记

    Nginx 学习笔记 文章目录 Nginx 学习笔记 1.Nginx 的简介 1.1正向代理 1.2反向代理 1.3负载均衡 1.4动静分离 1.5Nginx的安装 1.6Nginx的常用命令 1.7 ...

  3. nginx学习笔记-01nginx入门,环境搭建,常见命令

    nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...

  4. mysql连接池永驻_【学习笔记】Oracle连接池 数据库常驻连接池(Database Resident Connection Pool)案例介绍...

    天萃荷净 分享一篇关于应用程序与Oracle数据库连接的连接方法介绍,数据库常驻连接池(Database Resident Connection Pool)案例介绍 一.介绍常驻连接池(Databas ...

  5. 浅析Nginx中各种锁实现丨Nginx中手写一个线程池丨Nginx中反向代理,正向代理,负载均衡,静态web服务丨C++后端开发

    学会nginx中锁的使用,让你对锁豁然开朗 1. 反向代理,正向代理,负载均衡,静态web服务 2. nginx 中 accept 锁实现 自旋锁 信号量 3. nginx 中 线程池 实现以及详解虚 ...

  6. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  7. nginx 学习笔记(2) nginx新手入门

    这篇手册简单介绍了nginx,并提供了一些可以操作的简单的工作.前提是nginx已经被安装到你的服务器上.如果没有安装,请阅读上篇:nginx 学习笔记(1) nginx安装.这篇手册主要内容:1. ...

  8. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  9. 深度学习笔记(25) 池化层

    深度学习笔记(25) 池化层 1. max pooling 2. mean pooling 3. pooling 超参 1. max pooling 除了卷积层,卷积网络也经常使用池化层来缩减模型的大 ...

最新文章

  1. Spring Boot Admin 2.5.5 发布,支持在线重启服务
  2. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1
  3. 一分钟了解spark的调优
  4. 【原创】Java实现手机号码归属地查询
  5. block里的self、weakSelf、strongSelf
  6. 最小二乘法幂函数C语言,跪求最小二乘法幂函数C 语言程序
  7. linux php项目启动_Linux上实现Node.js项目自启动
  8. 解决gensim报错AttributeError: type object ‘Word2Vec‘ has no attribute ‘load_word2vec_format‘
  9. 苹果锤完Facebook 又轮到谷歌了
  10. Flowable入门系列文章187 - 高并发性的UUID ID生成器和多租户
  11. 开心网游戏界面Html
  12. Springboot入门手册
  13. Linux网络编程-UDP单播服务客户端代码实现
  14. 快速判断工作簿中是否存在指定工作表
  15. baep matlab,matlab实验指导书全文(简化).doc
  16. JavaScript面向对象实现-坦克大战(附前端全套学习路线)
  17. 内部比赛Cnbsp;Convertnbsp;Kilometersnbsp;tonbsp;…
  18. 关闭依赖jar包日志
  19. spring boot服务器内存不足排查
  20. 计算机电脑不关机设置密码,电脑怎样灭屏而不关机

热门文章

  1. 《ABAQUS 6.14超级学习手册》——1.2 ABAQUS分析模块
  2. Oracle 12C -- 清空audit记录
  3. WebGL 3D 工业隧道监控实战
  4. vivado烧写bin文件到flash 中
  5. 菜鸟的DUBBO进击之路(八):配置抽离导致${jdbc.url}被当成字符串处理
  6. 丢失/root目录导致命令行-bash-4.1#,解决方法
  7. javascript知识点
  8. shell中大于、等于、小于
  9. 在windows8 上安装framework 3.5
  10. jquery treeview 树形插件