tomcat 调优

tomcat 调优

修改文件 conf/server.xml

Tomcat访问量大的情况下, 经常出现问题,调用别人接口很慢时,tomcat会一直堆积,因为没有配置maxThreads=“3000”,默认只有200,线程数配置的太小。

所以导致这tomcat经常告警,出问题。

浏览器访问:
http://192.168.0.30:8080/manager

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" maxThreads="3000" acceptCount="1000" />
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
配置tomcat内存 及jmx监控tomcat
修改文件 bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.0.30 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

JAVA_OPTS="-Xms4096m -Xmx4096m"  ####配置4G内存
cygwin=false
darwin=false
os400=false

ps aux|grep tomcat
/userdata/java8/bin/java -Djava.util.logging.config.file=/userdata/apache-tomcat-8.0.5/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms4096m -Xmx4096m -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.0.30 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.endorsed.dirs=/userdata/apache-tomcat-8.0.5/endorsed -classpath /userdata/apache-tomcat-8.0.5/bin/bootstrap.jar:/userdata/apache-tomcat-8.0.5/bin/tomcat-juli.jar -Dcatalina.base=/userdata/apache-tomcat-8.0.5 -Dcatalina.home=/userdata/apache-tomcat-8.0.5 -Djava.io.tmpdir=/userdata/apache-tomcat-8.0.5/temp org.apache.catalina.startup.Bootstrap start

bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.0.209 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote.rmi.port=18888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=/userdata/apache-tomcat-8.0.5/bin/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/userdata/apache-tomcat-8.0.5/bin/jmxremote.password"
JAVA_OPTS="-Xms4096m -Xmx4096m"
cygwin=false
darwin=false
os400=false


或
bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=52.76.173.129 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote.rmi.port=18888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

jmx获取tomcat监控信息 需要配置下面这句, 参考链接:
http://blog.csdn.net/cenfei78325747/article/details/8443254
http://www.cnblogs.com/likehua/p/4087320.html

http://blog.arganzheng.me/posts/tomcat-monitor.html
http://blog.vfocus.net/archives/000470.html
https://blog.linuxeye.com/262.html

注意这个配置,不然远程的jconsole连接不上, 因为每次启动tomcat端口会随机生成,这个是固定端口
-Dcom.sun.management.jmxremote.rmi.port=18888

启动tomcat 报错

java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: ip-192-168-0-59.ap-southeast-1.compute.internal: ip-192-168-0-59.ap-southeast-1.compute.internal: unknown error

增加内网 外网 192.168.0.16   ip-192-168-0-59.ap-southeast-1.compute.internal 到hosts
cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.16    ip-192-168-0-59.ap-southeast-1.compute.internal
192.168.0.16	ip-192-168-0-16

iptables -L -n
netstat -tpnl
netstat -lntp |grep java

vim /etc/sysconfig/iptables
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 80,443,18888 -j ACCEPT
service iptables restart
jmx获取tomcat监控信息

需要配置下面这句, 参加链接
http://blog.csdn.net/cenfei78325747/article/details/8443254
http://elf8848.iteye.com/blog/471676
http://lib.csdn.net/article/linux/32843
http://blog.csdn.net/jz20110918/article/details/44059997
http://www.cnblogs.com/likehua/p/4087320.html
http://www.cnblogs.com/yezhaohui/p/3875567.html

/software/jdk1.8.0_11/bin$ ./jconsole  或 ./jvisualvm
远程进程 连接
192.168.0.16:18888
52.71.73.129:18888

hostname=192.168.0.16配置内网ip时,v-p-n连接时,内网外网都能连接上,程序jmx也能连接上。当断开v-p-n时,都连接不上
hostname=52.71.73.129配置外网ip时,v-p-n连接时,内网外网都能连接上,程序jmx也能连接上。当断开v-p-n时,内网连接不上, 外网和jmx程序能连接上
jmx设置密码连接

http://it.nfsq.com.cn/index.php/2016/04/17/linux-tomcat8-jmx-monitor/
https://my.oschina.net/manmao/blog/637930
http://www.ibm.com/support/knowledgecenter/zh/SS2L6K_6.0.0/com.ibm.jazz.repository.web.admin.doc/topics/t_server_mon_tomcat_option2.html

cd /userdata/apache-tomcat-8.0.21/bin/
cp /userdata/jre1.8.0_45/lib/management/jmxremote.password.template jmxremote.password
cp /userdata/jre1.8.0_45/lib/management/jmxremote.access jmxremote.access
chmod 600 jmxremote.access jmxremote.password
vim jmxremote.password
monitorRole  autoTestTomcat
controlRole  autoTestTomcat

vim catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=52.71.73.129 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote.rmi.port=18888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=jmxremote.access -Dcom.sun.management.jmxremote.password.file=jmxremote.password"


tomcat manager密码配置
http://chat.xxx.im/manager

username="liang" password="liang_123456"
conf/tomcat-users.xml
其他的tomcat后台管理用户密码是一样的
tomcat-users.xml
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="liang" password="liang_123456" roles="manager-script,admin,manager,manager-gui"/>

</tomcat-users> 它前面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是Tomcat调优面试题的答案: 1. Tomcat的缺省端口是多少,怎么修改? Tomcat的缺省端口是8080,可以通过修改server.xml文件中的Connector节点来修改端口号。 2. tomcat 有哪几种Connector 运行模式(优化)? Tomcat有三种Connector运行模式:BIO、NIO和APR。其中,BIO是传统的阻塞式I/O模式,NIO是非阻塞式I/O模式,APR是使用本地库实现的高性能模式。 3. Tomcat有几种部署方式? Tomcat有两种部署方式:WAR包部署和目录部署。WAR包部署是将应用程序打包成WAR包,然后将WAR包放到Tomcat的webapps目录下;目录部署是将应用程序解压到Tomcat的webapps目录下。 4. tomcat容器是如何创建servlet类实例?用到了什么原理? Tomcat容器在启动时会扫描web.xml文件,将其中的servlet类加载到内存中,并创建servlet实例。Tomcat使用Java反射机制来创建servlet实例。 5. tomcat 如何优化? Tomcat的优化可以从多个方面入手,包括内存调优、垃圾回收策略调优、共享session处理、添加JMS远程监控、使用专业的分析工具等。 6. 内存调优 可以通过调整JVM的内存参数来进行内存调优,例如-Xms和-Xmx参数可以分别设置JVM的初始内存和最大内存。 7. 垃圾回收策略调优 可以通过调整JVM的垃圾回收策略来进行垃圾回收策略调优,例如使用CMS垃圾回收器或G1垃圾回收器。 8. 共享session处理 可以使用集中式session管理方案,例如使用Redis等缓存服务器来存储session数据,从而实现session共享。 9. 添加JMS远程监控 可以使用JMX来进行远程监控,例如使用JConsole等工具来监控Tomcat的运行状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond阿亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值