今日线上机器发生服务卡顿现象,根据运维人员给的报警记录知道是那台机器出现的故障解决思路是否内存溢出是否线程跑满无法接收新请求根据这2个思路进行进一步的排查内存溢出排查内存溢出的排查步骤第一步:进程是否存活 通过命令看到,tomcat的进程存在,则说明进程是存活的,如果是内存溢出导致的宕机的话,可以在cat /var/log/messages可以看到机器是在什么时候溢出的,这样的话,我们只能从dum
jps查看java进程,可以看一下我们的java进程有没有启动;jconsolejava监视内存,线程等信息,可以查看GC的收集情况。jstat查看java某一进程内存情况jstack查看进程的线程信息jmap查看进程的堆栈信息jmap -heap堆信息visual VM...
原创 2021-09-04 10:22:43
361阅读
本文主要是以常见的线上问题进行模拟,然后介绍定位问题的方法。1.环境准备:基础环境 jdk1.8,采用 SpringBoot 框架来写几个接口来触发模拟场景,首先是模拟 CPU 占满情况2.问题列举2.1 cpu占用率较高模拟cpu占用率较高,实现方法较简单,用一个死循环占用cpu计算即可。代码模拟:/** * 模拟CPU占满 */ @GetMapping("/cpu/
服务器上部署了Java服务,出现了OutOfMemoryError,问题应该如何定位?解决思路Java服务OOM,最常见的原因为:有可能是内存分配确实过小,而正常业务使用了大量内存某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接更具体的,可以使用以下的一些工具逐一排查。一、查发生了OOM的进程工具:top方法:执行
转载 2021-06-02 16:08:58
747阅读
OOM产生的原因 太多实例化的对象无法被垃圾回收器回收,导致堆内存溢出,问题本身并难,难点是找出那个对象被实例化且无法被垃圾回收器回收,这个时候如果能查看到OOM前堆内存实例情况,就能看出那个对象占满了堆,这个时候就用到一个命令,能保留OOM的案发现场并写入到日志,命令如下: -XX:+HeapDu ...
转载 2021-08-02 22:18:00
314阅读
2评论
1、利用source-detector插件可以寻找程序中存在的js.map文件插件的安装使用教程2、在网站JS文件中用关键词寻找js.map文件3、处理Burp的HTTP历史请求时,不对js文件进行过滤,之后再全局搜索js.map利用如果使用的是source detector插件,则该插件可直接对js.map进行还原并保存。如果不使用该插件,则需要手动进行逆向还原操作,使用的工具为reverse-
功能问题,通过日志,单步调试相对比较好定位。性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。题目某服务器上部署了若干tomcat实例,即若干垂直切分的Java站点服务,以及若干Java微服务,突然
原创 2020-11-12 14:34:39
377阅读
功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。
转载 2018-09-12 15:52:00
76阅读
2评论
功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。
转载 2018-07-30 10:37:00
70阅读
2评论
一、前言:我们在⽣产环境中,程序代码、硬件、⽹络、协作软件等任⼀因素,都会引发意想不到的问题,所以排查产线问题⽐较困难,所以问题定位体现了⼀名⼯程师的基础能⼒,问题的解决则体现了⼯程师的技能素养。二、线上常见问题 如出现 (CPU占⽤率过⾼、磁盘使⽤率100%、系统可⽤内存低、服务间调⽤时间过⻓、多线程并发异常、死锁等)三、定位问题方案 :业务⽇志分析排查通常情况下,⼤部分错误信息都会在⽇志上有
转载 2024-03-11 22:55:11
90阅读
 有时候,有很多问题只有在线上或者预发环境才能发现,而线上又不能调试代码,所以线上问题定位就只能看日志、系统状态和dump线程。1)在Linux命令行下使用TOP命令查看每个进程的情况,显示如下。top - 22:27:25 up 463 days, 12:46, 1 user, load average: 11.80, 12.19, 11.79 Tasks: 113 total, 5 runni
转载 2023-08-04 09:58:22
60阅读
概述Java语言是当前互联网应用最为广泛的语言,作为一名Java程序员,当业务相对比较稳定之后平常工作除了coding之外,大部分时间(70%-80%)是会用来排查突发或者周期性的线上问题。 排查线上问题是具有一定技巧或者说是经验规律的,排查者如果对业务系统了解的越深入,那么相对来说定位也会容易一些。 不管怎么说,掌握Java服务线上问题排查思路并能够熟练排查问题常用工具/命令/平台是每一个Jav
转载 2023-07-18 22:44:34
20阅读
笑死,面试还会这样问?
原创 2022-12-31 10:31:32
10000+阅读
我经历过凌晨3点被报警叫醒的慌乱,也体会过定位难题的煎熬。90%的线上问题都源于"三个不知道":不知道哪慢
一个线上问题是如何从定位到解决的?设计埋点埋点就是你要监控啥,你必须在程序开启时设置一些参数来辅助监控,例如把日志输出到哪里,便于另外的监控系统监控。例如 -XX:+PrintGCDetails -Xloggc:/home/xx.log 形成的LOG文件启动参数nohup java ${DEBUG_OPTS} ${JAVA_OPTS} -jar ${WORK_DIR}/abc-1.0-relea
1、环境的差异,传统模式下的部署方式大都基于vm,出现环境的差异是不可避免的,如今的技术先进了很多,docker容器化足以支持环境的差异问题,不过这个也是一个比较优先的方案。
转载 2023-07-25 09:32:29
48阅读
利用java反射排查一次线上问题(确定问题问题定位) 背景hive 用的 1.1.0版本(其实这个版本bug挺多,包括执行计划串列的等等问题吧,建议大家如果选1.x版本用1.2.2吧),一下提到的代码部分如无特殊说明都是hive-1.1.0版本。前段时间写一个hive sql 预估资源的服务(根据sql返回其读取的行数及所读文件(表)的大小,在运行时给其指定合理资源的大小,
转载 2023-08-24 15:47:09
47阅读
Arthas(阿尔萨斯) 能为你做什么?Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个
java线上服务问题排查1、业务日志相关如果应用系统出现异常,一般都会在业务日志中体现统计当天业务日志中ERROR出现数量:egrep ERROR --color logname | wc -l ,如果错误数量过大,一般都是有问题的查看日志中ERROR后10行具体报错:egrep -A 10 ERROR logname | less ,或 -C 10 查看ERROR前后10行日志Java中,所有异
pidstat 命令详解 pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获 ...
转载 2021-10-15 09:47:00
237阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5