golang
文章平均质量分 80
zengxiaobai
这个作者很懒,什么都没留下…
展开
-
golang-exec cmd data race
问题背景:bytes.Buffer grow panicpanic: runtime error: slice bounds out of range [:1024] with capacity 512goroutine 428529 [running]:bytes.(*Buffer).grow(0xc0001e86f0, 0x200, 0x0)#011/usr/local/go/src/bytes/buffer.go:148 +0x297bytes.(*Buffer).ReadFrom(0xc0原创 2021-04-21 11:00:49 · 249 阅读 · 0 评论 -
golang exec cmd pipeline zombile 进程
问题背景:基于golang 实现了一个自助化配置的通用命令任务管理模块,这样运营人员可以直接通过修改配置,完成 if do 的命令逻辑:当磁盘满时,做什么?当网卡down 时做什么;并且可以支持各类环境 和规则。确定僵尸进程问题:但是灰度后不久,命令执行报错: fork exec resource temporarily unavailable;进一步查看syslog 报错 fork rejected by pids controller in xxx.service,cat pid limits 查原创 2021-04-08 22:02:30 · 524 阅读 · 0 评论 -
mosn 中的context、变量 和 内存复用机制
mosn 中的context、变量 和 内存复用机制在梳理变量机制中,发现与context、对象复用等机制都有一定关联,而context是贯穿始终的关键,所以本来只想记录变量机制,结果对context、对象复用封装都进行了review:(review 相关经验:查看对外接口,传参和返回值;思考使用 环境,与什么有关;跳出细节,找一条线,思考:从 0 到 生命周期结束, 如何使用 以及怎么与接口关联;源码解析文档、issue、历史提交记录、单元测试使用用例;如果没有这个细节会怎么样?结合过往原创 2021-02-09 23:31:59 · 347 阅读 · 0 评论 -
MOSN学习资料
开发功能对应的roadmaphttps://docs.google.com/spreadsheets/d/1fALompY9nKZNImOuxQw23xtMD-5rCBrXWziJZkj76bo/edit#gid=0主体架构以及性能优化系列http://www.uml.org.cn/wfw/201910224.asphttps://mp.weixin.qq.com/s?__biz=MzA4ODg0NDkzOA==&mid=2247487075&idx=1&sn=87627a1原创 2020-10-29 22:05:06 · 412 阅读 · 0 评论 -
golang runtime.findrunnable epoll_wait lock 占用CPU 过多排查
问题现象:对于测试报告,我们一般应当包含:测试对比环境的软件架构、输入、可视化的对比结果、原因分析&总结从go 自带的profile 图 只能看出 如题所示,对于问题排查,我们从不吝啬更多信息 用于分析:结合 sys-cpu perf 以及 火焰图分析:可以得到更多的调用栈对比的两个软件 V1 有问题 、V2 没有问题。这里看出有问题的 是Read 场景:Read 触发的调度。我们的测试场景是代理和源站在同一个集群,确实会存在大量Read event 唤醒,但是线上 回源响应的数据原创 2020-10-21 22:09:58 · 2822 阅读 · 2 评论 -
golang 变量名和import 名冲突问题
golang 变量名和import 名冲突问题原创 2020-10-15 16:56:01 · 2889 阅读 · 0 评论 -
golang runtime.systemstack 泄漏排查
golang-runtime.systemstack 泄漏排查Fetching profile over HTTP from http://:9001/debug/pprof/heapSaved profile in /root/pprof/pprof.testStack.alloc_objects.alloc_space.inuse_objects.inuse_space.004.pb.gzFile: testStackType: inuse_spaceTime: Sep原创 2020-09-23 20:35:59 · 1992 阅读 · 0 评论 -
一个通用的任务管理模型-golang
该模型基于rocketmq 也可以扩展到其他类似任务处理。 使用策略模式 将任务管理 单独 抽出来一个模块。真实应用程序只需实现任务具体处理逻辑 返回成功失败/* Interface Commentimplement it at rocketexe*/type taskDealMsg interface {DealMsg(msgStruct InputMsg, msgDealCoun...原创 2019-10-22 19:56:44 · 1275 阅读 · 0 评论