Java -- 每日一问:后台服务出现明显“变慢”,谈谈你的诊断思路?

news2025/1/12 1:47:47

image.png

典型回答

首先,需要对这个问题进行更加清晰的定义:

  • 服务是突然变慢还是长时间运行后观察到变慢?类似问题是否重复出现?
  • “慢”的定义是什么,我能够理解是系统对其他方面的请求的反应延时变长吗?

第二,理清问题的症状,这更便于定位具体的原因,有以下一些思路:

  • 问题可能来自于 Java 服务自身,也可能仅仅是受系统里其他服务的影响。初始判断可以先确认是否出现了意外的程序错误,例如检查应用本身的错误日志。对于分布式系统,很多公司都会实现更加系统的日志、性能等监控系统。一些 Java 诊断工具也可以用于这个诊断,例如通过 JFR(Java Flight Recorder),监控应用是否大量出现了某种类型的异常。
    如果有,那么异常可能就是个突破点。
    如果没有,可以先检查系统级别的资源等情况,监控 CPU、内存等资源是否被其他进程大量占用,并且这种占用是否不符合系统正常运行状况。

  • 监控 Java 服务自身,例如 GC 日志里面是否观察到 Full GC 等恶劣情况出现,或者是否 Minor GC 在变长等;利用 jstat 等工具,获取内存使用的统计信息也是个常用手段;利用 jstack 等工具检查是否出现死锁等。

  • 如果还不能确定具体问题,对应用进行 Profiling 也是个办法,但因为它会对系统产生侵入性,如果不是非常必要,大多数情况下并不建议在生产系统进行。

  • 定位了程序错误或者 JVM 配置的问题后,就可以采取相应的补救措施,然后验证是否解决,否则还需要重复上面部分过程。

你的朋友是不是也在准备面试呢?你可以“请朋友读”,把今天的题目分享给好友,或许你能帮到他。

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

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

相关文章

【计算机考研必备常识】24考研你开始准备了吗?

前言 23考研只剩下一个多月了,准备 【24考研】 的小伙伴是否有一丝丝焦虑了呢? 对于考研相关的常识问题,你又是否有了解呢?考研全流程?计算机考研考什么?学硕和专硕怎么选 … 一系列考研相关的常识问题博…

JWT和token是什么?如何利用token进行身份验证?

什么是token?什么是JWT?如何基于token进行身份验证? 我们都知道session信息需要保存一份在服务器端。这种方式会带来一些麻烦,比如需要我们保证保存session信息服务器的可用性、不适合移动端等。 有没有一种不需要自己存放sessi…

五、DMSQL

五、数据类型与操作符和常用DMSQL语句 1、数据类型与操作符介绍 达梦数据库支持的数据类型有很多,具体如下: 其中: 常规数据类型 数值数据类型字符数据类型多媒体数据类型日期时间数据类型 一般日期时间类型时区数据类型时间间隔数据类型 B…

辰奕智能在创业板过会:计划募资约4亿元,约有五成来自境外

11月18日,深圳证券交易所创业板披露的信息显示,广东辰奕智能科技股份有限公司(下称“辰奕智能”)获得上市委会议通过,即IPO过会。据贝多财经了解,辰奕智能于2021年12月31日在创业板递交上市申请材料。 本次…

【论文阅读】社交网络传播最大化问题-01

问题定义:构建传播最大化模型(最大化末态时的激活节点数量 )& 确定最具影响力节点 思考问题: 影响节点影响力的因素?有向图和无向图的模型构建区别? 定义参数: 节点影响力的取值范围节点…

Thinkphp6.0.x反序列化漏洞复现

漏洞起点 起因: 在做 [安洵杯 2019]iamthinking 时发现是 thinkphp6 的反序列化,那么就去复现一下呗。 看了其他大佬的 wp,上面说 tp6 的反序列化漏洞的后半段利用和 tp5.2.x 是一样的,也就是 __toString 函数上。 第一步相信大家都知道&a…

USV合伙人反思FTX:应以更长远的眼光看待Web3

潜力博主推荐,点击上面关注博主 ↑↑ FTX的事件动摇了许多人的信心。那么,最大的加密货币交易所之一是如何迅速崩溃的?为什么加密世界的类似崩溃似乎一直在发生? 在这个时候,我们要对Web3整个行业,有一个更…

FA-PEG-N3,Folic acid-PEG-Azide,叶酸-聚乙二醇-叠氮一种叶酸PEG试剂

叶酸PEG试剂叶酸-聚乙二醇-叠氮,其英文名为Folic acid-PEG-Azide(FA-PEG-N3),它所属分类为Azide PEG Folic acid(FA) PEG。 叶酸-PEG-叠氮的的分子量均可定制,有:FA-PEG-N3 5000、叶…

感受Vue (1) —— Hello world

虽然一直定位自己是个后端,但是我一直钟情于好看精致的界面,我觉得前端界面是门艺术并结合编程的美。爱美之心,人皆有之,不要怪我,也不能怪我。 vue 在前端框架中,世界范围内能排第三,也是很不简…

UE5笔记【零】快捷键

F:快速聚焦到所选中的对象。 Q:选择 W:移动、 E:旋转、 R:伸缩。 End:物体落在它下方的物体上。 组合键: 鼠标左键或者右键:E是跳跃,Q是蹲下。 Ctrl L:控制太阳高…

[附源码]SSM计算机毕业设计在线学习网站的设计与实现JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

使用docker 注册runner

获取gitlab 信息 需要从gitlab中获取两个信息,一个是gitlab的域名,一个是需要注册runner的token gitalb 的runner按照范围可以有三种 全局类型即整个gitlab 的项目都可使用的runnergroup类型:即当前group中的项目可使用的runner,不同group之…

1-4 Linux 标准目录结构FHS

文章目录前言标准目录结构/ (根目录)/bin/boot/dev/etc/home/lib/media/mnt/opt/run/sbin/srv/tmp/proc/sys/var/lostfound/root/usr前言 Linux操作系统中的目录(文件夹)结构遵循Linux基金会定义和维护的Linux文件系统层次标准(FHS)。有了定义良好的标准,用户和软件…

【VC】【全局修改windows系统环境变量】 实现和原理详解

文章目录导读开发环境实现通过procexp打开1836进程的环境变量列表修改注册表(手动/编码实现)广播WM_SETTINGCHANGE消息再次通过procexp打开1836进程的环境变量列表也可以通过《系统属性 > 环境变量》来查看是否生效文章小结参考资料导读 一直都很好奇…

[附源码]java毕业设计水果商城

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

十三、Mysql的存储引擎

Mysql的存储引擎十三、Mysql的存储引擎一、什么是存储引擎二、存储引擎的常见功能三、存储引擎的种类及特性对比1、存储引擎的种类2、常见存储引擎的特性对比3、查看存储引擎四、InnoDB存储引擎1、InnoDB存储引擎介绍2、InnoDB存储引擎的优点3、InnoDB与MyISAM的区别4、存储引擎…

PTA题目 三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”? 输入格式: 输入在一行中给出一个不超过1000的正整数N。 输出格式: 在一行中输…

【网页设计】基于HTML在线图书商城购物项目设计与实现

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

java面试强基(6)

面向对象三大特征了解吗? 封装 ​封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。如果属性不想被外界访问,我们…

【滤波跟踪】基于扩展卡尔曼滤波的无人机路径跟踪附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …