首页
学习
活动
专区
圈层
工具
发布

#go

静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

Go 的 context.WithCancel 到底该什么时候调用 cancel?一个容易被忽略的 goroutine 泄漏点

用户12771345

在 Go 里用 context.WithCancel 做超时控制或请求取消时,很多人会因为一个细节踩坑:cancel 函数到底该在什么时候调用。常见写法是 ct...

200

Go 服务中 HTTP 连接池的复用陷阱:从 TIME_WAIT 堆积到连接泄漏的排查

用户1839651

线上一个 Go 写的网关服务在流量高峰期频繁出现 cannot assign requested address 报错,同时监控显示 netstat 中 TIM...

600

Go 服务里用 context 取消数据库查询,为什么连接还是被占着?

用户1839651

线上有个导出接口偶尔会卡住连接池。请求进来后用户等不及直接关页面,HTTP 请求的 context 被取消,逻辑层也确实收到了 context.Canceled...

200

Go 服务内存持续上涨却查不到泄漏:一个被 sync.Pool 掩盖的 goroutine 堆积问题

用户1839651

线上一个 Go 写的推送网关服务,部署后内存曲线呈现缓慢爬坡,每隔两三天就得手动重启一次,否则 RSS 会逼近容器限制触发 OOM Kill。pprof 的 h...

100

Go 中 context.WithCancel 的取消信号为何没有传递到下游 goroutine

用户12771345

线上服务里有个数据同步任务,主 goroutine 通过 context.WithCancel 创建了一个可取消的 context,传给几个 worker 去并...

500

Go 里用 sync.Pool 缓存临时对象,为什么你的程序反而更慢了?

超哥前端记录

线上一个日志聚合服务在 QPS 翻倍后 GC 压力突然变大,pprof 显示 runtime.mallocgc 占了近三成 CPU。这个服务每秒要处理几十万条日...

500

Go 服务中 panic 恢复后连接泄漏:一个 defer 顺序引发的血案

超哥前端记录

线上一个用 Go 写的 HTTP 网关服务,每隔两三天内存就涨到告警阈值,重启后恢复,pprof 看 goroutine 数量在缓慢爬升,堆内存里有一批带着 h...

700

从反复手动拉起服务到开机自启:跨平台进程管理器的实现过程

用户11751595

我有台机器常年开着,上面跑几个自建服务:一个同步脚本、一个本地 API,偶尔还有 WSL 里的东西。麻烦的不是让它们跑起来,而是每天开机之后那几分钟,挨个进目录...

1610

Go 服务里处理超时与重试的几个关键细节:context、deadline 和幂等性

用户12771345

线上有个 Go 服务,调用下游 HTTP 接口超时后客户端会重试,结果偶尔出现重复写入。排查后发现是 context 的超时设置和重试逻辑耦合在一起:外层给整个...

2910

Go 服务中 http.Server 的 Shutdown 为什么没有关闭连接?

用户11716263

线上有个 Go 写的 HTTP 服务,每次发布滚动重启时,监控会看到一批 502,持续几秒到十几秒不等。排查后发现是优雅退出没生效:进程收到 SIGTERM 后...

2710

Go 服务内存持续上涨?从一次 pprof 排查说起

用户1839651

线上一个 Go 写的推送服务运行几天后 RSS 从 200MB 涨到 1.2GB,但 heap profile 显示活跃对象只有 80MB 左右,GC 也正常触...

2200

Go 中 time.Ticker 没 Stop 导致协程泄漏,排查一个线上 goroutine 暴涨问题

用户1839651

线上一个用 Go 写的定时任务服务在运行两天后 goroutine 数量从几百涨到了三万多个,内存占用也跟着上去,但 QPS 和业务处理量并没有明显变化。用 p...

1710

深度拆解 YSL语枢·盾甲 WAF:一款纯 Go 架构的下一代反向代理网关

暗夜铭少

在给云上业务选型 WAF(Web 应用防火墙)时,大家经常面临一个两难的境地:传统开源 WAF 误报率极高且规则陈旧;而新兴的某些商业 WAF 又过度依赖微服务...

3500

Go 服务中 time.Ticker 未停止导致的内存泄漏与 goroutine 堆积排查

用户11716263

线上一个用 Go 写的推送服务跑了两周后内存从 80MB 涨到 600MB 以上,pprof 显示 goroutine 数量从启动时的几十个涨到两万多,而且基本...

6010

Go 服务内存泄漏排查:从 goroutine 堆积到连接池误用

用户1839651

线上一个 Go 写的 API 网关运行几天后 RSS 持续上涨,重启后恢复,pprof 显示堆内存并不高,但 goroutine 数量从启动时的几百涨到几万。这...

6010

Go 服务中 HTTP 连接复用的一个坑:为什么你的 Keep-Alive 没生效

超哥前端记录

线上有个 Go 写的内部 API 网关,最近下游服务反馈连接数偏高,而且每次请求的 TCP 建连耗时明显。网关本身用的是标准库 net/http,客户端也按常规...

6410

Go 服务中 context 取消没生效?检查一下你传的是不是 context.Background()

用户1839651

线上一个 Go 服务在压测时 goroutine 数量持续上涨,pprof 显示大量 goroutine 卡在数据库查询和下游 HTTP 调用上,但上游请求早就...

9910

Go 服务中 sync.Pool 用错反而拖慢性能?从一次压测说起

用户11716263

线上一个 Go 编写的网关服务在压测时吞吐量上不去,pprof 显示 GC 频率异常高,trace 里大量时间花在对象分配和标记清理上。团队最初怀疑是日志拼接或...

8910

Go 服务中 context 取消不生效导致 goroutine 泄漏的排查与修复

用户12771345

线上一个用 Go 写的 HTTP 服务跑了几周后内存缓慢上涨,pprof 看到 goroutine 数量从几百涨到上万不回落。服务逻辑不复杂:接收请求后启动几个...

11210
领券