性能测试--线程的监控

1.线程的状态

1.1.线程的5种状态

java的线程总共有5种状态,如下:

  • * 新建:new 【新建之后不启用都是new】
  • * 运行:runnable
  • * 等待:waitting(无限期等待),timed waitting(限期等待)
  • * 阻塞:blocked
  • * 结束:terminated

1.2.线程不同状态的转换

        线程不同状态之间的转换如下所示:

2.java线程监控

2.1.通过Jvisualvm监控

        Jvisualvm是jdk自带的工具,如果想要用Jvisualvm进行监控tomcat需要在tomcat的bin目录下编辑catalina.sh文件在文件的第二行加入以下配置,如下图所示。

        编辑命令:

vi catalina.sh

        配置信息: 

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=你的ip"

        配置好了之后需要重启tomcat,然后在cmd控制台中输入:Jvisualvm,可以打开VisualVM页面,如下图所示。

         在VisualVM页面右击远程添加远程主机,然后添加jmx连接,在原连接后添加端口10086(在tomcat的catalina.sh文件中配置的端口),在没有问题的情况下可以添加成功,如下图所示。

        添加成功后打开连接,可以在监控页面看到对之前tomcat的监控数据报表,也可以切换到线程监控查看线程的运行情况,如下图所示。

 遇到问题:

1、无法连接

解决方法:开放10086端口,因为我的是云服务器,在安全组中进行配置即可。

2、添加JVM连接的时候系统提示“错误无法使用 service:jmx:rmi:///jndi/rmi://39.98.1**.***:10086/jmxrmi 连接到 39.98.1**.***:10086”,如下图所示。

        原因:tomcat在启动的时候还启动了其它几个端口,我们可以通过lsof命令进行查看,可以看到随机启动了一些监听端口,如下图所示。

lsof -i | grep 30342(我的tomcat的进程号)

         解决方法:将随机启动的端口在阿里云服务器安全组中进行开放,但是下次启动的时候不一定是这几个端口,另一种方法是将一个范围段的端口都在安全组中进行开放,如10086/65535,这个范围比较大不够安全,可以自行进行控制。

2.2.通过jstack工具来监控

        在linux中我们通过命令可以查看到tomcat当前的进程号,可以看到当前tomcat的进程号为30342,如下图所示。

ps -ef | grep tomcat

想要使用jstack可以通过命令:

#jstack <pid>
jstack 30342

         在实际使用过程中为了便于查看以及保证结果的准确性,我们可以将结果进行存储,并且存储多个文件,然后将文件下载到windows文件,通过手动搜索每个进程状态进行分析,单个文件检查完毕后可以到其它文件中检查看是否存在同样问题,然后得出结论。

jstack 30342>01.txt
jstack 30342>02.txt
jstack 30342>03.txt
jstack 30342>04.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LaTex 模板 - 东北师范大学申研申博推荐信

文章目录 NENU-Letter-Template项目地址示例特性项目结构如何使用main.texletterContent.tex 如何编译方式 1 &#xff1a;在线编译方式 2 &#xff1a;本地编译 参考 NENU-Letter-Template NENU’s recommendation letter template. 东北师范大学推荐信模板 项目地址 GitHu…

构建响应式网站的HTML5和CSS3最新技术

构建响应式网站需要利用HTML5和CSS3的最新技术&#xff0c;以确保网站在各种设备和屏幕尺寸上都能提供良好的用户体验。以下是一些关键技术和技巧&#xff1a; HTML5 技术 语义化标签&#xff1a; 使用语义化标签如 <header>、<nav>、<section>、<articl…

网络爬虫原理及其应用

你是否想知道Google 和 Bing 等搜索引擎如何收集搜索结果中显示的所有数据。这是因为搜索引擎对其档案中的所有页面建立索引&#xff0c;以便它们可以根据查询返回最相关的结果。网络爬虫使搜索引擎能够处理这个过程。 本文重点介绍了网络爬虫的重要方面、网络爬虫为何重要、其…

【学习笔记】Webpack5(Ⅱ)

Webpack 3、高级篇 3.1、提升开发体验 —— SourceMap 3.2、提升打包速度 3.2.1 HotModuleReplacement 3.2.2 OneOf 3.2.3 Include / Exclude 3.2.4 Cache 3.2.5 Thread 3.3、减少代码体积 …

小苯的01背包easy(枚举,位运算,思维推导)

文章目录 题目描述输入格式输出格式样例输入1样例输出1样例输入2样例输出2提交链接提示 解析参考代码 题目描述 小苯有一个容量为 k k k 的背包&#xff0c;现在有 n n n 个物品&#xff0c;每个物品有一个体积 v v v 和价值 w w w&#xff0c;他想知道在体积不超过 k k …

ACM实训冲刺第十八天

统计元音 代码 需要注意的是getchar()和gets(s) #include<stdio.h> #include<string.h> int main(){//测试实例个数int n;scanf("%d",&n) ;char s[100];getchar();while(n--){gets(s);int cnta0,cnte0,cnti0,cnto0,cntu0;for(int j0;j<strlen(…

