摘要: 1.PHP-FPM是阻塞模型,假设你用 php-fpm,你的 php 程序中需要向外部提供接口请求。那么每一个 Worker 进程在执行这些网络 I/O 的时候,是不是都阻塞了?假设你的 php-fpm 最大进程数有 500 个,那么同时进来了 500 个请求,是不是都阻塞在了网络 I/O 上了?那 阅读全文
posted @ 2019-12-02 19:26 苍山雪洱海月 阅读(496) 评论(0) 推荐(0) 编辑
摘要: select, poll, epoll 都是I/O多路复用的具体的实现,这三个是不同时期先后顺序出来的,也是为了改进性能。 I/O多路复用这个概念被提出来以后, select是第一个实现 (1983 左右在BSD里面实现的)。 1.select 被实现以后,暴露出了很多问题。 select 会修改传 阅读全文
posted @ 2019-12-02 19:03 苍山雪洱海月 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 先总结:nginx是异步非阻塞工作方式,平时设置nginx的worker进程数时,设置的和CPU核数相同比较合适。 我们平时在设置Nginx 的Worker进程数时,一般设置与CPU核数相同,这是为什么?为什么几个进程就可以实现高并发呢? 因为进程数与并发数不存在很直接的关系,主要还是取决serve 阅读全文
posted @ 2019-12-02 18:35 苍山雪洱海月 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 基本原理 Zend/Opcode/Extensions PHP有两大类模块:Zend引擎、扩展层 1. Zend引擎将PHP源文件 解释为一系列操作码(opcode), 然后循环 执行操作码; 2. 扩展层是一组函数、类库和流,PHP使用它们来执行一些 特定功能的操作,例如数据库功能、网络功能。 ​ 阅读全文
posted @ 2019-12-02 18:10 苍山雪洱海月 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1.CGI是什么? 是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现 阅读全文
posted @ 2019-12-02 18:03 苍山雪洱海月 阅读(276) 评论(0) 推荐(0) 编辑