最近同事开发的一个项目部署上线后用过几天就TOMCAT自动关闭,并且该项目没有开通对外访问。通过阿里云监控台查看,从升级后系统内存占用上升趋势,CPU等信息没有太大变化。

打印服务器日志后发现全是线程日志。并且过一段时间后会发现停留大日志里的线程数逐步增加,通过命令定时查看服务器观察应用线程数,按时间在递增。综合以上分析初步定位是开启线程数多没有关闭导致程序占用系统内存多从而TOMCAT关闭。

top --查看JAVA线程IDtop -Hp pid -d 1 -n 1  --查看当前的较高的线程jstack 28174 > dump.txt --打印日志

ps huH p  pid  | wc -l  -- 发现每隔1分钟线程数一直在增加。

按日志查到程序使用线程情况,并且全文搜索程序使用线程的方法,再接合开发的同事提供的信息,定位问题。

优化后:

优化上线后再观察线程数正常。

分析:使用ScheduledExecutorService启动线程时一定要关闭。

最新文章

  1. C标准头文件<math.h>
  2. 洛谷P1738 洛谷的文件夹
  3. 记录下sublime text快捷方式
  4. bzoj3140: [Hnoi2013]消毒
  5. hdu5322 Hope(dp)
  6. 在 Azure 虚拟机上部署反恶意软件解决方案
  7. ArcGIS for Android学习(一)
  8. 如何查找Linux的函数定义的位置?
  9. UAC权限
  10. 使用CLR Profiler分析.NET程序
  11. Java Swing paint repaint update 方法的关系
  12. 剑指Offer-删除链表中重复的结点
  13. Django--入门篇:下载与项目生成
  14. fastjson JSON 对象为空保留null
  15. oracle数据库SQL入门
  16. jsonp 使用选择器
  17. WMI 连接远程计算机并进行局域网进程扫描
  18. 使用tidylib解决不规则网页问题
  19. caddy server 几个常用插件
  20. 将 .NET 任务作为 WinRT 异步操作公开

热门文章

  1. day69 cookie与session
  2. 数据分析05 /pandas的高级操作
  3. HotSpot VM垃圾收集器
  4. C语言笔记、文件io的操作
  5. DQL:查询表中的记录
  6. 面试京东T5,被按在地上摩擦,鬼知道我经历了什么?
  7. MYSQL JSON字段操作
  8. 项目管理:如何显性管理并提升Story分解能力
  9. 评测Loki日志工具
  10. .NET 使用sock5做代理(不是搭建服务端)