jconsole观察分析Java程序的运行,进行排错调优
2019独角兽企业重金招聘Python工程师标准>>>
jsconsole非授权远程连接
-Djava.rmi.server.hostname=172.16.10.218 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
linux运行定时任务程序 报错如下:
Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: =mail.06taobao.com
解决:hostname =wangfw-smarttrip-dev-8.novalocal 没有对应一个ip地址,在/etc/hosts中添加127.0.0.1 =wangfw-smarttrip-dev-8.novalocal
授权连接可以看看这篇文章:
http://www.linuxidc.com/Linux/2015-02/113420.htm
性能分析
下面说说如何分析,如何使用这六个标签
概述: Displays overview information about the Java VM and monitored values.
内存: 显示内存使用信息
线程: 显示线程使用信息
类: 显示类装载信息
*VM摘要:*显示java VM信息
MBeans: 显示 MBeans.
以上这些介绍大家可以看下这篇博客详细介绍
http://jiajun.iteye.com/blog/810150
这里主要讲解下根据jsconsole线程提供的堆栈信息检查判断性能瓶颈
背景如下:
这里两天做下单的性能测试发现,在优化Thrfit接口参数以及调优了jvm参数之后,最好的tps就是在80左右,无法再往上提升了;
Thrift 默认socket连接轮休线程数,以及逻辑处理线程数,所以有时候还是需要改下对应的默认参数的,我们项目组优化了这两个参数之后,tps直接翻倍
/** The number of threads for selecting on already-accepted connections */public int selectorThreads = 2;/*** The size of the executor service (if none is specified) that will handle* invocations. This may be set to 0, in which case invocations will be* handled directly on the selector threads (as is in TNonblockingServer)*/private int workerThreads = 5;
以下为线程堆栈信息,下面对应指向了交易的代码;review此处代码发现,这个地方存在数据库锁,所以不管优化哪里,此处都会存在竞争关系,所以必须等待,这也就是为什么tps上不去的原因;
// 商品已售数量增加减操作;int effectRow = goodModuleDao.updateGoodsBuyRuleHadSaleNumForPackage(packageGoods.getGoodsPackageBuyRule().getId(), voucher.getMaxUseNumber());if (effectRow != 1) {logger.error("商品库存不足 voucherData" + voucherData);throw new BussinessExceptionNeedCatch(OrderModuleErrorCode.GOODS_STOCK_FINISH_ERROR);}
针对扣减库存的方式,此处由于与业务逻辑绑定在一起的,所以从整个架构来说是暂时没法修改的;必须从整体规划来解决此问题,已提供更高的吞吐量;
分享下一些服务化处理方法:
转载于:https://my.oschina.net/u/1412810/blog/753387
jconsole观察分析Java程序的运行,进行排错调优相关推荐
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- 分析java程序在运行中卡顿
一.现场程序卡顿,内存飙升分析原因 1.首先通过Top -m 分析出对应的信息,登录APP服务器和DB服务器, top 命令后按下m键,观察进程下CPU和MEM的百分比, APP服务器超高MEM ...
- Java教程:Java程序的运行过程(执行流程)分析
Java教程万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程. 本篇文章由 泉州SEO www.234yp.com 整理发布,Java教程 www.234yp.com/ ...
- java程序的运行机制详细分析
转自:http://hi.baidu.com/suny_duan/blog/item/074f9afb09f08c9b58ee901b.html JVM(Java虚拟机)一种用于计算设备的规范,可用不 ...
- Java程序的运行过程(执行流程)分析
Java 程序的运行必须经过编写.编译和运行 3 个步骤: 1.编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件. 2.编译:是指使用 Java ...
- Java占Linux超过xms,linux下分析java程序占用CPU、内存过高
一.CPU过高分析 1)使用TOP命令查看CPU.内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比.其中CPU状态中标示id的为空闲 ...
最新文章
- c# 分类 机器学习_听说你要用C#做机器学习
- PyTorch-训练
- C++总结笔记(二)——指针
- 用session实现html登录页面跳转页面跳转页面跳转,js判断登录与否并确定跳转页面的方法...
- php yii 表单title,Yii2.0-ActiveForm表单结构自定义教程
- c语言编译器储存有什么用,C编译器怎么样对内存划分和使用
- 部署ftp文件共享服务
- codeforces 258div2 B	 Sort the Array
- MAC 电脑里面的“其他”文件是什么占用了
- Mac 卸载Symantec软件
- 阿里云香港服务器配置选择帮助文档(超详细)
- linux批处理创建mysql用户_域用户和组帐户的管理之一次同时添加多个用户帐户篇...
- 使用python脚本将word文档转txt
- 【毕业设计-课程设计】-单片机电子密码锁设计
- 回顾6年深度学习算法实践和演进
- dxp中Cap,Cap2,Cap Pol的区别
- mysql解析json/数组
- matlab不连接internet激活_MATLAB R2019b 完整激活教程
- activiti学习之任务分配
- 华为ENSP无线小案例
热门文章
- 风云编程python-python网络编程(一)
- python人工智能-马哥教育官网-专业Linux培训班,Python培训机构
- python是不是特别垃圾-Python 这语言真是混乱和原始
- python多个for的执行顺序-python顺序执行多个py文件
- signature=4623c3d3408491ef6534d11dfcfda77e,作业批语架起师生情感交流的桥梁
- oauth2和jwt学习资料
- Revising Aggregations - The Count Function(集合函数-count)
- 20165212第七周学习总结
- tomcat 随windows启动
- 《高可用MySQL》2 – 单机版MySQL主从配置