这几天一直在调整服务器设置 发现后台服务程序总是各种异常 连接本地API具体也会报网络错误 查了N多资料 发现原来是KeepAlive保持 住了 再加上后台服务程序运算过快 导致超过了连接处理速度。。。
虽然问题还要观察但是知识点先记录下来 顺便补充下 这里我觉得动态网页不一定要关闭keepalive 如果是这种运行在本地后台的服务才应该关闭 因为发送速度太快了 如果是运行在异地算上网络时间应该就保持默认即可
案例说明(来源互联网):
假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50 个独立用户访问,那么系统中Apache的总进程数就是 10 * 50 = 500 个,如果一个进程占用 4M 内存,那么总共会消耗2G内存,所以可以看出,在这种配置中,相当消耗内存,但好处是系统只处理了 50次 TCP 的握手和关闭操作。
如果关闭 KeepAlive,如果还是每秒50个用户访问,如果用户每次连续的请求数为3个,那么 Apache 的总进程数就是 50 * 3 = 150 个,如果还是每个进程占用 4M 内存,那么总的内存消耗为600M,这种配置能节省大量内存,但是,系统处理了 150 次 TCP 的握手和关闭的操作,因此又会多消耗一些 CPU 资源。
5、总结
(1)如果内存和CPU都足够,开启和关闭KeepAlive对性能影响不大。
(2)如果考虑服务器压力,如果是静态页面,大量的调用js或者图片的话,建议开启KeepAlive;如果是动态网页,建议关闭KeepAlive。
时间: 2024-12-28 14:37:40