排除汤姆猫错误的步骤
ps-ef | grep java或jps –lvm 查看java pid进程
netstat –lntup | grep java 查看java 端口有没有启动
查看 tomcat 日志 tailf /application/tomcat/logs/catalina.out
show-busy-java-threads.sh 打印系统排名前五的java进程,查看那个进程占用内存高。
tomcat java远程监控
下载jkd http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在C:\Program Files\Java\jdk1.8.0_31\bin下 找 jconsole.exe
开启tomcat远程监控功能
- vim /application/tomcat8_1/bin/catalina.sh +97
- CATALINA_OPTS="$CATALINA_OPTS
- -Dcom.sun.management.jmxremote
- -Dcom.sun.management.jmxremote.port=12345
- -Dcom.sun.management.jmxremote.authenticate=false
- -Dcom.sun.management.jmxremote.ssl=false
- -Djava.rmi.server.hostname=10.0.0.17"
做解析不然报错
- 需要做解析 echo "10.0.0.17 web03 " >> /etc/hosts
重启汤姆猫查看端口
- /application/tomcat8_1/bin/shutdown.sh
- /application/tomcat8_1/bin/startup.sh
- netstat -tunlp|grep 12345
- tcp6 0 0 :::12345 :::* LISTEN 24388/java
用jconsole连接
端口12345
jvisualvm远程链接
右键添加主机
右键添加jvm
zabbix 监控 tomcat
zabbix需要开启java监控
修改zabbix-server配置文件
- sed -i -e '220a JavaGateway=127.0.0.1' -e '236a StartJavaPollers=5' /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1 网关地址(本机ip地址)
StartJavaPollers=5 java线程
在服务端安装zabbix_java_gateway
需要安装jdk(openjdk)
yum 安装自动安装
启动 zabbix_java_gateway
- systemctl start zabbix-java-gateway.service
- netstat -tunlp|grep java
tomcat开启远程监控功能(每个实力都要做)
新键主机
搜索jmx 添加两默认模板
jmx连接了
Tomcat安全优化
降权启动
先杀掉java进程
[root@web03 ~]# pkill java
[root@web03 ~]# pkill java
- [root@web03 ~]# useradd tomcat 新建一个用户
- [root@web03 ~]# cp -a /application/tools/tomcat8_1 /home/tomcat/ 把测试文件复制到 home目录下
- [root@web03 ~]# chown -R tomcat.tomcat /home/tomcat/tomcat8_1/ 给文件权限
- [root@web03 ~]# su -c '/home/tomcat/tomcat8_1/bin/startup.sh 'tomcat 以tomcat用户启动
- Using CATALINA_BASE: /home/tomcat/tomcat8_1
- Using CATALINA_HOME: /home/tomcat/tomcat8_1
- Using CATALINA_TMPDIR: /home/tomcat/tomcat8_1/temp
- Using JRE_HOME: /application/jdk
- Using CLASSPATH: /home/tomcat/tomcat8_1/bin/bootstrap.jar:/home/tomcat/tomcat8_1/bin/tomcat-juli.jar
- Tomcat started.
- [root@web03 ~]# ps -ef|grep tomcat 查看tomcat进程用户
其他安全优化都在http://www.cnblogs.com/jksbaduen/p/7903539.html
Tomcat优化
上策: java 代码优化
中策: jvm 优化机制 垃圾回收机制,把不需要的内存回收。
优化jvm—就是优化垃圾回收机制
下策: 买买买加内存
下下策: 定时重启tomcat
简单的jvm优化
1G内存优化
内存给tomcat 75%左右或者 3/4
修改核心配置文件
- vim/home/tomcat/tomcat8_1/bin/ catalina.sh +97
插入下面的代码
- JAVA_OPTS="-Djava.awt.headless=true?-Dfile.encoding=UTF-8?-server?-Xms800m?-Xmx800m?-XX:NewSize=400m?-XX:MaxNewSize=400m?-XX:PermSize=400m?-XX:MaxPermSize=400m"
- server:一定要作为第一个参数,在多个CPU时性能佳
- -Xms:初始堆内存Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
- -Xmx:初始堆内存heap最大值,使用的最大内存
- 上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
- -XX:PermSize:设定内存的永久保存区域
- -XX:MaxPermSize:设定最大内存的永久保存区域
- -XX:MaxNewSize:
- -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
- +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
- -Xss:每个线程的Stack大小
- -verbose:gc 现实垃圾收集信息
- -Xloggc:gc.log 指定垃圾收集日志文件
- 、4分之一
- -XX:+UseParNewGC :缩短minor收集的时间
- -XX:+UseConcMarkSweepGC :缩短major收集的时间
重启服务
- su -c '/home/tomcat/tomcat8_1/bin/ shutdown.sh ' tomcat
- su -c '/home/tomcat/tomcat8_1/bin/ startup.sh ' tomcat