在Go语言中使用了gin web框架,我们有一个接口是文件下载服务,用户下载超过100M文件就会OOM导致重启服务,本文主要记录通过Golang内置的pprof服务来排查OOM问题的过程。
2024年12月4日大约 8 分钟
在Go语言中使用了gin web框架,我们有一个接口是文件下载服务,用户下载超过100M文件就会OOM导致重启服务,本文主要记录通过Golang内置的pprof服务来排查OOM问题的过程。
我们的系统想做一个故障定位与 AI 结合的功能,这其实是AIOps的一部分。大概背景就是:前期已经完成在系统里接入ES查询日志并展示,各个微服务将接收上游和请求下游的相关信息(比如模块、接口、错误码等)打印并收集到ES中,我们想给用户直观展示一个从用户端到最终数据端的一个请求调用链路图,并展示有问题的节点,点击问题节点可以将错误日志传给AI大模型分析并给出解决方案。本文从编码角度给出具体过程中的实现和遇到的一些问题。
在Go语言中使用了gin web框架,需要对Go语言Gin框架中进行session管理并且需要将session信息保存到redis,常用的框架有gorilla/sessions、gin-contrib-sessions和go-session/gin-session等,本文记录在生产开发中使用的gin-contrib-sessions和go-session代码对比。