Varnish的系统优化

Varnish的系统优化

优化threadobjectcache算法网络

原贴: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 RecentlyUsed)队列中.一种普遍的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的系统优化)