设为首页
收藏本站
淘宝精选
开启辅助访问
登录
注册后绑定Q登陆
手机号登录
手机号码,快捷登录
微信登录
QQ登录
快捷导航
发布信息
搜索
搜索
支持我们
使用96IE来支持论坛
首页
任务
勋章
签到
签到等于每天打卡
导读
邀请码
装机必备的软件、去广告版
装机助手
装机网
精品操作系统下载
免费邀请码
记录
Doing
每日签到
本版
帖子
用户
PCOS技术网
»
首页
›
≡技术交流≡
›
电脑技术交流
›
谈谈Apache的优化
返回列表
发新帖
查看:
608
|
回复:
2
谈谈Apache的优化
[复制链接]
鹰翔
鹰翔
当前离线
积分
4953
IP卡
狗仔卡
签到天数: 770 天
连续签到: 0 天
[LV.10]逍遥海仙III
发表于 2009-9-14 16:57
|
广东
|
显示全部楼层
|
阅读模式
今天说说Apache的优化。为什么要优化?因为服务器资源不够用。资源有很多方面,但根据木桶理论,只要有一种资源不够用,整个服务器的性能就会受到影响(所谓瓶颈)。
服务器资源
那么服务器的资源包括哪些?对于网站来说主要是CPU、TCP连接数这两者。 CPU表现在任务数上,在Linux下使用平均负载(loadavg)来衡量。可通过以下命令来查看(参考这篇文章):
cat /proc/loadavg
对于单CPU的服务器,loadavg高于1,表明任务队列出现了等待,CPU忙不过来了。超过2以上就会明显感到性能降低了。
TCP连接数可通过以下命令查看:
netstat -ant | grep :80 | wc -l
如果要实时监控服务器资源,可参考OpenNMS项目。
注1:内存不算,低廉的价格使得网站服务器很少有因为内存不够而down掉的。
注2:CPU%是瞬时的CPU使用率,通常无法反映出整体负载。
Apache配置命令
Apache在资源方面的配置命令主要有以下几条。
KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
StartServers 最初启动时启动多少个服务器进程
MinSpareServers 空闲服务器进程的最小数
MaxSpareServers 空闲服务器进程的最大数
MaxRequestsPerChild 每个子进程处理的最大请求数
KeepAlive
前三个KeepAlive相关的指令用来设置持续连接。通常都是每个HTTP请求对应一个TCP连接,但对于一个包含许多图片的网页来说,客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求,减少TCP连接建立次数,提高响应速度。
这种情况下,应当通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量,以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小发挥不了持续连接的作用;太大了,持续连接迟迟不断,浪费TCP连接数不说,更糟糕的是
系统
中的 httpd 进程数目会因此不断增加,使得系统负载升高,甚至会导致服务器失去响应。
但是在处理动态网页请求时,由于用户很少会瞬间请求多个动态网页(一般都是打开页面之后阅读好半天才点下一页),此时打开KeepAlive无异于浪费TCP连接数。
结论就是,放动态网页的就 KeepAlive Off 以提高吞吐量,放静态内容如图片、js代码等就 KeepAlive On 以减少TCP连接建立次数。
但一个Apache只能有一种 KeepAlive 设置,怎么办?很简单,弄两台服务器,一个专门放脚本,一个专门放图片。
服务器进程数
再说说下面的 StartServers、MinSpareServers、MaxSpareServers。 StartServers基本不用修改,因为Apache会自动调节子进程数。 MinSpareServers和MaxSpareServers是空闲子进程数目,何为空闲子进程?假设某一时刻系统中共有30个httpd进程,其中一个是父进程,20个在处理请求,那么空闲子进程数就是9个。
空闲进程少了,大量的突发请求会使服务器疲于进程创建,降低效率;而太多反而会增加系统进程数,增大系统负载。
实际上,默认值已足够处理一般的突发请求,所以除非是流量特别特别巨大的网站,否则不要修改这些设置。
就算流量特别特别大,也是通过负载平衡系统来降低每台服务器的访问量,不会修改这几个值。
MaxRequestsPerChild
这个值设置子进程在处理多少个请求之后自动结束。这个选项是用来防止进程由于内存泄漏等使用内存过多。一般默认值即可。
总结
说来说去其实最重要的还是 KeepAlive 的设置,而性能调节也就是调整 KeepAlive、KeepAliveTimeout 值。
PCOS系统下载站:http://zhuangji.wang
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
抢沙发
千斤顶
显身卡
鹰翔
鹰翔
当前离线
积分
4953
IP卡
狗仔卡
签到天数: 770 天
连续签到: 0 天
[LV.10]逍遥海仙III
楼主
|
发表于 2009-9-14 16:57
|
广东
|
显示全部楼层
谈谈Apache的优化
今天说说Apache的优化。为什么要优化?因为服务器资源不够用。资源有很多方面,但根据木桶理论,只要有一种资源不够用,整个服务器的性能就会受到影响(所谓瓶颈)。
服务器资源
那么服务器的资源包括哪些?对于网站来说主要是CPU、TCP连接数这两者。 CPU表现在任务数上,在Linux下使用平均负载(loadavg)来衡量。可通过以下命令来查看(参考这篇文章):
cat /proc/loadavg
对于单CPU的服务器,loadavg高于1,表明任务队列出现了等待,CPU忙不过来了。超过2以上就会明显感到性能降低了。
TCP连接数可通过以下命令查看:
netstat -ant | grep :80 | wc -l
如果要实时监控服务器资源,可参考OpenNMS项目。
注1:内存不算,低廉的价格使得网站服务器很少有因为内存不够而down掉的。
注2:CPU%是瞬时的CPU使用率,通常无法反映出整体负载。
Apache配置命令
Apache在资源方面的配置命令主要有以下几条。
KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
StartServers 最初启动时启动多少个服务器进程
MinSpareServers 空闲服务器进程的最小数
MaxSpareServers 空闲服务器进程的最大数
MaxRequestsPerChild 每个子进程处理的最大请求数
KeepAlive
前三个KeepAlive相关的指令用来设置持续连接。通常都是每个HTTP请求对应一个TCP连接,但对于一个包含许多图片的网页来说,客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求,减少TCP连接建立次数,提高响应速度。
这种情况下,应当通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量,以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小发挥不了持续连接的作用;太大了,持续连接迟迟不断,浪费TCP连接数不说,更糟糕的是系统中的 httpd 进程数目会因此不断增加,使得系统负载升高,甚至会导致服务器失去响应。
但是在处理动态网页请求时,由于用户很少会瞬间请求多个动态网页(一般都是打开页面之后阅读好半天才点下一页),此时打开KeepAlive无异于浪费TCP连接数。
结论就是,放动态网页的就 KeepAlive Off 以提高吞吐量,放静态内容如图片、js代码等就 KeepAlive On 以减少TCP连接建立次数。
但一个Apache只能有一种 KeepAlive 设置,怎么办?很简单,弄两台服务器,一个专门放脚本,一个专门放图片。
服务器进程数
再说说下面的 StartServers、MinSpareServers、MaxSpareServers。 StartServers基本不用修改,因为Apache会自动调节子进程数。 MinSpareServers和MaxSpareServers是空闲子进程数目,何为空闲子进程?假设某一时刻系统中共有30个httpd进程,其中一个是父进程,20个在处理请求,那么空闲子进程数就是9个。
空闲进程少了,大量的突发请求会使服务器疲于进程创建,降低效率;而太多反而会增加系统进程数,增大系统负载。
实际上,默认值已足够处理一般的突发请求,所以除非是流量特别特别巨大的网站,否则不要修改这些设置。
就算流量特别特别大,也是通过负载平衡系统来降低每台服务器的访问量,不会修改这几个值。
MaxRequestsPerChild
这个值设置子进程在处理多少个请求之后自动结束。这个选项是用来防止进程由于内存泄漏等使用内存过多。一般默认值即可。
总结
说来说去其实最重要的还是 KeepAlive 的设置,而性能调节也就是调整 KeepAlive、KeepAliveTimeout 值。
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
鹰翔
鹰翔
当前离线
积分
4953
IP卡
狗仔卡
签到天数: 770 天
连续签到: 0 天
[LV.10]逍遥海仙III
楼主
|
发表于 2009-9-14 16:57
|
广东
|
显示全部楼层
谈谈Apache的优化
今天说说Apache的优化。为什么要优化?因为服务器资源不够用。资源有很多方面,但根据木桶理论,只要有一种资源不够用,整个服务器的性能就会受到影响(所谓瓶颈)。
服务器资源
那么服务器的资源包括哪些?对于网站来说主要是CPU、TCP连接数这两者。 CPU表现在任务数上,在Linux下使用平均负载(loadavg)来衡量。可通过以下命令来查看(参考这篇文章):
cat /proc/loadavg
对于单CPU的服务器,loadavg高于1,表明任务队列出现了等待,CPU忙不过来了。超过2以上就会明显感到性能降低了。
TCP连接数可通过以下命令查看:
netstat -ant | grep :80 | wc -l
如果要实时监控服务器资源,可参考OpenNMS项目。
注1:内存不算,低廉的价格使得网站服务器很少有因为内存不够而down掉的。
注2:CPU%是瞬时的CPU使用率,通常无法反映出整体负载。
Apache配置命令
Apache在资源方面的配置命令主要有以下几条。
KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
StartServers 最初启动时启动多少个服务器进程
MinSpareServers 空闲服务器进程的最小数
MaxSpareServers 空闲服务器进程的最大数
MaxRequestsPerChild 每个子进程处理的最大请求数
KeepAlive
前三个KeepAlive相关的指令用来设置持续连接。通常都是每个HTTP请求对应一个TCP连接,但对于一个包含许多图片的网页来说,客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求,减少TCP连接建立次数,提高响应速度。
这种情况下,应当通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量,以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小发挥不了持续连接的作用;太大了,持续连接迟迟不断,浪费TCP连接数不说,更糟糕的是系统中的 httpd 进程数目会因此不断增加,使得系统负载升高,甚至会导致服务器失去响应。
但是在处理动态网页请求时,由于用户很少会瞬间请求多个动态网页(一般都是打开页面之后阅读好半天才点下一页),此时打开KeepAlive无异于浪费TCP连接数。
结论就是,放动态网页的就 KeepAlive Off 以提高吞吐量,放静态内容如图片、js代码等就 KeepAlive On 以减少TCP连接建立次数。
但一个Apache只能有一种 KeepAlive 设置,怎么办?很简单,弄两台服务器,一个专门放脚本,一个专门放图片。
服务器进程数
再说说下面的 StartServers、MinSpareServers、MaxSpareServers。 StartServers基本不用修改,因为Apache会自动调节子进程数。 MinSpareServers和MaxSpareServers是空闲子进程数目,何为空闲子进程?假设某一时刻系统中共有30个httpd进程,其中一个是父进程,20个在处理请求,那么空闲子进程数就是9个。
空闲进程少了,大量的突发请求会使服务器疲于进程创建,降低效率;而太多反而会增加系统进程数,增大系统负载。
实际上,默认值已足够处理一般的突发请求,所以除非是流量特别特别巨大的网站,否则不要修改这些设置。
就算流量特别特别大,也是通过负载平衡系统来降低每台服务器的访问量,不会修改这几个值。
MaxRequestsPerChild
这个值设置子进程在处理多少个请求之后自动结束。这个选项是用来防止进程由于内存泄漏等使用内存过多。一般默认值即可。
总结
说来说去其实最重要的还是 KeepAlive 的设置,而性能调节也就是调整 KeepAlive、KeepAliveTimeout 值。
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册后绑定Q登陆
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页