我在apache服务器上使用http keep-alive,
可以说我要求它保持连接打开2分钟......
现在,如果连接被创建并空闲一分钟,那么资源将由php持有,
像mysql连接,文件句柄等,将被释放还是它们会存活下来?
答案 0 :(得分:3)
确认。 Keep-Alive是一种防止昂贵的TCP连接协商的机制。您的PHP进程/线程正常启动,需要像往常一样分配所有资源。
对于高负载情况,即使保持活动期间不要太高也可能是明智的:所有连接请求都会竞争服务器的空闲连接插槽。如果保持活动连接正在使用所有插槽,则其他用户可能无法连接。
但是,像往常一样,最佳插槽数量和良好的保持活动时间取决于您的特定负载情况。
答案 1 :(得分:1)
不,http keep-alive节省了tcp连接的资源。 php和mysql甚至都不知道那个连接是打开的,当你发出下一个请求它会很快因为时间花在解析ip地址上,并且打开新的tcp连接将保存所有这些东西仍然是apache。