go
柳清风09
这个作者很懒,什么都没留下…
展开
-
diff pprof heap
dump heapcurl -s http://127.0.0.1:8080/debug/pprof/heap > 1231.heap休息十分钟curl -s http://127.0.0.1:8080/debug/pprof/heap > 1241.heapdiffgo tool pprof --http :9090 --base 1231.heap 1241.heap耗费内存最多的并非是泄露的地方,这是一个容易混淆的地方!...原创 2021-02-08 14:43:17 · 1417 阅读 · 0 评论 -
go并发小工具errgroup
先看demopackage mainimport ( "fmt" "golang.org/x/sync/errgroup" "net/http")func main() { var g errgroup.Group var urls = []string{ "http://www.golang.org/", "http://www.xxxzzzzzzxxxx.com", "http://www.google.com/", } for i := range urls {原创 2020-12-30 09:42:03 · 731 阅读 · 1 评论 -
k8s都开始抛弃dockerd了,ctr需要搞起了
明年的k8s将剔除docker shim,在未来dockerd大概率会淘汰,是时候搞起ctr。ctr是containerd客户端,虽然目前很多功能做的还没有docker那么完善,但基本功能已经具备了。下面我就来实操一下。主要有几个常用的自命名镜像镜像下载镜像列表查询这里需要注意PLATFORMS,它是镜像的能够运行的平台标识。其他从操作也都类似# ctr i -hNAME: ctr images - manage imagesUSAGE: ctr images comma原创 2020-12-13 20:11:32 · 4850 阅读 · 4 评论 -
再次思考一下go网络包中的接口设计
我们经常使用的http包,无论是客户端还是服务端,都有很多值得推敲的地方。首先是服务端设计;上上篇 我们通过监听一个UDS提供一个http服务,代码大概是这样的 unixListener, err := net.Listen("unix", os.Args[1]) if err != nil { panic(err) } server.Serve(unixListener)这里创建一个listener,然后交给serve去处理。这就体现了接口的作用,把监听交给服务去处理,这里监听其实只原创 2020-12-09 19:54:40 · 277 阅读 · 0 评论