首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一次由于OOM导致锁没有释放的定位流程(结合Arthas

本文基于Spring Cloud Fincheley SR4, Arthas 3.1.4 最近发现业务上返回慢,并且feign的fallback被触发了。...我们通过Arthas看下线程列表: [arthas@24]$ thread thread Threads Total: 736, NEW: 0, RUNNABLE: 81, BLOCKED: 0, WAITING...5 TIMED 0 2:12 false true 发现关键字PollingServerListUp有两个线程,150和157,分别看看他们在干什么: [arthas...猜想是发生了OOM异常,导致内存没有分配。检查日志,果然发现了OOM。 这件事告诉我们,对于锁,一定要try{lock} finally {unlock}。...就算代码不会抛出任何异常,发生OOM时,也有可能导致锁不能释放 感觉这个代码还是修一下吧,提了个issue给ribbon: https://github.com/Netflix/ribbon/issues

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java 诊断工具—— Arthas

    1.2 Linux 安装方式 安装Arthas: curl -L https://alibaba.github.io/arthas/install.sh | sh 启动Arthas: ....服务端关闭时会重置所有增强过的类 version——输出当前目标 Java 进程所加载的 Arthas 版本号 quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响 shutdown...——关闭 Arthas 服务端,所有 Arthas 客户端全部退出 keymap——Arthas快捷键列表及自定义快捷键 jvm相关 dashboard——当前系统的实时数据面板 thread——查看当前...退出arthas 如果只是退出当前的连接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。...如果想完全退出arthas,可以执行shutdown命令。 当然了,Arthas不只有这些功能,更多的功能请大家浏览官方查看详细的用法以及命令 快上车!

    1.7K10
    领券