apache2.2.1 mod_jk 两个apache-tomcat-6.0.20 负载均衡
昨天突然页面访问慢,半天不响应,用下面的命令
watch -n 1 -d "pgrep httpd|wc -l" 一看httpd 当前的进程数已经达到了最大值
于是查看 apache 的工作模式是 ./apachectl -l
是 prefork模式
一。修改/apache/conf/extra 目录下的 httpd-mpm.conf文件修改最大连接数量
修改前:最大连接数是 150
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
修改后:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 8000
MaxClients 8000
MaxRequestsPerChild 20
</IfModule>
二,修改workers.properties
worker.list=jkstatus, loadbalancer ,tomcat1 ,tomcat2
worker.maintain=60
worker.jkstatus.type=status
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.redirect=tomcat2
worker.tomcat1.socket_keepalive=True
worker.tomcat1.socket_timeout=60
worker.tomcat1.retries=20
worker.tomcat1.connection_pool_size=1000
worker.tomcat1.connection_pool_minsize=100
worker.tomcat1.connection_pool_timeout=60
worker.tomcat1.recovery_options=3
worker.tomcat2.port=8109
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.redirect=tomcat1
worker.tomcat2.socket_keepalive=True
worker.tomcat2.socket_timeout=60
worker.tomcat2.retries=20
worker.tomcat2.connection_pool_size=1000
worker.tomcat2.connection_pool_minsize=100
worker.tomcat2.connection_pool_timeout=60
worker.tomcat2.recovery_options=3
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2
worker.loadbalancer.retries=20
~
三,修改tomcat的配置文件server.xml
<Connector port="8009" maxHttpHeaderSize="8192"
maxThreads="1000" minSpareThreads="30" maxSpareThreads="50"
acceptCount="1000"
enableLookups="false" redirectPort="8443" connectionTimeout="60000"
disableUploadTimeout="true" protocol="AJP/1.3" URIEncoding="GBK"/>
修改之前这俩都是 150
然后重启两个tomcat,重启apache ,然后在用命令 watch -n 1 -d "pgrep httpd|wc -l" 查看当前httpd 进程数
不一会就回增到1k ,2k ,以上,查了半天原因,网上搜了半天也没找到原因,偶尔看了一个帖子,有个人也碰到过,后来
经查是mysql数据库的原因,由于我们的是程序先读缓存文件,然后异步在生成要访问的文件,所以在apache重启后,访
问页面特别快,所有就没往数据库这方面想,感觉数据库不会有什么问题
但是httpd进程还是一直增加,只有重启apache才能缓解,这个问题困扰了一天,周一早晨来后,有同事说动态接口一直
访问不了,但是别的度缓存文件的页面却很流畅,我本地起了下系统,访问动态接口,看日志一直 不动,连数据库那卡住
了,这次意识到真是数据库出了问题,赶紧联系db 查看数据库,原来数据库hang住了。
哎,之前一直不知道是啥原因,看来httpd激增不一定就是apache配置的问题,也应该从程序或数据库方面考虑。
分享到:
相关推荐
apache httpd 工具
rpm -Uvh --force --nodeps *.rpm httpd rpm安装包
在linux下面安装apache服务器httpd源代码
httpd.ini是指wordpress程序在windows虚拟主机上的伪静态设置。...如果你用的是你自己的独立服务器,那么请到网上查找资料,由于frustigor没有找到相关的权威文件,不敢妄言,以下的内容也只作为参考。
用buildroot编译生成httpd和PHP解释器,在arm板上配置httpd和PHP的解释器的配置文件,是httpd支持PHP
Apache HTTPD cluster config
apche httpd.conf找不到,就直接下载使用在这个文件,httpd.conf 配置文件
LAMP apache编译 httpd-2.2.22
#参见<url:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置...
apache 配置文件httpd.conf,要运行php就要在该文件中进行相应的配置
httpd-ssl.conf
httpd.conf 详解 httpd.conf 详解 httpd.conf 详解
centos7.6下httpd的离线安装包,适用centos7.5,centos7.4,centos7.8等
安装步骤如下: rpm -ivh httpd-2.4.6-93.el7.centos.x86_64.rpm
httpd拒绝主机方式
apache httpd php wordpress
Apache服务器的本地配置是一件令人头疼的事,无法访问一般是由于配置文件的不正确导致的,这是一份可以在Mac系统中正常运行的配置文件。
在Linux中安装HTTPD服务 Apache http Server的安装
centos7环境下编译安装httpd,亲测有效,如有问题可留言
# yum -yinstall httpd //安装httpd会自动安装一下依赖包: apr apr-util httpd-tools mailcap # rpm -qi httpd Name : httpd Version : 2.4.6 Release : 18.el7.centos Architecture: x86_64 Install Date: Mon 11 ...