http:keep-alive 是保持 php 资源打开还是释放所有资源?

发布于 2024-10-17 07:53:17 字数 136 浏览 2 评论 0原文

我在 apache 服务器上使用 http keep-alive,
假设我要求它保持连接打开长达 2 分钟...
现在,如果连接创建并空闲一分钟,php 所持有的资源将
像 mysql 连接、文件句柄等,将被释放还是它们也会继续存在?

I am using http keep-alive on a apache server,
Lets say I ask it to keep the connections open upto 2 minutes...
Now, if the connection is created and idle for a minute, will the resources held by php,
like mysql connections, file handles, etc., will be freed or will they survive too ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天邊彩虹 2024-10-24 07:53:17

确认的。 Keep-Alive 是一种防止代价高昂的 TCP 连接协商的机制。您的 PHP 进程/线程正常启动,并且需要像往常一样分配所有资源。

对于高负载情况,明智的做法是保持保持活动时间不要太长:所有连接请求都会争夺服务器的空闲连接插槽。如果所有插槽都被保持活动连接占用,其他用户可能无法连接。

但是,与往常一样,最佳的插槽数量和良好的保持活动时间取决于您的具体负载情况。

Confirmed. Keep-Alive is a mechanism to prevent costly TCP connection negotiation. Your PHP process/thread starts as normal and needs to allocate all resources as usual.

Regarding a high load situation, it might be wise to even keep the keep-alive period not too high: All connection requests compete for free connection slots of your server. If all slots are in-use by keep-alive connections, other users might not connect.

But, as usual, the optimal amount of slots and good keep-alive period depends on your specific load situation.

流云如水 2024-10-24 07:53:17

不,http keep-alive 节省了tcp 连接的资源。 php 和 mysql 甚至不会知道该连接已打开,当您发出下一个请求时,它会很快,因为花费时间解析 ip 地址,并且打开新的 tcp 连接将被保存,所有这些都保留在 apache 中。

no , http keep-alive save resources of tcp connection . php and mysql will not even aware of that connection is open , when you will make next request it would be fast because time spend resolving ip address , and opening new tcp connection will be saved all this things remain with apache.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文