源码阅读:VictoriaMetrics中的golang代码优化方法

2022-03-23 00:00:00 数据 对象 数组 内存 调度

者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!

  • cnblogs博客
  • zhihu
  • 公众号:一本正经的瞎扯

VictoriaMetrics监控组件(以下简称VM)号称比Prometheus快了至少3倍,内存占用比Prometheus小了7倍。

为什么能快这么多呢?下面是阅读vm-storage源码后的心得:

1.CPU和并发

基于可用的CPU核数来规划并发

see:victoria-metrics-1.72.0/blob/master/VictoriaMetrics-1.72.0-cluster/lib/cgroup/cpu.go

// AvailableCPUs returns the number of available CPU cores for the app.
func AvailableCPUs() int {
    return runtime.GOMAXPROCS(-1)
}

相关文章