V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
phpcyy
V2EX  ›  Go 编程语言

golang 程序突然超时

  •  
  •   phpcyy · 2023-01-04 14:00:11 +08:00 · 2337 次点击
    这是一个创建于 700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近我们的程序老是有超时,每次都是一台机器突然耗时增加,重启这台机器上的服务后耗时也降不下来;
    看了下代码最近提交很少也没几行,没看出什么问题;
    这台机器调用别的所有服务的耗时都有升高,看了下 goroutine 的数量,没有上升;
    之前加了 gc 的 PauseQuantiles 的耗时统计,发现 gc 耗时也上升很明显;
    然后使用 pprof 抓了下 gc 的 trace ,出现了以下 2 张图上的情况,感觉 cpu 像是突然不工作了,什么情况会导致出现这个问题呢?




    大佬们能给个思路吗?
    14 条回复    2023-01-04 22:19:43 +08:00
    horou
        1
    horou  
       2023-01-04 15:02:19 +08:00
    改用 Rust😒
    lolizeppelin
        2
    lolizeppelin  
       2023-01-04 15:41:19 +08:00
    是不是虚拟机 被 cgroup 限制了
    先跑物理机不要用 docker 试试
    GopherDaily
        3
    GopherDaily  
       2023-01-04 15:41:39 +08:00
    网络 /带宽?有机器的监控吗?
    phpcyy
        4
    phpcyy  
    OP
       2023-01-04 15:43:22 +08:00
    @lolizeppelin 腾讯云的云主机,没有用 docker
    phpcyy
        5
    phpcyy  
    OP
       2023-01-04 15:49:49 +08:00
    @GopherDaily

    10:09:43 开始抓取的 trace ,这个是监控
    tairan2006
        6
    tairan2006  
       2023-01-04 15:50:15 +08:00
    如果感觉是环境的问题,就释放掉机器重新申请……
    phpcyy
        7
    phpcyy  
    OP
       2023-01-04 15:50:55 +08:00
    @phpcyy 监控截取的时间是 10 点到 10 点 20
    phpcyy
        8
    phpcyy  
    OP
       2023-01-04 15:53:27 +08:00
    @tairan2006 陆续 3 台机器出问题了,题目中没说清楚;每次现象是一致的,都是突然耗时增加后重启服务耗时也降不下来,其他机器都是正常的
    GopherDaily
        9
    GopherDaily  
       2023-01-04 16:04:33 +08:00
    - 代码总是否有阻塞的锁之类?
    - 服务资源是否有明显的波动,除了 CPU 以外还可以关注 磁盘和网络

    大部分诊断都依赖于长期投入的监控建设
    8355
        10
    8355  
       2023-01-04 16:54:29 +08:00
    按照描述建议使用最简单的方案代码回滚 如果能解决相当于已经定位问题了.
    有 3 台机器出现问题我认为已经不是偶然了 95%以上是跟业务代码相关
    datafeng
        11
    datafeng  
       2023-01-04 17:20:14 +08:00
    瞎猜应该是写的代码有问题
    这是为换 rust 找个说服自己的理由么:)
    lysS
        12
    lysS  
       2023-01-04 17:20:53 +08:00
    大哥,给 cpu 的火焰图啊;你这个好难看啊
    phpcyy
        13
    phpcyy  
    OP
       2023-01-04 18:17:21 +08:00
    OK ,我明天先回滚代码放点量观察下,看能不能恢复吧
    rekulas
        14
    rekulas  
       2023-01-04 22:19:43 +08:00
    高度怀疑某个逻辑处阻塞或死循环了,导致无法切换上下文
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 03:19 · PVG 11:19 · LAX 19:19 · JFK 22:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.