标签:install 监控tomcat 不一致 cal template https 端口 客户端 byte
Tomcat 性能优化比如内存,硬盘
利用缓存和压缩 在nginx前端
做动静分离 缓解tomcat压力
搭建集群 采用nginx请求分流
优化文件: /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="
server
Xms6000M
Xmx6000M
Xss512k
XX:NewSize=2250M
XX:MaxNewSize=2250M
XX:PermSize=128M
XX:MaxPermSize=256M
XX:+AggressiveOpts
XX:+UseBiasedLocking
XX:+DisableExplicitGC
XX:+UseParNewGC
XX:+UseConcMarkSweepGC
XX:MaxTenuringThreshold=31
XX:+CMSParallelRemarkEnabled
XX:+UseCMSCompactAtFullCollection
XX:LargePageSizeInBytes=128m
XX:+UseFastAccessorMethods
XX:+UseCMSInitiatingOccupancyOnly
Duser.timezone=Asia/Shanghai
Djava.awt.headless=true"
参数的详细配置,参考:http://blog.51cto.com/zhongliang/2101918
这里着重讲解tomcat参数的优化:server.xml文件,
关闭DNS查询、配置最大并发等参数。
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
当然这些值都不是越大越好,需要根据实际情况来设定。可以基于测试的基础上来不断的调优分析。
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" 连接超时
redirectPort="8443"
maxThreads="500" 最大线程 就是最大并发数
minSpareThreads="20" 最小空闲线程数
acceptCount="100" 队列大小 等待处理的
disableUploadTimeout="true" 类似于Apache中的keeyalive一样
enableLookups="false" 关闭DNS查询
URIEncoding="UTF-8" />
maxSpareThreads : 最大空闲线程数
acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection
压缩compression=”on” compressionMinSize=”2048″ compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
禁用DNS查询
调整线程数(线程池)
maxThreads="600" 最大线程数
minSpareThreads="100" 初始化时创建的线程数
maxSpareThreads="500" 一旦创建的线程越过这个值,Tomcat就会关闭不再需要的socket线程
acceptCount="700" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
在windows端安装jdk包,找到以下命令
在c:\ Program Files\jdk\bin\jconsole.exe 监控和管理控制台
通过IP:端口连接到监控和JAVA控制台
在c:\ Program Files\jdk\bin\jvisualvm.exe
通过IP:端口连接 管理工具
在tomcat服务器上修改配置文件
catalina.sh中加入配置,放置在#!/bin/bash标签下
vim /usr/local/tomcat8/bin/catalina.sh
!/bin/bash
CATALINA_OPTS="$CATALINA_OPTS
Djava.rmi.server.hostname=10.204.3.7
Dcom.sun.management.jmxremote
Dcom.sun.management.jmxremote.port=12345
Dcom.sun.management.jmxremote.authenticate=true
Dcom.sun.management.jmxremote.ssl=false
Dcom.sun.management.jmxremote.pwd.file=/usr/local/jdk1.7/jre/lib/management/jmxremote.password"
配置权限文件
cd /usr/local/jdk1.7/jre/lib/management/
cp jmxremote.password.template jmxremote.password
vi jmxremote.password
zhongliang 123456 # 用户名zhongliang 密码249765270
chmod 600 jmxremote.password
重启tomcat服务,开启监听端口12345
连接jconsole和jvisualvm
输入远程主机:端口 10.204.3.7:12345
选择文件—》添加JMX..连接—》10.204.3.7:12345
CPU使用情况 堆,垃级回收 抽样器
实时线程数
注意:在控制台上执行GC清理的时候,会出现前端断连
zabbix编译的时候,指定--enable-java
yum安装的时候,yum install zabbix-java
vim zabbix_server.conf
JavaGateway=192.168.3.14
JavaGatewayPort=10052
StartJavaPollers=5
第三方工具,cmdline-jmxclient
http://crawler.archive.org/cmdline-jmxclient/
安装httpd
安装tomcat
编译生成mod_jk。
下载tomcat-connectors-1.2.42-src.tar.gz包
Wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
tar xzvf tomcat-connectors-1.2.42-src.tar.gz
cd tomcat-connectors-1.2.42/native
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/
配置。
在/usr/local/apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties。
vi mod_jk.conf#######################
添加以下内容:
指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache/conf/workers.properties
Where to put jk logs
JkLogFile /usr/local/apache/logs/mod_jk.log
Set the jk log level [debug/error/info]
JkLogLevel info
Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1
.
vi workers.properties###########################
添加以下内容:
Defining a worker named worker1 and of type ajp13
worker.list=worker1
Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
.
Vim httpd.conf#############
DirectoryIndex index.jsp index.html
添加index.jsp
LoadModule jk_module modules/mod_jk.so
加载mod_jk.so模块
Include /usr/local/apache/conf/mod_jk.conf
引入配置文件
将tomcat和apache的发布目录设置成一致。建立站点文件index.jsp
T_INSTALL_DIR=/usr/local/tomcat
Port=`export 8005+1`
复制多个tomcat到tomcat1 tomcat2 tomcat3
修改对应每个发布目录的端口
安装nginx
tar zxvf nginx-1.7.8.tar.gz //解压
cd nginx-1.7.8
./configure --with-http_stub_status_module --with-http_ssl_module//启动server状态页和https模块
make && make install
修改nginx.conf配置文件,添加一个location
location ~ \.(jsp|do)$ {
index index.jsp;
proxy_pass http://192.168.74.129:8081; //来自jsp或者do的后缀的请求交给tomcat处理</span>
proxy_redirect off;
proxy_set_header Host $host; //后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; //允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 90; //nginx跟后端服务器连接超时时间
proxy_read_timeout 90; //连接成功后,后端服务器响应时间
proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 6 32k; //proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k;//高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
日志文件
/usr/local/tomcat/logs/catalina.out
【注】:tomcat查端口时正常,服务正常,但访问后,服务消失,
问题原因:因为配置文件不正确,导致报错,服务自动停止
解决方法:检查配置文件
例如:配置文件中没有定义发布目录,但是发布目录中的ROOT已被删除,会导致此类问题发生
15.1 cannot execute binary file
/usr/local/tomcat8/bin/catalina.sh: line 433: /usr/local/jdk1.8/bin/java: cannot execute binary file
[root@tomcat01 local]# java --version
bash: /usr/local/jdk1.8/bin/java: cannot execute binary file
原因:软件版本与系统版本不一致
15.2 insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.
tomcat部署jenkins启动报错:
insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.
解决该问题方法,修改tomcat/conf/context.xml文件,增加资源最大可缓存的大小:
<Resources
cachingAllowed="true"
cacheMaxSize="102400"
/>
标签:install 监控tomcat 不一致 cal template https 端口 客户端 byte
原文地址:http://blog.51cto.com/zhongliang/2339299