精华内容
下载资源
问答
  • 线上问题
    2021-10-27 21:25:46

    一提到线上问题,很多测试小白要么”原则性“恐惧,要么憨憨如也,出现问题后,不知如何下手。

    本篇,通过一道常见的面试题,跟大家捋捋发生线上问题,作为测试人,该有的思路。

    首先,出现线上问题怎么办?

    万金油三步走:

    第一步,初步排查,快速恢复业务

    第二步,查找问题根本原因,彻底解决

    第三步,团队分享,避免出现类似问题

    注意,这三步中的措辞,特别是第一点——初步排查,快速恢复业务。

    切忌,不要一来就盲目定位问题,本着不找到根本原因,不彻底解决誓不罢休的思想去处理突发的线上问题,是不可取的。

    出现线上问题,最重要的是快速恢复业务

    你可以先检查检查CPU、内存、网络IO、磁盘IO等,看看有无明显的抖动,比如CPU过高,可以尝试重启。接着查看调用情况,判定是依赖系统的问题,还是自身系统的问题。如果是依赖系统的问题,有降级方案的优先做降级处理,无降级方案的马上联系依赖系统负责人协同解决。如果是自身系统问题,优先判断数据库类问题,有慢查询,就先kill掉,重启数据库,访问量不足,就先做扩容或者限流。再查查fullGC,如果fullFC过多,先重启服务,再通过DUMP内存找对象,修复并上线。

    你可以看到,重启大法真的香,是快速恢复业务的一种方式。但这种方式,治标不治本。

    治本是在快速恢复业务之后,定位问题彻底解决和经验总结。

    比如,刚刚提到,若是数据库慢查询,快速恢复业务,可kill掉慢查询,重启数据库。虽然业务恢复了,但它是短暂的恢复,你还得继续定位。你定位到问题原因是新加的表索引不够,那你得马上加上索引,发布上线,并在事后开个会或者做个组内总结,聊聊库表设计的问题,聊聊上线方案的问题等,避免再出现类似问题。

    其实,在生产环境,引起大面积故障,导致系统不可用的问题一般是依赖系统故障、数据库故障、程序问题导致内存不足引发fullGC,这三大类。再细分点讲,数据库慢查、死锁、连接数不够,redis有大key,fullGC过多,线程DUMP,内存DUMP,MQ消费积压,这些是常见的线上问题,也可以说,是绝大部分问题。

    这些内容,每个都可以开一篇专题聊聊,故此篇文章不再拓展。

    作为测试,你可以不深入它们,但你一定得了解它们,或者说,你可以把他们作为你进阶提升的课程表,挨个去学习。

    一如既往,做个总结

    在中大型公司,以上这些,都是通用的知识点。出现线上问题,实操几次,自然而言就懂了。

    发现问题、定位问题、解决问题。有一道目标准则,1分钟内发现问题,5分钟内定位问题,10分钟内解决问题。

    更多相关内容
  • 线上问题调查常用命令:linux性能检测工具,jvm性能相关
  • 博客地址: https://blog.csdn.net/lydms/article/details/125238249 Xmind整理: https://download.csdn.net/download/weixin_44624117/8561266 相关资料: ...
  • 将计算机体系结构、操作系统、性能调优、TCP/IP协议栈等核心知识浓缩为180页PPT。架构师看家功底、面试加分项
  • 转转作为一个互联网公司和电商运营平台,有独立的客服团队和问题反馈渠道,所以经常会收到一些用户的反馈和问题咨询,我们把这些统称为线上问题。做为一名新转转QA,不仅要关注业务支持,更要有全局观,从根本上做到...

    转转作为一个互联网公司和电商运营平台,有独立的客服团队和问题反馈渠道,所以经常会收到一些用户的反馈和问题咨询,我们把这些统称为线上问题。做为一名新转转QA,不仅要关注业务支持,更要有全局观,从根本上做到降本提效,下面就来看看我们是如何分析线上问题的。

    我们为什么要做线上问题分析

    1、整理用户的诉求,帮助pm优化需求,提升用户体验

    线上问题是一线客服人员跟用户交流后反馈的,无论是业务咨询还是线上问题反馈,反映的都是用户的第一诉求,整理这些用户的问题可以帮助PM去更好的优化产品设计方案。

    2、减少线上问题数量,提升效率

    帮卖侧RD是线上问题的第一接口人,每周都需要耗费大量的精力在处理线上问题上,无法专注做一件事情,效率不高。通过我们把这些问题分类整理,深度挖掘,讨论出解决方案,减少日常处理类问题的数量,让RD可以更专注的做事情。

    3、查漏补缺,更好的做好用例设计和技术方案设计

    线上问题中的逻辑问题、异常数据等问题通常是由于第三方问题或者异常场景考虑不够全面,做好线上问题分析可以帮助我们更好的做技术方案设计和用例设计。

    我们是如何做的

    每周对上周反馈的线上问题进行总结梳理,邀请相关人员参会,汇报todo的进度,对上周出现的线上问题进行分析总结、确定解决方案;确定本周todo。

    一、会前准备

    1、整理上周todo进展

    每周的todo事项都@到具体人员,根据具体责任人及时跟进todo进展,并进行归纳整理。

    2、QA对上周提交的线上问题进行初步分析,分类总结并给出建议性的解决方案,以下是对问题进行初步分类的一个基本规则:

    根据问题分类及归属等确定本周线上问题分析参会人员,通常RD、QA和PM参加,提醒相关人员关注上周出现的线上问题,并发起会议邀请。

    二、会议流程

    1、 确认上周todo进展情况

    根据上周确定的todo,详细汇报每个todo的进展,已经完成的更新进度为已完成,进行中的更新进度,无法继续推进的说明原因,如下图是部分todo的跟进情况:

    2、详细分析上周出现线上问题,对初步分析不确定的内容进一步明确

    根据初步分析的结果,对上周出现的线上问题进行详细分析和讨论,重点关注共性问题、数据问题、业务逻辑问题,明确问题根源、解决方案、日后如何避免。

    (1)产品规则&业务咨询类:

    这类线上问题产生的原因基本上都是由于客服不熟悉业务导致,一方面是因为客服人员变动较大,新进客服人员不了解业务 ;另一方面业务本身的变化也比较大,客服人员对业务变化感知滞后。这类问题提交到RD这边是无效问题,因为业务规则就是这样的,只能给客服解释规则,然后客服去回复用户,效率不高。

    针对这类问题我们的解决方案:

    • 产品侧梳理完整业务规则和常见问题给客服,保证客服遇到问题时有地方可查。

    • 把通知客服作为产品上线的一个基本步骤,当产品需求和业务规则发生改变时,保证客服能第一时间知晓,并能为用户做出解答。

    • 对一些客服无法直接查询通用性的问题,提供通用工具支持。

    • 对产品设计不合理的地方,根据用户反馈建议产品优化改进。

    (2)逻辑错误、数据问题类:

    逻辑错误或者异常数据问题通常是由于线上bug引起的,理论上不应该出现但也无法避免,针对这类问题需要做详细的分析和总结、确定问题产生根本原因和解决方案。无论QA还是RD对这一类问题都需要重点关注。

    针对这类问题我们的解决方案通常有:

    • 用例设计不仅要考虑正常流程,还要考虑异常流程

      随着项目组质量意识提高,正常业务流程基本都考虑的比较全面,但异常场景的测试还需要更多经验的积累。所以QA在用例设计时不仅要考虑正常流程,还需要综合考虑各种异常流程和边界情况的处理。

    • 窥一斑而知全身

      深层挖掘异常数据出现的原因,确定问题产生是个性还是共性的,从根本上解决问题。

    • 回归测试要走全流程

      回归测试很重要,不仅要回归主流程,更主要的是要回归完整流程,避免出现以偏概全的情况

    (3)第三方问题

    第三方问题的出现通常都是由于服务异常调用引起的,针对这类异常不论在技术方案设计还是用例设计时通常都会考虑异常情况的处理,需要双方共同协商确定一个合理的解决方案。

    (4)客服流程不清晰

    这类问题基本上是线上业务规则就是如此,用户咨询后,客服直接提交online后又没有做任何处理,通常会被置为客服流程不清晰。

    (5)运营类问题

    运营类问题通常是运营活动咨询或者其他查询类的支持,针对这类问题通常只是需要配合查询,所以针对运营类问题提供了查询工具支持,tapd也创建单独模块支持处理。

    3、确定本周todo,发送分析结论报告

    在进行第二步详细问题分析时,我们通常都会确定一些本周的todo,@到具体责任人,保证每个问题都有人跟进。

    达成效果

    通过不断梳理线上问题,推动产品优化需求落地、提供通用工具、优化第三方问题、梳理通用规则,线上问题的质量有了较大提升,线上问题的数量也明显降低,团队同学也可以更专注于某件事情的处理,不易被线上问题打扰。

    总结

    展开全文
  • 主要介绍了java开发 线上问题排查命令详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • java线上问题定位

    2021-12-21 16:03:26
    本文主要是以常见的线上问题进行模拟,然后介绍定位问题的方法。 1.环境准备: 基础环境 jdk1.8,采用 SpringBoot 框架来写几个接口来触发模拟场景,首先是模拟 CPU 占满情况 2.问题列举 2.1 cpu占用率较高 ...

    本文主要是以常见的线上问题进行模拟,然后介绍定位问题的方法。

    1.环境准备:

    基础环境 jdk1.8,采用 SpringBoot 框架来写几个接口来触发模拟场景,首先是模拟 CPU 占满情况

    2.问题列举

    2.1 cpu占用率较高

    模拟cpu占用率较高,实现方法较简单,用一个死循环占用cpu计算即可。

    代码模拟:

      /**
         * 模拟CPU占满
         */
        @GetMapping("/cpu/loop")
        public void testCPULoop() throws InterruptedException {
            int num = 0;
            while (true) {
                num++;
                if (num == Integer.MAX_VALUE) {
                    System.out.println("reset");
                }
                num = 0;
            }
    
        }

    模拟cpu占用过高的场景:

    curl localhost:80/cpu/loop

    通过执行top命令查看各个进程cpu的占用率和内存使用情况:

     通过执行top -Hp 429855 查看 Java 线程情况

    执行 printf '%x' 429873 获取 16 进制的线程 id,用于dump信息查询,结果为 68f31

    最后我们执行jstack 429855 |grep -A 20 68f31来查看下详细的dump信息.可以直接定位出问题方法和代码行

    2.2 内存泄露

    模拟内存泄露场景,使用ThreadLocal。ThreadLocal 是一个线程私有变量,可以绑定到线程上,在整个线程的生命周期都会存在,但是由于 ThreadLocal 的特殊性,ThreadLocal 是基于 ThreadLocalMap 实现的,ThreadLocalMap 的 Entry 继承 WeakReference,而 Entry 的 Key 是 WeakReference 的封装,换句话说 Key 就是弱引用,弱引用在下次 GC 之后就会被回收,如果 ThreadLocal 在 set 之后不进行后续的操作,因为 GC 会把 Key 清除掉,但是 Value 由于线程还在存活,所以 Value 一直不会被回收,最后就会发生内存泄漏。

    代码模拟:

      /**
         * 模拟内存泄漏
         */
        @GetMapping(value = "/memory/leak")
        public void leak() {
            System.out.println("模拟内存泄漏");
            ThreadLocal<Byte[]> localVariable = new ThreadLocal<Byte[]>();
            localVariable.set(new Byte[4096 * 1024]);// 为线程添加变量
        }

    我们给启动加上堆内存大小限制,同时设置内存溢出的时候输出堆栈快照并输出日志。

    java -jar -Xms500m -Xmx500m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/tmp/heaplog.log analysis-demo-0.0.1-SNAPSHOT.jar
    

    测试方法:

    1.循环触发memory/leak方法,直到出现java.lang.OutOfMemoryError异常

    2.使用命令jstat -gc pid(进程号)查看程序的gc情况。

    很明显,内存溢出了,堆内存经过42次 Full Gc 之后都没释放出可用内存,这说明当前堆内存中的对象都是存活的,有GC Roots引用,无法回收。我们可以使用Leak Suspects Report工具对保存的dump文件进行检测排查。工具会直接给你列出问题报告:

     然后会列出可疑的内存泄漏的问题,然后我们可以按照右侧的问题进行逐个的问题排查和分析。 

     

    展开全文
  • 作者|贾淑华转转作为一个互联网公司和电商运营平台,有独立的客服团队和问题反馈渠道,所以经常会收到一些用户的反馈和问题咨询,我们把这些统称为线上问题。做为一名新转转QA,不仅要关注业务支持,...

    作者|贾淑华

    转转作为一个互联网公司和电商运营平台,有独立的客服团队和问题反馈渠道,所以经常会收到一些用户的反馈和问题咨询,我们把这些统称为线上问题。做为一名新转转QA,不仅要关注业务支持,更要有全局观,从根本上做到降本提效,下面就来看看我们是如何分析线上问题的。

    我们为什么要做线上问题分析

    1、整理用户的诉求,帮助pm优化需求,提升用户体验

    线上问题是一线客服人员跟用户交流后反馈的,无论是业务咨询还是线上问题反馈,反映的都是用户的第一诉求,整理这些用户的问题可以帮助PM去更好的优化产品设计方案。

    2、减少线上问题数量,提升效率

    帮卖侧RD是线上问题的第一接口人,每周都需要耗费大量的精力在处理线上问题上,无法专注做一件事情,效率不高。通过我们把这些问题分类整理,深度挖掘,讨论出解决方案,减少日常处理类问题的数量,让RD可以更专注的做事情。

    3、查漏补缺,更好的做好用例设计和技术方案设计

    线上问题中的逻辑问题、异常数据等问题通常是由于第三方问题或者异常场景考虑不够全面,做好线上问题分析可以帮助我们更好的做技术方案设计和用例设计。

    我们是如何做的

    每周对上周反馈的线上问题进行总结梳理,邀请相关人员参会,汇报todo的进度,对上周出现的线上问题进行分析总结、确定解决方案;确定本周todo。

    一、会前准备

    1、整理上周todo进展

    每周的todo事项都@到具体人员,根据具体责任人及时跟进todo进展,并进行归纳整理。

    2、QA对上周提交的线上问题进行初步分析,分类总结并给出建议性的解决方案,以下是对问题进行初步分类的一个基本规则:

    根据问题分类及归属等确定本周线上问题分析参会人员,通常RD、QA和PM参加,提醒相关人员关注上周出现的线上问题,并发起会议邀请。

    二、会议流程

    1、 确认上周todo进展情况

    根据上周确定的todo,详细汇报每个todo的进展,已经完成的更新进度为已完成,进行中的更新进度,无法继续推进的说明原因,如下图是部分todo的跟进情况:

    2、详细分析上周出现线上问题,对初步分析不确定的内容进一步明确

    根据初步分析的结果,对上周出现的线上问题进行详细分析和讨论,重点关注共性问题、数据问题、业务逻辑问题,明确问题根源、解决方案、日后如何避免。

    (1)产品规则&业务咨询类:

    这类线上问题产生的原因基本上都是由于客服不熟悉业务导致,一方面是因为客服人员变动较大,新进客服人员不了解业务 ;另一方面业务本身的变化也比较大,客服人员对业务变化感知滞后。这类问题提交到RD这边是无效问题,因为业务规则就是这样的,只能给客服解释规则,然后客服去回复用户,效率不高。

    针对这类问题我们的解决方案:

    • 产品侧梳理完整业务规则和常见问题给客服,保证客服遇到问题时有地方可查。

    • 把通知客服作为产品上线的一个基本步骤,当产品需求和业务规则发生改变时,保证客服能第一时间知晓,并能为用户做出解答。

    • 对一些客服无法直接查询通用性的问题,提供通用工具支持。

    • 对产品设计不合理的地方,根据用户反馈建议产品优化改进。

    (2)逻辑错误、数据问题类:

    逻辑错误或者异常数据问题通常是由于线上bug引起的,理论上不应该出现但也无法避免,针对这类问题需要做详细的分析和总结、确定问题产生根本原因和解决方案。无论QA还是RD对这一类问题都需要重点关注。

    针对这类问题我们的解决方案通常有:

    • 用例设计不仅要考虑正常流程,还要考虑异常流程

      随着项目组质量意识提高,正常业务流程基本都考虑的比较全面,但异常场景的测试还需要更多经验的积累。所以QA在用例设计时不仅要考虑正常流程,还需要综合考虑各种异常流程和边界情况的处理。

    • 窥一斑而知全身

      深层挖掘异常数据出现的原因,确定问题产生是个性还是共性的,从根本上解决问题。

    • 回归测试要走全流程

      回归测试很重要,不仅要回归主流程,更主要的是要回归完整流程,避免出现以偏概全的情况

    (3)第三方问题

    第三方问题的出现通常都是由于服务异常调用引起的,针对这类异常不论在技术方案设计还是用例设计时通常都会考虑异常情况的处理,需要双方共同协商确定一个合理的解决方案。

    (4)客服流程不清晰

    这类问题基本上是线上业务规则就是如此,用户咨询后,客服直接提交online后又没有做任何处理,通常会被置为客服流程不清晰。

    (5)运营类问题

    运营类问题通常是运营活动咨询或者其他查询类的支持,针对这类问题通常只是需要配合查询,所以针对运营类问题提供了查询工具支持,tapd也创建单独模块支持处理。

    3、确定本周todo,发送分析结论报告

    在进行第二步详细问题分析时,我们通常都会确定一些本周的todo,@到具体责任人,保证每个问题都有人跟进。

    达成效果

    通过不断梳理线上问题,推动产品优化需求落地、提供通用工具、优化第三方问题、梳理通用规则,线上问题的质量有了较大提升,线上问题的数量也明显降低,团队同学也可以更专注于某件事情的处理,不易被线上问题打扰。

    总结

    作为一个对外提供业务的平台,各种类型的线上问题不可避免,详细分析这些线上问题,可以帮助我们不断的优化产品和提升工作效率。

    end

    
    
    展开全文
  • JAVA线上问题排查和工具 内容详细 结合实际工作 贴合实际
  • 本文总结一些常见的线上问题和对应的排查思路,工具。对于线上问题,我们必须记住一个原则:尽快恢复服务,消除影响。不管出于应急的哪个阶段,我们首先必须想到的是恢复问题,恢复问题并不意味着必须在当下定位到...
  • 线上问题排查流程

    2021-11-16 20:31:22
    针对各种常见的线上问题,梳理下排查思路。 业务问题 线上问题大多数时候都是业务问题引发的问题,当线上环境绝大多数请求都是正常,当有部分或者某一个用户有问题,此时怎么针对性的排查 在当前微服务体系下,...
  • Java--线上问题排查--方法/步骤

    千次阅读 多人点赞 2021-10-29 23:40:08
    本文介绍如何排查Java的线上问题。包括:如何得知线上出问题了,线上排查步骤简述,CPU、内存、磁盘、网络、垃圾回收、死锁的详细排查步骤。 线上问题排查简介 如何得知线上出问题了? 线上出问题时,我们需要...
  • JVM线上问题解决整理

    2022-02-04 21:40:20
    JVM服务问题排查:JVM服务问题排查_左手-CSDN博客 一让人难以忘怀的排查频繁 Full GC 过程:https://www.iteye.com/blog/caogen81-1513345 线上 FullGC 频繁的排查:线上FullGC频繁排查-druid_Rocky的博客-CSDN博客...
  • 通常我们遇到线上问题,都需要面对以下几个问题: 1.对业务有没有影响? 2.怎么恢复? 3.为什么会发生? 4.怎么避免? 二、线上问题处理原则 目标:尽快恢复,消除影响 1.第一时间恢复系统,快速止损 2....
  • 排查线上问题的9种方式

    千次阅读 2022-03-31 00:11:16
    一次,美国著名的福特公司的一组电机发生故障,在束手无策之时,公司请斯坦门茨出马解决问题。斯坦门茨在电机旁仔细观察,经过计算,用粉笔在电机外壳划了一条线,说:“从这里打开,把里面的线圈减少16圈。”工人们...
  • 在测试工程师的职责范围内,要尽可能且尽早地发现程序上的问题,找到问题,然后暴露出来给开发修复,减少线上问题的发生,降低公司因线上问题产生的风险。在发现问题之后 ,也要关注定位问题、分析问题,下面针对...
  • 从机器层面(内存,cpu,硬盘,io)到进程层面(进程占用cpu和内存)再到线程层面(线程在干什么)以及JVM老年代,新生代使用情况,gc情况,带你进行全面得Java程序线上问题定位与排查
  • receiver跑了将近3个月都是正常的,没有任何问题。到三月份的时候,技术支持反馈数据断了,当时我们没有多大重视,只是让重启了,但是没过多久又断了 ,然后又让重启,没过10分钟就断了,然后接连很多次都是这样,...
  • 线上问题跟进总结

    千次阅读 2020-05-08 13:20:09
    线上问题跟进总结 前言 很多时候我们能把大部分的bug或一些部署等问题在业务上线之前就解决了,但由于某些因素,线上问题还是时而出现,影响业务生产甚至是公司效益,避免线上问题的发生以及线上问题及时处理是...
  • 解决线上问题是我们工作中常见的问题和工作方式。在迭代模式开发中显得尤为重要。那么如何如何解决汇总线上问题呢?我们重点做好如下的步骤,因为在线上我们不可能debug 了,或者进行接口测试了。这一点非常重要。1....
  • 一、问题搜集当学生遇到问题,可以有两种途径进行反馈: 1.软件的反馈功能运营老师看到反馈并不会立即反馈到技术支持那里,而是先去了解相关的情况,看是个例还是大规模学生都出现问题,如果是个例会先让学生进行...
  • 线上问题怎么定位

    2021-05-14 15:06:13
    遇到线上问题怎么定位: 1、跟问题反馈方确定复现步骤 2、确定数据库存储的数据是否正确 3、确定后端接口返回的数据是否正确 4、检查前端界面展示是否有问题
  • 系列文章目录 第一章:sql_mode模式 ...第九章:MySQL线上问题处理事项 文章目录系列文章目录前言一、处理连接不工作的连接二、query_rewrite 前言 mysql线上问题处理的几个注意事项。 一、处理连
  • 线上问题排查总结

    千次阅读 2019-06-12 21:23:20
    线上问题排查 作为开发人员,不仅需要掌握系统开发技能,更应该具备处理线上问题的能力。本文主要针对线上问题处理的主要步骤和方式展开描述,供大家参考。 问题处理 业务日志 在系统出问题时,首先应该根据业务...
  • Java 应用如何进行线上问题排查?

    千次阅读 2022-02-20 12:52:36
    线上故障排查,是每个程序员必备的技能,为什么这么讲呢,因为项目上线后,不是随时都有条件debug,所以需要程序员有线上排查的能力
  • 前言:整理了一下项目线上问题应急处理规范,仅供参考! 1.1线上报障流程 1.2.目的 为了明确线上事件的报告、应急响应和处理机制,确保能以快速、高效、准确的应急处理能力来保证各类系统的正常运转,当发生突发事件...
  • 如何建立线上问题快速响应机制

    千次阅读 2019-05-18 11:33:04
      线上问题通常是指大规模影响生产服务的问题或事件,通俗点说就是"踩雷",线上问题处理的流程也可以看成是"踩雷"、“排雷”、“填雷”、“避雷”,优先级从高到底依次排序;   线上问题的处理,不仅是一项技术...
  • 快速定位java系统线上问题

    千次阅读 2018-08-31 10:37:02
    Java 语言是当前互联网应用最为广泛的语言,作为一名 Java 程序猿,当业务相对比较稳定之后平常工作除了 coding 之外,大部分时间(70%~80%)是会用来排查突发或者周期性的线上问题。 由于业务应用 bug(本身或引入第...
  • 由于现在的互联网公司对于线上问题的出现,会对责任人进行追责,并按照事故等级进行相应的处罚。 而且这种所谓的处罚会跟绩效或者money挂钩,因此在出现上问题的时候原本“和谐”的项目组各个位置的成员会使出...
  • 线上问题排查

    2019-11-04 18:27:34
    文章目录概述问题处理流程 概述 我们经常在线上会遇到很多的问题,遇到问题,排查问题的过程是非常重要的经验。java程序员在线上遇到的问题有以下几种。 1、线上OOM 2、线上机器cpu飙高 3、线上网络慢 … 还有很多很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 297,240
精华内容 118,896
关键字:

线上问题

友情链接: PH_2.rar