python - 你能解释一下为什么在运行多个请求时打开了很多 TCP 连接吗?
问题描述
当我运行大量同步请求时,我试图理解为什么会有很多打开的 TCP 连接。
在 Windows 中,我使用 Python 3 在控制台中打开 HTTP 测试服务器:
python -m http.server 9000
在 Git Bash 控制台中,我使用循环启动了许多请求:
for i in $(seq 1000); do curl http://localhost:9000/; done
在请求期间,我看到很多与 curl 客户端和 Python 服务器相关的 TCP 连接。如您在屏幕截图中所见,打开的 TCP 连接数会随着时间的推移而增加。一段时间后,连接关闭。
为什么连接仍然打开?
编辑1:
使用一个 curl 命令,我可以在 2 分钟内看到一个打开的连接netstat -n | grep :9000
:
TCP 127.0.0.1:64301 127.0.0.1:9000 TIME_WAIT
更改 TTL 不会更改打开请求的持续时间。
解决方案
推荐阅读
- python-3.x - 我不能让python检查一个单词是否在字符串列表中
- mongodb - mongodb服务器可以重启但是状态报错
- python - 无法调用 model.build() 。“ValueError:如果您的层不支持浮点类型输入,则无法通过调用 `build` 来构建模型。”
- aws-cdk - 无法扫描 aws cdk 中的 dynamo db 表
- reactjs - 新更新后,React 自动导入在 vs 代码中不起作用
- c# - 热巧克力认证连接用户
- verilog - 为什么 SR 锁存器输出总是 X?
- c# - 使用 In DocuSign api 发送 PDF 以供签名
- c++ - 虚拟继承自两个类的数组大小
- node.js - 父查找方法中的猫鼬 findOne 方法