V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ppyybb
V2EX  ›  问与答

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

  •  
  •   ppyybb · 2018-08-25 23:26:47 +08:00 · 2388 次点击
    这是一个创建于 2273 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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


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

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

    4 条回复    2018-08-26 18:03:04 +08:00
    sagaxu
        1
    sagaxu  
       2018-08-25 23:31:17 +08:00 via Android
    看一下内存占用情况,确保没有 swap,并且剩余内存大于 20%
    ppyybb
        2
    ppyybb  
    OP
       2018-08-25 23:39:03 +08:00 via iPhone
    @sagaxu 已经查过,和内存无关
    veelog
        3
    veelog  
       2018-08-26 11:56:38 +08:00 via iPhone
    停留在 write,那看看连接的缓冲是不是满了呀
    ppyybb
        4
    ppyybb  
    OP
       2018-08-26 18:03:04 +08:00 via iPhone
    @veelog netty 是非阻塞调用的,即便阻塞调用,也不会使得所有进程卡住。我怀疑 kill -3 打出来的信息不是最新的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1136 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:27 · PVG 03:27 · LAX 11:27 · JFK 14:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.