The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
petelin

Go GC 的一个诡异问题, 不同后端集群的机器 GC 启动时间几乎相同

  •  
  •   petelin · Nov 18, 2019 · 3982 views
  •   You need to sign in to view this topic
    This topic created in 2455 days ago, the information mentioned may be changed or developed.
    后端集群. 会被 aws 扩容或者缩容, 也会被部署新代码所重启.(这是随机事件). 上千台机器, 呈现出来的就是每隔两分钟几乎 90%的机器都会触发一次 GC.

    奇怪的是不同的机器启动服务时间点是不一样的. 怎么就呈现出来规律了?

    这种规律是不对的, 理想情况不同的机器间隔可以是 2 分钟, 但是应该在不同的时间启动对吧?
    7 replies    2019-12-09 10:13:14 +08:00
    Raymon111111
        1
    Raymon111111  
       Nov 18, 2019
    每隔两分钟是不是业务有什么周期性的特点?
    petelin
        2
    petelin  
    OP
       Nov 18, 2019 via iPhone
    @Raymon111111 两分钟是 go 强制 gc 的时间 这个频率没问题 我们大多数业务写的代码分配不了多少内存
    Raymon111111
        3
    Raymon111111  
       Nov 18, 2019
    @petelin 噢我知道你的问题了. 这个"两分钟触发一次"的机制是不是以绝对时间判定的, 而不是机器的启动时间.
    scukmh
        4
    scukmh  
       Nov 18, 2019
    @Raymon111111 我不认为 go 语言的实现者会这么做,这样做根本没有任何的优势。
    guyeu
        5
    guyeu  
       Nov 19, 2019
    我猜一下哈。。监控系统每两分钟采集一次数据,而采集数据的时间是差不多一样的?
    petelin
        6
    petelin  
    OP
       Nov 19, 2019 via iPhone
    @guyeu 监控是靠主动打点的 我一会看看多久上报一次 指标用的是 go runtime 的读到的 lastgc time 感谢思路
    reus
        7
    reus  
       Dec 9, 2019 via Android
    两分钟如果没有 gc,就会 gc 一次
    内存达到阈值也会触发 gc,不是两分钟才有 gc
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:45 · PVG 04:45 · LAX 13:45 · JFK 16:45
    ♥ Do have faith in what you're doing.