Varnish的系统优化
2009-09-08 23:08
176 查看
原贴:http://joyleley.spaces.live.com/blog/cns!E162F872A7449BAC!158.entry
(一)参数优化.("telnet localhost 5000"后,输入"param.show"可以看到所有系统运行中的参数.输入"param.set thread_pools 8"可以调整参数.)
thread_pools 8 [pools]
thread_pool_max 2000 [threads]
thread_pool_min 100 [threads]
thread_pool_timeout 10 [seconds]
#这四个参数要一起看.
#thread_pools是系统sess进入处理的pools.理想的情况下是一个cpu一个pool,如果pools过多会消耗cpu时间和mem.但是,pools多一点,处理并发的能力会更强.
#thread_pool_min是每个pools的最小threads数.当pools侦测到可处理sess后,就分配给所属的空余threads处理.
#thread_pool_max是所有pools所属的threads总和数的上限值.这个值不要设置的太高,一般是系统期望峰值的90%.太高了会发生"pile-ups",不知道怎么翻译,是不是"拥挤"?
#thread_pool_timeout是thread的过期时间.当threads数大于thread_pool_min的时候,thread的空闲超过thread_pool_timeout时间,thread就被释放.
listen_depth 1024 [connections] #tcp链接队列size.默认是512,适当调大一点,处理并发能力增强.
lru_interval 3600 [seconds]
#优雅时间参数(不知道是不是应该这么翻译),意思就是,如果一个object,在内存中超过了这个时间还没有被重用,则把这个对象移动到
LRU(Least Recently
Used)队列中.一种普遍的cache算法.个人理解,提高这个时间,会减少object在内存中的copy,以提高运行效率.
(二)VCL优化.
vcl_recv: set req.grace = 30s;
vcl_fetch: set obj.grace = 30s;
(三)系统环境优化
ulimit -HSn 131072
ulimit -HSc unlimited
(四)tcp/ip网络环境参数优化
修改"/etc/sysctl.conf".(官网上说,这个配置可以支持4000-8000 req/s的压力.)
net.ipv4.ip_local_port_range = 1024 65536
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_fin_timeout = 3
net.ipv4.tcp_tw_recycle = 1
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
执行优化:
sysctl -p
(一)参数优化.("telnet localhost 5000"后,输入"param.show"可以看到所有系统运行中的参数.输入"param.set thread_pools 8"可以调整参数.)
thread_pools 8 [pools]
thread_pool_max 2000 [threads]
thread_pool_min 100 [threads]
thread_pool_timeout 10 [seconds]
#这四个参数要一起看.
#thread_pools是系统sess进入处理的pools.理想的情况下是一个cpu一个pool,如果pools过多会消耗cpu时间和mem.但是,pools多一点,处理并发的能力会更强.
#thread_pool_min是每个pools的最小threads数.当pools侦测到可处理sess后,就分配给所属的空余threads处理.
#thread_pool_max是所有pools所属的threads总和数的上限值.这个值不要设置的太高,一般是系统期望峰值的90%.太高了会发生"pile-ups",不知道怎么翻译,是不是"拥挤"?
#thread_pool_timeout是thread的过期时间.当threads数大于thread_pool_min的时候,thread的空闲超过thread_pool_timeout时间,thread就被释放.
listen_depth 1024 [connections] #tcp链接队列size.默认是512,适当调大一点,处理并发能力增强.
lru_interval 3600 [seconds]
#优雅时间参数(不知道是不是应该这么翻译),意思就是,如果一个object,在内存中超过了这个时间还没有被重用,则把这个对象移动到
LRU(Least Recently
Used)队列中.一种普遍的cache算法.个人理解,提高这个时间,会减少object在内存中的copy,以提高运行效率.
(二)VCL优化.
vcl_recv: set req.grace = 30s;
vcl_fetch: set obj.grace = 30s;
(三)系统环境优化
ulimit -HSn 131072
ulimit -HSc unlimited
(四)tcp/ip网络环境参数优化
修改"/etc/sysctl.conf".(官网上说,这个配置可以支持4000-8000 req/s的压力.)
net.ipv4.ip_local_port_range = 1024 65536
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_fin_timeout = 3
net.ipv4.tcp_tw_recycle = 1
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
执行优化:
sysctl -p
相关文章推荐
- Varnish的系统优化
- Windows系统优化工具集
- windows2003系统优化
- J2EE系统优化的几点体会(一、对象)
- 系统优化软件-windows保镖
- Varnish - 高效的 HTTP accelerator
- Windows 2003系统优化技巧
- 使用Varnish代替Squid做网站缓存加速器的详细解决方案
- 系统优化
- Windows XP 系统优化-百度转载
- 几篇关于Varnish的文章
- SQL server 系统优化--通过执行计划优化索引(1) (转)
- Ubuntu8.04系列二-系统优化篇
- 转贴自 : Varnish反向代理伺服器安裝配置
- 手把手教你架设无盘服务器, 与制作XP系统优化下
- 使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]
- Windows server 2008系统优化
- 教你一招:Windows2003系统优化大有玄机
- win7体验及一些系统优化技巧
- 使用Varnish代替Squid做网站缓存加速器的详细解决方案