Chinaunix首页 | 论坛 | 博客
  • 博客访问: 70344
  • 博文数量: 17
  • 博客积分: 1461
  • 博客等级: 上尉
  • 技术积分: 163
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-05 13:31
文章分类

全部博文(17)

文章存档

2011年(1)

2010年(16)

分类: 系统运维

2010-06-03 16:57:51

    今天去一家公司面试,被问到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) |
给主人留下些什么吧!~~