蓝桥杯杨辉三角

PREV-282 杨辉三角形【第十二届】【蓝桥杯省赛】【B组】 &#xff08;二分查找 递推&#xff09;&#xff1a; 解析&#xff1a; 1.杨辉三角具有对称性&#xff1a; 2.杨辉三角具有一定规律 通过观察发现&#xff0c;第一次出现的地方一定在左部靠右的位置&#xff0c;所以从…

Math对象是什么?有什么用?

Math对象是JavaScript的一个内置对象&#xff0c;包含了一些常用的数学方法和属性。它提供了一些数学运算的函数&#xff0c;可以通过调用这些函数来执行各种数学计算。 Math对象的一些常用方法包括&#xff1a; 1. Math.abs(x)&#xff1a;返回一个数的绝对值。 2. Math.ceil…

浅析OceanBase数据库:特点、优势与应用场景

随着数据量的不断增长和业务需求的不断变化&#xff0c;数据库技术在现代信息系统中的地位变得越来越重要。蚂蚁集团推出的OceanBase数据库&#xff0c;凭借其高性能、高可用性和高扩展性&#xff0c;成为了业内备受关注的明星产品。本文将从技术角度&#xff0c;浅浅的解析Oce…

FTP协议——BFTPD安装(Linux)

1、简介 BFTPD&#xff0c;全称为 Brutal File Transfer Protocol Daemon&#xff0c;是一个用于Unix和类Unix系统的轻量级FTP服务器软件。它的设计理念是提供一个简单、快速、安全的FTP服务器解决方案&#xff0c;特别适用于需要低资源占用的环境。 2、步骤 环境&#xff1…

C语言基础-如何避免内存泄漏

在C语言中&#xff0c;内存泄漏是一个常见且严重的问题&#xff0c;因为它可能导致程序消耗过多的内存资源&#xff0c;最终耗尽系统资源&#xff0c;导致程序崩溃或系统变得不稳定。为了避免内存泄漏&#xff0c;程序员需要仔细管理分配的内存&#xff0c;并确保在适当的时候释…

使用Golang调用腾讯云对象存储(COS)

文章目录 一、腾讯云COS对象存储创建1.1 创建存储桶2.1 存储桶测试 二、使用Golang调用腾讯云对象存储&#xff08;COS&#xff09;2.1 安装COS SDK2.2 初始化COS客户端2.3 上传文件2.4 下载文件2.5 列出存储桶中的对象2.6 整体代码示例 本文档介绍如何使用Golang调用腾讯云对象…

正在直播:Microsoft Copilot Studio 新增支持Copilot代理、Copilot扩展等多项功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

java连接ldap实现查询

文章目录 一、项目背景二、准备工作三、验证结果四、易错点讲解易错点1&#xff1a;java: 无法访问org.springframework.ldap.core.LdapTemplate易错点2&#xff1a;java: 无法访问org.springframework.context.ConfigurableApplicationContext易错点3&#xff1a;[LDAP: error…

思科、华为、华三、Juniper路由协议优先级汇总

Part1思科路由协议管理距离默认值 路由来源默认值已连接的接口0静态路由1增强型内部网关路由协议 (EIGRP) 汇总路由5外部边界网关协议 (BGP)20内部 EIGRP90IGRP100OSPF110IS-IS&#xff08;中间系统到中间系统&#xff09;115路由信息协议 (RIP)120Exterior Gateway Protocol …

Python——字典数据存入excel

# 字典结果写入excel表保存 df pd.DataFrame(my_dict) # dict转DataFrame result_excel df.T # 转置 print(result_excel) result_excel.to_excel(save_path) # 写入excel

C++:STL—算法

C:STL—算法 算法 算法 STL&#xff08;Standard Template Library&#xff09;中的算法是为了操作数据集合&#xff08;如容器&#xff09;而设计的函数模板集合&#xff0c;它们提供了丰富的功能和灵活的接口&#xff0c;可以用于对数据进行排序、查找、遍历等操作。STL中的…

STM32 学习——1. STM32最小系统

这是一个最小系统的测试&#xff0c;LED灯会进行闪烁。选用PC13口&#xff0c;因为STM32F103C8T6 硬件开发板中&#xff0c;这个端口是一个LED 1. proteus8.15 原理图 2. cubemx 新建工程 3. keil 代码 while (1){HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);HAL_Delay(100);…

WGCAT工单系统如何配置通知

WGCAT工单系统可以配置邮件通知 只要配置了邮件通知&#xff0c;那么一旦我们账号有新的工单需要处理&#xff0c;就会接受到邮件通知 除了邮件之外&#xff0c;还可以配置其他方式的通知&#xff0c;比如微信钉钉短信等方式&#xff0c;参考如下 https://www.wgstart.com/wgc…

机器学习(五) -- 监督学习(5) -- 线性回归1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;4&#xff09; -- 集成学习方法 - 随机森林 下篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;5&#xff09; -- 线性回归2 前言 tips&#xff1…