php - FastCGI 并发。IIS 如何创建新进程?
问题描述
为了测试 IIS 如何创建新的 FastCGI 进程,我创建了一个简单的示例。
- 测试.php
<?php
echo 'start:' . date("d.m.Y H:i:s", time());
sleep(10);
echo ';finish: ' . date("d.m.Y H:i:s", time());
?>
- 开始.bat
@echo off
set url=http://localhost:8093/test.php
for /l %%i in (1,1,20) do (
start %url%
)
Bat 文件几乎同时执行带有睡眠功能的 test.php 20 次。但结果有点出乎意料。
pid: 11716;start: 24.12.2020 12:18:16;finish: 24.12.2020 12:18:26
pid: 11716;start: 24.12.2020 12:18:26;finish: 24.12.2020 12:18:36
pid: 11716;start: 24.12.2020 12:18:36;finish: 24.12.2020 12:18:46
pid: 3660;start: 24.12.2020 12:18:36;finish: 24.12.2020 12:18:46
pid: 1316;start: 24.12.2020 12:18:36;finish: 24.12.2020 12:18:46
pid: 14788;start: 24.12.2020 12:18:36;finish: 24.12.2020 12:18:46
pid: 15752;start: 24.12.2020 12:18:37;finish: 24.12.2020 12:18:47
pid: 8836;start: 24.12.2020 12:18:37;finish: 24.12.2020 12:18:47
pid: 11716;start: 24.12.2020 12:18:46;finish: 24.12.2020 12:18:56
pid: 3660;start: 24.12.2020 12:18:46;finish: 24.12.2020 12:18:56
pid: 1316;start: 24.12.2020 12:18:46;finish: 24.12.2020 12:18:56
pid: 14788;start: 24.12.2020 12:18:46;finish: 24.12.2020 12:18:56
pid: 15752;start: 24.12.2020 12:18:47;finish: 24.12.2020 12:18:57
pid: 8836;start: 24.12.2020 12:18:47;finish: 24.12.2020 12:18:57
pid: 11716;start: 24.12.2020 12:18:56;finish: 24.12.2020 12:19:06
pid: 3660;start: 24.12.2020 12:18:56;finish: 24.12.2020 12:19:06
pid: 1316;start: 24.12.2020 12:18:56;finish: 24.12.2020 12:19:06
pid: 14788;start: 24.12.2020 12:18:56;finish: 24.12.2020 12:19:06
pid: 15752;start: 24.12.2020 12:18:57;finish: 24.12.2020 12:19:07
pid: 8836;start: 24.12.2020 12:18:57;finish: 24.12.2020 12:19:07
因此,最初 IIS 只创建了一个进程 - 11716,它执行了两次,然后 IIS 又创建了 5 个进程,这 6 个进程中的每一个都执行了 3 次。测试前我设置参数MaxInstances=200,threadPool参数MaxProcesses=100。
谁能解释一下这种行为以及如何配置 IIS 使请求并行运行?
解决方案
推荐阅读
- angular - 如何使用对象类型的 @Input() 值填充表单?
- linux - 将 X-API-Key 传递给 curl 标头
- node.js - React Native - 清除异步存储脚本
- android - 动画仅在三星 Galaxy Note 8 中崩溃
- python - 使用 exec() 定义从现有变量名派生的名称的新变量
- python - Python Numpy 定义函数时出现未知语法错误
- vuetify.js - 如何使用 vvuetify v-icon vue router 打开新窗口?
- extendscript - 无法使用 Extendscript 从列表框中删除多个 Comp
- xaml - 当 IsPaneToggleButtonVisible 为 false 时,NavigationView 不显示 PaneHeader
- c++ - 投射到子对象进行测试 - 此代码是否符合标准?