golang pprof记录

mud 客户端有内存泄露,调试了一把,记录一下。

首先,引入 profile库

import "net/http/pprof"


然后合适的地方引入

runtime.SetBlockProfileRate(int(10 * time.Second))
runtime.SetMutexProfileFraction(int(10 * time.Second))
Router.Handle("/debug/pprof/").HandleFunc(pprof.Index)
Router.Handle("/debug/pprof/cmdline").HandleFunc(pprof.Cmdline)
Router.Handle("/debug/pprof/profile").HandleFunc(pprof.Profile)
Router.Handle("/debug/pprof/symbol").HandleFunc(pprof.Symbol)
Router.Handle("/debug/pprof/trace").HandleFunc(pprof.Trace)


SetBlockProfileRate是设置记录block的代码的值,单位是纳秒

SetMutexProfileFraction是设置记录锁起效代码的值。

然后打开debug/pprof页面



allocs
4	block
0	cmdline
17	goroutine
232	heap
0	mutex
0	profile
21	threadcreate
0	trace

其中重点关注的是 goroutine,heap,block几块

goroutine是看实时的goroutine数量和发起位置。如果不停增长,可能是泄露

heap是堆,数值是一直增长的。点入后看到的数据,建议加上gc=1参数强制gc一次

第一行的数字大概是

2: 58368 [2474: 8919408] @ heap/1048576


第二个数字58368是当前堆内存大小,最后一个数字1048576是最大使用的堆内存

然后是按当前使用内存大小的堆信息,大概是

1: 57344 [1: 57344]

第一个57344是当前使用的堆内存

方括号内的57344是最大使用过的堆内存。


发布于
2021-07-08

[记录]aliyun vpc的坑

今天给一台阿里云服务器换了vpc,踩了点坑

表现为网站无法打开,vnc链接后服务器无网络

总结如下

  1. 切换vpc需要改ecs的网络配置
  2. ecs的网络配置,用dhcp未必起效
  3. 手工设置ecs的网络配置时,可能需要设置网关
  4. 网关地址没找到说明,我是把网段最后几个保留ip按个ping,再倒数第三个能ping同,然后设为网关,通了。

另外吐槽下,阿里云的工单改版。

不能直接提交工单,出来个伪对话框,普通工单120分钟内回复,紧急工单90分钟内回复,付钱10分钟内回复。

很好,很强大。

发布于
2021-02-25

腾讯企业邮箱开始不干人事了

收到了腾讯企业邮箱的邮件

贵公司正在使用基础版的企业邮箱,目前有 5 个成员使用容量已超过普通帐号的 2G 上限,当前为超容使用中。建议将贵公司的企业邮箱升级到专业版,并把这些成员账号升级为VIP账号,即可不受容量限制。同时,专业版提供更多便捷管理功能,让工作更高效。了解专业版及VIP账号 注意:5天后,若邮箱账号未及时升级到VIP账号,2月24日起,这些账号容量将降级为标准容量。超出容量限制的邮箱账号将无法收到新的邮件,请提醒成员及时清理历史邮件,以免影响邮箱的正常使用。

无力吐槽。

啥玩意?

你要收费正常,之前的用户你觉得给的容量太多也正常。

但提前一周不到给个这个邮件?

这是准备做商业客户的态度?

你微盘送的免费空间吃了吐也就算了。

做对公业务的,早点提醒会死么?

但凡遇到个付款要审批的,怎么搞?

发布于
2021-02-19

[记录]踩了golang的defer/recover的坑

今天写代码的时候完了个花活,想复用recover,结果炸了……

体现在recover没起效,直接panic出来了。

查了下,defer里一旦再调用函数,原有上下文就变了,recover就失效了。

想想也有道理。

改了个骚气代码,解决了

q.Recover = func() {
defer n.Recover()
if r := recover(); r != nil {
panic(r)
}
}
发布于
2021-01-19

阿里云cdn全站加速无法缓存图片的解决

部分php生成的图片无法缓存,响应头永远是 x-cache: MISS TCP_MISS dirn:-2:-2

x-cache:

MISS TCP_MISS dirn:-2:-2
x-cache:

MISS TCP_MISS dirn:-2:-2

经过测试,需要设置缓存过期时间,并移除掉 Pragma 响应头


apache为例

Header unset Pragma

为什么这种特性在文档没有……

奇葩……


发布于
2020-12-31