apache的参数调整

apache+jboss是公司应用的基本结构。但是很多参数一直没有调整过。之前做个一些调优,把很多关键的参数看了一下,单独注释了。
Timeout 180 #Timeout主要是定义了在处理一个请求时的多种超时时间,默认是300s。我们需要关注意的主要是2个。
#一个是当读缓冲区为空时,等待client段发送一个包的超时时间。另外就是当发送缓冲区满的时候,
#向客户端发送一个包后的等待确认时间。Timeout与单次请求的完成总时间毫无关系。
KeepAlive On #是否启用KeepAlive,由于应用放spanner后端,开启后可以使得spanner能和应用保持持续的连接,提高一定性能。
MaxKeepAliveRequests 100 #单个KeepAlive的连接能处理的最大请求数,可以适当调高,提高单个连接复用的效率。
KeepAliveTimeout 3 #单个keepalive的连接在指定时间内如果没有请求,就进行回收。


StartServers 10 #初始的工作进程数量
ServerLimit 50 #工作进程的最大数量
MaxClients 2500 #最大的并发访问数量,不能超过ServerLimit*ThreadsPerChild
MinSpareThreads 50 #最小的闲置线程数
MaxSpareThreads 200 #最大的限制线程数
ThreadsPerChild 50 #每个进程的最大线程数,需要注意32位的系统单个进程的能启动的线程数小于384.
MaxRequestsPerChild 10000 #每个进程能处理的最大请求数。

# mod_jk(Apache Tomcat)

worker.list=local #定义worker的名称,如果有多个可以用逗号隔开(多个时候就是一个apache对多个tomcat做负载均衡)
# 对于每个worker的属性定时使用这样的模式: worker..=
worker.local.type=ajp13 #定义协议名称
worker.local.host=localhost #因为是连本地的jboss,所以直接写localhost就行。
worker.local.port=7001 #本地tomcat ajp的端口
worker.local.lbfactor=50 #单个worker的权重,在有多个worker做负载均衡的时候此项才会有意义
worker.local.cachesize=100 #单个进程对后端的连接被当初一个连接池对待,每个进程的链接池的连接数上限。需要注意最好不要超过apache里每个进程的线程数
worker.local.cache_timeout=600 #当cachesize里连接池内的连接在关闭前被保留的时间。
worker.local.socket_keepalive=1 #在apache和后tomcat间启用tcp的KEEP_ALIVE属性,主要是在当tomcat和jk直接有防火墙的时候会把不活动的连接关闭掉,此时可以通过设置此选项。
worker.local.recycle_timeout=300 #作用其实和cache_timeout类似,但是在non-cache模式下也能使用。
#当某个请求不在一定时间内不活跃后,告诉apache关闭该ajp连接,降低此值能大大减少后端tomcat的负担。

贴一个自己改过的配置:
[text]
Timeout 10
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

<IfModule worker.c>
StartServers 10
ServerLimit 50
MaxClients 2500
MinSpareThreads 50
MaxSpareThreads 200
ThreadsPerChild 50
MaxRequestsPerChild 10000
</IfModule>

workers.properties:
# mod_jk(Apache Tomcat)

worker.list=local

worker.local.type=ajp13
worker.local.host=localhost
worker.local.port=7001
worker.local.lbfactor=50
worker.local.cachesize=25
worker.local.cache_timeout=15
worker.local.socket_keepalive=1
worker.local.recycle_timeout=10
[/text]

此条目发表在Web server分类目录。将固定链接加入收藏夹。

发表评论