ppyybb
V2EX  ›  问与答

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

  •  
  •   ppyybb · Aug 25, 2018 · 2960 views
    This topic created in 2818 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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


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

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

    4 replies    2018-08-26 18:03:04 +08:00
    sagaxu
        1
    sagaxu  
       Aug 25, 2018 via Android
    看一下内存占用情况,确保没有 swap,并且剩余内存大于 20%
    ppyybb
        2
    ppyybb  
    OP
       Aug 25, 2018 via iPhone
    @sagaxu 已经查过,和内存无关
    veelog
        3
    veelog  
       Aug 26, 2018 via iPhone
    停留在 write,那看看连接的缓冲是不是满了呀
    ppyybb
        4
    ppyybb  
    OP
       Aug 26, 2018 via iPhone
    @veelog netty 是非阻塞调用的,即便阻塞调用,也不会使得所有进程卡住。我怀疑 kill -3 打出来的信息不是最新的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4432 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:31 · PVG 13:31 · LAX 22:31 · JFK 01:31
    ♥ Do have faith in what you're doing.