Linux服务器教程之十二Tomcat服务器监控
目标
实现tomcatWEB服务器的监控
监控功能
1) 概述
未来通过各种监控工具(Zabbix/Grafana/Prometheus/....),监控Tomcat/java.
需要我们开启java远程监控功能(JMX remote)
2) 步骤
交给zbx就可以了(使用windows jdk连接tomcat)
*开启远程监控功能选项* | ||
---|---|---|
-Dcom.sun.management.jmxremote | 开启远程监控功能 | |
-Dcom.sun.management.jmxremote.port=12345 | 指定端口 | |
-Dcom.sun.management.jmxremote.authenticate=false | 关闭认证功能 | |
-Dcom.sun.management.jmxremote.ssl=false | 关闭ssl加密功能 | |
-Djava.rmi.server.hostname=10.0.0.9 | 写上本地网卡的ip,监听的地址. |
1 java监控命令
jps jps命令,只显示java进程. 类似于 ps -ef |grep java
jstack
jstack查看java进程内部信息,线程信息.
进程: 占空间,占系统资源,厂房.
线程: 厂房里面的工人,处理与用户的请求.
需要代码使用多线程技术. 通过ps aux 查看进程是否支持线程(是否使用多线程技术)
先过滤出java进程的pid
查看java进程的线程信息
jstack 1786 #结合JAVA 程序员看
查看java线程状态
jstack 1786 |grep -i state
jmap
jmap查看或导出jvm信息 查看jvm使用情况
jmap -heap java-pid 导出java进程的jvm内存使用情况.
jmap -heap 130741
#导出文件到家目录下
jmap -dump:format=b,file=/root/8081.hprof 130741
[root@web03 bin]# ll -h /root
总用量 27M
-rw------- 1 root root 27M 8月 21 00:47 8081.hprof
mat分析工具
jvm内存映像文件,在windows/mac/ubuntu系统下通过MemoryAnalyzer Tool (MA/MAT) 1. 需要jdk环境
-
软件包解压即可使用
-
MemoryAnalyzer.exe(英文目录 )
2 查看进程
top命令找出消耗CPU高的Java进程及其线程id: 开启线程的显示模式(top -H,或者打开top后按H)。 按cpu使用率排序(top缺省就是按CPU的使用率降序)。 记下Java进程id及其CPU高的线程id。
#1.安装下载
wget --no-check-certificate https://github.com/oldratlee/useful-scripts/archive/release.zip
#2.解压
unzip release.zip
#.3查看
sh show-busy-java-threads.sh
# 从所有运行的Java进程中找出最消耗CPU的线程(缺省5个),打印出其线程栈
show-busy-java-threads
# 缺省会自动从所有的Java进程中找出最消耗CPU的线程,这样用更方便
# 当然你可以手动指定要分析的Java进程Id,以保证只会显示你关心的那个Java进程的信息
show-busy-java-threads -p <指定的Java进程Id>
show-busy-java-threads -c <要显示的线程栈数>
# 多次执行
show-busy-java-threads <重复执行的间隔秒数> [<重复执行的次数>]
# 记录到文件以方便回溯查看
show-busy-java-threads -a <运行输出的记录到的文件>
# 指定jstack输出文件的存储目录,方便记录以后续分析
show-busy-java-threads -S <存储jstack输出文件的目录>
故障排查流程
tomcat优化
安全优化
性能优化
jvm优化
1 安全优化
2 性能优化
io模型优化.线程数量,压缩的配置.
1) io模型优化
类似于nginx同步,异步模型.
决定了tomcat如何处理数据.
总结
本文详细讲解了tomcat WEB服务器 监控及优化措施,方便开发则后续在生产环境中继续有效使用tomcat服务器,有其他需要补充技术点,开发者可以参与优化哦!感谢!
- 点赞
- 收藏
- 关注作者
评论(0)