「求助」有没有哪位大神碰到过 「运行 Java 程序后整个进程卡死,但是没有锁,cpu 占用率很低」的情况

2018-08-25 23:26:47 +08:00
 ppyybb

  • 环境: mac + idea + netty(server(单线程) 和 client 都在本地运行)

  • 现象:
  • ----- 运行服务器程序之后,使用客户端模拟访问,整个进程卡住不动,使用 jstack 命令也会卡住

    ----- 使用 kill -3,不会卡住获取到的 thread dump 信息是: 主线程是Runnable的,停留在 write0 方法

    ----- 每次获取到 dump 信息完全一样,好像整个进程被凝固了一样,连内存都没有***任何变化***

    ----- 大部分应用都不能响应(Chrome,微信,甚至活动管理器,safari 无法打开网页)

    ----- kill -9 之后进程不见了,但是以上所有现象不变,且 idea 无法运行新的进程,必须强制关机


  • 尝试:
  • ----- 观察了指定端口网络状态, 就是几百个 ***Established***的连接,属于正常状态

    ----- 当客户端只发「添加命令」,或发送命令少于 20 万无法复现(推论: 服务器进程内存变化剧烈时有概率出现)

    2414 次点击
    所在节点    问与答
    4 条回复
    sagaxu
    2018-08-25 23:31:17 +08:00
    看一下内存占用情况,确保没有 swap,并且剩余内存大于 20%
    ppyybb
    2018-08-25 23:39:03 +08:00
    @sagaxu 已经查过,和内存无关
    veelog
    2018-08-26 11:56:38 +08:00
    停留在 write,那看看连接的缓冲是不是满了呀
    ppyybb
    2018-08-26 18:03:04 +08:00
    @veelog netty 是非阻塞调用的,即便阻塞调用,也不会使得所有进程卡住。我怀疑 kill -3 打出来的信息不是最新的。

    这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

    https://www.v2ex.com/t/483250

    V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

    V2EX is a community of developers, designers and creative people.

    © 2021 V2EX