|
|
14 năm trước cách đây | |
|---|---|---|
| cmd | 14 năm trước cách đây | |
| .gitignore | 14 năm trước cách đây | |
| LICENSE | 14 năm trước cách đây | |
| Makefile | 14 năm trước cách đây | |
| README.md | 14 năm trước cách đây | |
| counter.go | 14 năm trước cách đây | |
| counter_test.go | 14 năm trước cách đây | |
| ewma.go | 14 năm trước cách đây | |
| ewma_test.go | 14 năm trước cách đây | |
| gauge.go | 14 năm trước cách đây | |
| gauge_test.go | 14 năm trước cách đây | |
| healthcheck.go | 14 năm trước cách đây | |
| histogram.go | 14 năm trước cách đây | |
| histogram_test.go | 14 năm trước cách đây | |
| log.go | 14 năm trước cách đây | |
| meter.go | 14 năm trước cách đây | |
| meter_test.go | 14 năm trước cách đây | |
| metrics.go | 14 năm trước cách đây | |
| registry.go | 14 năm trước cách đây | |
| sample.go | 14 năm trước cách đây | |
| sample_test.go | 14 năm trước cách đây | |
| syslog.go | 14 năm trước cách đây | |
| test.go | 14 năm trước cách đây | |
| timer.go | 14 năm trước cách đây |
TODO
(Highly unscientific.)
Command used to gather static memory usage:
grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
Program used to gather baseline memory usage:
package main
import "time"
func main() {
time.Sleep(600e9)
}
Baseline:
VmPeak: 792544 kB
VmSize: 792544 kB
VmLck: 0 kB
VmHWM: 496 kB
VmRSS: 496 kB
VmData: 792024 kB
VmStk: 136 kB
VmExe: 376 kB
VmLib: 0 kB
VmPTE: 28 kB
VmSwap: 0 kB
Program used to gather metric memory usage (with other metrics being similar):
package main
import (
"fmt"
"metrics"
"time"
)
func main() {
r := metrics.NewRegistry()
for i := 0; i < 1000; i++ {
r.RegisterCounter(fmt.Sprintf("%d", i), metrics.NewCounter())
}
time.Sleep(600e9)
}
1000 counters registered:
VmPeak: 807740 kB
VmSize: 807740 kB
VmLck: 0 kB
VmHWM: 5896 kB
VmRSS: 5896 kB
VmData: 805068 kB
VmStk: 136 kB
VmExe: 912 kB
VmLib: 1580 kB
VmPTE: 48 kB
VmSwap: 0 kB
15 kB virtual, 5 kB resident per counter.
100000 counters registered:
VmPeak: 1204156 kB
VmSize: 1204156 kB
VmLck: 0 kB
VmHWM: 450944 kB
VmRSS: 394756 kB
VmData: 1201484 kB
VmStk: 136 kB
VmExe: 912 kB
VmLib: 1580 kB
VmPTE: 928 kB
VmSwap: 56596 kB
4 kB virtual, 4 kB resident per counter.
1000 and 100000 gauges registered: negligibly different than counters.
1000 histograms with a uniform sample size of 1028:
VmPeak: 811724 kB
VmSize: 811724 kB
VmLck: 0 kB
VmHWM: 15568 kB
VmRSS: 15568 kB
VmData: 809036 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 80 kB
VmSwap: 0 kB
19 kB virtual, 15 kB resident per histogram.
10000 histograms with a uniform sample size of 1028:
VmPeak: 883916 kB
VmSize: 883916 kB
VmLck: 0 kB
VmHWM: 144576 kB
VmRSS: 144576 kB
VmData: 881228 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 432 kB
VmSwap: 0 kB
9 kB virtual, 14 kB resident per histogram.
50000 histograms with a uniform sample size of 1028:
VmPeak: 1204300 kB
VmSize: 1204300 kB
VmLck: 0 kB
VmHWM: 480288 kB
VmRSS: 462244 kB
VmData: 1201612 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 1296 kB
VmSwap: 76464 kB
8 kB virtual, 9 kB resident per histogram. WTF?
1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
VmPeak: 811724 kB
VmSize: 811724 kB
VmLck: 0 kB
VmHWM: 10564 kB
VmRSS: 10564 kB
VmData: 809036 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 52 kB
VmSwap: 0 kB
19 kB virtual, 10 kB resident per histogram.
10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
VmPeak: 883788 kB
VmSize: 883788 kB
VmLck: 0 kB
VmHWM: 93484 kB
VmRSS: 93484 kB
VmData: 881100 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 220 kB
VmSwap: 0 kB
9 kB virtual, 9 kB resident per histogram.
50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
VmPeak: 1204172 kB
VmSize: 1204172 kB
VmLck: 0 kB
VmHWM: 460360 kB
VmRSS: 460248 kB
VmData: 1201484 kB
VmStk: 136 kB
VmExe: 928 kB
VmLib: 1580 kB
VmPTE: 944 kB
VmSwap: 112 kB
8 kB virtual, 9 kB resident per histogram. WTF?
250 meters:
VmPeak: 2887084 kB
VmSize: 2887084 kB
VmLck: 0 kB
VmHWM: 3380 kB
VmRSS: 3380 kB
VmData: 2884404 kB
VmStk: 136 kB
VmExe: 920 kB
VmLib: 1580 kB
VmPTE: 1072 kB
VmSwap: 0 kB
8378 kB virtual, 11 kB resident per meter.