Go STL 查询 DB 引发的内存泄露

Posted by 夏泽民

有一个 Go API service 经过定时监控发现占用的内存不断上涨,内存从初始的 70M 一直上升到超过 1G 直到吃光内存退出,基本上就可以断定是存在内存泄露的问题了,但是因为自带垃圾回收的语言出现内存泄露的情况较少,如果存在那一定是大问题,因此有了下文详细的排查过程,为日后处理此类问题积累经验。 https://gocn.vip/topics/9963 goroutine 泄露 之前就有听说过一句名言:Go 中的内存泄露十有八九都是 goroutine 协程泄露,是否真的如此呢? 对 runtime.NumGoroutine() 的定时查询可以帮助我们进行判断,或者线上开启了 pprof 的话访问 /debug/pprof 就可以看到 goroutine 的数量,我使用了 expvar 来定时暴露协程的总数信息,在本地对线上数据定时进行抓取。



Go语言inline内联的策略与限制

Posted by 夏泽民

https://pengrl.com/p/20028/ 本文基于Go 1.13。



kubernetes 中的事件机制

Posted by 夏泽民

我们通过 kubectl describe [资源] 命令,可以在看到 Event 输出,并且经常依赖 event 进行问题定位,从 event 中可以分析整个 POD 的运行轨迹,为服务的客观测性提供数据来源,由此可见,event 在 Kubernetes 中起着举足轻重的作用。



terraform

Posted by 夏泽民

https://github.com/hashicorp/terraform 在 DevOps 实践中,基础设施即代码如何落地是一个绕不开的话题。像 Chef,Puppet 等成熟的配置管理工具,都能够满足一定程度的需求,但有没有更友好的工具能够满足我们绝大多数的需求?笔者认为 Terraform 是一个很有潜力的工具,目前各大云平台也都支持的不错,尤其是使用起来简单明了。本文会简单的介绍一下 Terraform 相关的概念,然后通过一个小 demo 带大家一起进入 Terraform 的世界 Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。它的目标是 “Write, Plan, and create Infrastructure as Code”, 基础架构即代码。Terraform 几乎可以支持所有市面上能见到的云服务。具体的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果非常明显:高效、不易出错。



获取map[interface{}]interface{}的value

Posted by 夏泽民

定义了一个map[interface{}]interface{} key 也是interface{}类型的,通过反射等动态取得的,这个key一定是存在在map里的。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required