整理了一份 VictoriaMetrics 中文文档

30 天前
 cloudfly
最近写了一份 VictoriaMetrics 的中文文档,希望能帮到一些做可观测或监控方向的小伙伴。

https://victoriametrics.com.cn/docs/concepts/

还有一些内容还在翻译整理中……
1195 次点击
所在节点    程序员
13 条回复
grzhan
30 天前
点赞,近期刚好在看 VictoriaMetrics 的源码,感觉受益匪浅,很多性能优化技巧可能自己也需要做些 benchmark 再思考验证。

翻译工作如果有需要的话我可以帮忙做一些。
GoRuby
30 天前
👍
cloudfly
30 天前
@grzhan 嗯,源码确实优秀,我读完也是受益良多。如果单纯看 Go 语言的性能优化技巧,作者写的 fasthttp 推荐下,fasthttp 功能纯粹些,容易阅读,一些代码技巧都是他的风格。

VictoriaMetrics 另外优秀的地方是一些设计没走寻常路,比如 不用 wal ,不用 mmap ,这两点是大多数 db 都引擎会无脑使用的。然后也不用 facebook 开源的 Gorilla 时序数据专用压缩算法,采用 SN 架构做集群。

就感觉这个作者真是每个细节上都认真做了思考,没有照搬其他 db 。
grzhan
30 天前
@cloudfly 是这样,老毛子做东西抛去了很多繁文缛节,同时没有过多封装和抽象,读的时候感觉应跳出一些思维定式和权威崇拜的桎梏,很多主流的方案未必没有优化的空间。

以及 VM 作者让我感觉 Go 的上限其实不低,即便不用 C++/Rust 也还是可以通过 Go 写出性能满足生产要求的代码(当然前提还是对于计算机系统、网络等有足够深刻的理解)

我应该会把 VM 系统性读完后去把记录的一些优化技巧和调参梳理下,自己写 benchmark 多进行验证(比如频繁使用 sync.Pool 以及序列化时将数据梳理在一个大 []byte 里带来的局部性…),然后再去看看 fasthttp 的部分……当然,更进一步来说,通过这种阅读也更进一步认知到自己对于系统、网络理解上的不足,后续还是要继续钻下去。
grzhan
30 天前
像 mmap ,作者在 18 年时候就提过 Golang 使用 mmap 的问题: https://valyala.medium.com/mmap-in-go-considered-harmful-d92a25cb161d
但我最近看源码发现其实现在 VM 还是会用到一点 mmap 的,并在注释中说明在实际生产环境中这么写还是 ok 的:
https://github.com/VictoriaMetrics/VictoriaMetrics/blob/025eec2cb00381b5292d34601f96d7fcf7503191/lib/fs/reader_at.go#L81
具体情况如何后面我想写点 benchmark 梳理看下。
liuliancao
30 天前
看了下 翻译的真好 就是左上角那个中文手册左边的那个 victoria 单词拼错了 哈哈
Jzdoxc
29 天前
文档写的很棒👍
cloudfly
29 天前
@liuliancao 哈哈哈😂,感谢感谢
cloudfly
29 天前
@grzhan 牛逼,你看得比我细致多了。我是为了解决生产环境的压力,要做一些源码定制,倒逼着自己把源码读了个大概。

mmap 那个我几年前也看到了,这次也翻译放手册里了。

用 Victoria Metrics 之前,我用了一年半的 m3db ,这家伙 90 多万行代码,各种过度抽象,感觉自己在读 java 。性能还不及 vm 的 1/10 。
grzhan
28 天前
@cloudfly 我也不大习惯类似很多 Java/C# 项目这样的复杂的抽象,也可能是自己脑子不好不大擅长设计这些 hhh
包括 Kubernetes 源码也有点这味,相比于阅读 VM 以及 Go runtime 的代码,会很不适应。
VictoriaMetrics
25 天前
感谢分享
VictoriaMetrics
25 天前
> 就感觉这个作者真是每个细节上都认真做了思考,没有照搬其他 db 。

老板听到应该会很开心
cloudfly
24 天前
@VictoriaMetrics 哦?你现在在给作者打工嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1081313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX