背景描述:使用quartz建立多个定时任务,每5分钟执行一次。定时任务中包含httpclient的网络访问,及druid的数据库访问。执行一段时间后不定期(可能10天半个月,可能好几个月)卡死。
表现状况为:

  • 日志到某个时间点突然没有输出了,也没有异常日志记录,排除当时磁盘空间不足的问题
  • httpclient使用的4.3版本,出问题的生成环境下已在request中设置3种超时时间。实际测试中除了setConnectTimeout与setConnectionRequestTimeout即使不设置,程序也会抛出超时异常。只有当setSocketTimeout不设置的时候,程序会出现日志不打印一直卡死的状况,但与我要解决的问题来看还是有略微区别。当时的内存状况不一致。(图1为生产环境上卡死时的内存,图2为本机测试时,故意不设置setSocketTimeout超时情况下的内存图 )
    (图1)(图2)

  • 生成环境下设置了数据库超时,本机测试时暂时还没有测试数据库超时的情况。

下次生成环境上再发生此类状况的排查步骤:

  1. 本机打开jdk安装目录下的visualVM查看线程执行情况,正常定时任务执行时线程应该是如下图的少量runnalbe,如图1所示,但是本机测试时,故意让服务器端下断点不返回信息,在客户端的httpclient中不设置setConnectTimeout超时时间,最终显示的线程图样是一直runnalbe的,因此下次在生产环境下出现这个问题时,可以查看线程中,该线程是否一直是runnalbe状态如图2所示
    (图1) (图2)
  2. 使用jstack查看当时的业务定时任务线程中具体代码。打开步骤,找到程序对应的pid,然后使用命令jstack 程序pid的方式查看线程状态(图1)。 使用jstack的原因是这个可以看到具体代码,如图2
    (图1)(图2)

今天又发生了一次,排查怀疑是数据库连接未释放造成的。


(发生问题的机器上,线程图。从中可以看到执行定时job的线程pool-3-thread-1一直在运行,类似于之前在本地机器上模拟的httpclient未设置响应时间的状态)


(发生问题的机器上,内存图)


转载于:https://www.cnblogs.com/falcon-fei/p/11060174.html

定时任务卡死问题排查相关推荐

  1. php卡死代码,服务器被php进程卡死问题排查-php5.2的curl-bug

    前几天东政同学反馈说Linode服务器快卡死了,今天有时间排查了一下具体原因,最终原因稍微有点悲壮:file_get_contents没有设置超时时间,加上我用的php5.2关于curl的代码有个bu ...

  2. Linux定时任务不执行排查方法

    实现linux定时任务有:cron.anacron.at等,但平常工作中接触到的是cron服务.cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表.项目中经常用到定时任务实 ...

  3. mysql某张表一直卡死,排查原因和问题解决

    mysql某张表一直卡死 查看哪些运行的命令造成,如sql语句等 select id, db, user, host, command, time, state, info from informat ...

  4. C++程序在Windows系统上启动失败与运行卡死问题排查实战

    目录 1.VS2017默认编译出来的程序,不支持XP系统 1.1.新版本软件为什么要选择VS2017?

  5. python apscheduler 动态_基于Flask-APScheduler实现添加动态定时任务

    阅读目录 一.apSheduler 二.Flask-APScheduler 三.动态定时任务 四.uwsgi部署注意事项 一.apSheduler 第一部分内容限于apSheduler3.0以下版本, ...

  6. 服务器挖矿病毒的排查过程

    今天同事反馈公司的某台服务器远程连接不上,登录服务器查看后,发现CPU使用率居高不下.kill掉后,一分钟有自动生成,整个排查思路如下: 1.top 命令查看主机负载,确认可疑进程为bashd 2.确 ...

  7. 处理Springboot项目启动时streamBridge.send导致的卡住卡死问题

    现象 我们的Spring Boot 项目启动时,偶现卡死的现象,启动到一半卡主不动了 2023-01-16 10:23:10.338 INFO 1 --- [ restartedMain] com.h ...

  8. STM32网络数据传输,实际项目中实现,以及网络卡死问题的解决

    文章目录 Keil5软件优化问题 HAL库的UDP初始化ping通 MX_LWIP_Process() 网络接收数据处理 网络长时间收发卡死 Keil5软件优化问题 正式开始前先来一个题外话,程序遇到 ...

  9. 一次真实的应急响应案例(Centos)——暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)

    一.事件背景 某天客户反馈:服务器疑似被入侵,与恶意IP进行通信(恶意IP用192.168.226.131代替).(真实案例自己搭建环境复现一下,靶场环境放在了 知识星球 和 我的资源 中) 受害服务 ...

最新文章

  1. 使用阿里云配置管理ACM实现zookeeper依赖服务的透明Failover迁移
  2. 2021-04-08 Python通过flask搭建音频流/文件服务
  3. 【做题记录】Codeforces做题记录
  4. 61二叉搜索树的第k个结点
  5. python asyncio 高并发_python-将asyncio与多处理结合起来会出现什么样的问题(如果有)?...
  6. 深度学习训练出来的损失不收敛_学习率设置技巧,使用学习率来提升我们的模型...
  7. 阿里云数据森林人才计划起航
  8. Python机器学习——如何shuffle一个数据集(ndarray类型)
  9. 双指针算法基础——输出单词
  10. 如何正确的将拼多多的买家晒图采集并保存
  11. word自动生成目录,设置从指定页码开始
  12. postgresql和es_Apache的气流和PostgreSQL与码头工人和码头工人组成
  13. Linux系统交换空间详解
  14. ESP8266无线模块相互通信
  15. IP-guard23个功能模块简介
  16. vb6.0中的Private Declare Function的含义
  17. 如何在Mysql中运行SQL文件
  18. 杀戮尖塔java启动_slay the spire杀戮尖塔无法启动
  19. 百度网盘秒传链接怎么用及实现原理
  20. 吊炸天核心Java面试问题,一问一答题,一问多答题(建议学习)

热门文章

  1. java xml 变量替换_Java JAXB如何将XmlElements重新定义为现有变量
  2. android studio中连接夜神报错 adb server version doesn't match this client
  3. 浅析网站seo诊断都包括哪些内容?
  4. 浅析网站流量出现异常情况应怎样解决?
  5. 网站权重增长缓慢,优化技巧是关键!
  6. html中的li排成一行怎么写,html怎么实现li元素有点并分列
  7. java foreach用法_Java十大简单性能优化
  8. ladp3 获取属性_Ldap获取ad属性的方法.
  9. tensorflow实现图像的翻转
  10. Apriori算法实例