今天去一家公司面试,被问到Apache中KeepAlive参数是什么意思?如何设置这个值?
感觉当时回答的不是很准确,回来后上网查了下,终于弄明白了!记录一下!
KeepAlive值是个布尔值,有两个值On和Off,简单来说,当值为On的时候,用户发起HTTP请求后,Apache不会立刻关闭这个连接,当还有用户发起HTTP请求时,还会使用这个连接,什么时候关闭呢?看KeepAliveTimeout这个值,当时间达到KeepAliveTimeout这个值的时候才会关闭连接。当值为Off的时候,用户发起HTTP请求后,Apache会立刻关闭这个连接,缺点就是每次访问都要执行一次TCP握手,增加了CPU的开销。
如何设置这个值呢?
当网站静态页面居多的时候,适合把这个值设置为On;当网站多为动态页面时,适合把这个值设置为Off。可以简单的算一下,假设KeepAlive超时时间为5秒,网站每秒有50个用户访问,此时Apache的总进程数为50*5=250个,假设每个进程占用内存为4M,那么Apache的总内存占用为250*4M=1000M,1G的内存就这样没了,这还是只有50个连接的情况,如果把KeepAlive的值设置为Off,网站每秒有50个用户访问,每个用户连续访问3个页面,每个页面占用4M内存,那么Apache的内存占用为150*3*4=600M,可以看出,节省了大量内存!
阅读(4061) | 评论(0) | 转发(0) |