mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-10 15:20:56 +00:00
65aaa607ab
Change made by: - running "gvt fetch" on each of the packages mentioned in Godeps/Godeps.json - `rm -rf Godeps` - tweaking the build scripts to not mention Godeps - tweaking the build scripts to test `./lib/...`, `./cmd/...` explicitly (to avoid testing vendor) - tweaking the build scripts to not juggle GOPATH for Godeps and instead set GO15VENDOREXPERIMENT. This also results in some updated packages at the same time I bet. Building with Go 1.3 and 1.4 still *works* but won't use our vendored dependencies - the user needs to have the actual packages in their GOPATH then, which they'll get with a normal "go get". Building with Go 1.6+ will get our vendored dependencies by default even when not using our build script, which is nice. By doing this we gain some freedom in that we can pick and choose manually what to include in vendor, as it's not based on just dependency analysis of our own code. This is also a risk as we might pick up dependencies we are unaware of, as the build may work locally with those packages present in GOPATH. On the other hand the build server will detect this as it has no packages in it's GOPATH beyond what is included in the repo. Recommended tool to manage dependencies is github.com/FiloSottile/gvt.
286 lines
5.2 KiB
Markdown
286 lines
5.2 KiB
Markdown
Memory usage
|
|
============
|
|
|
|
(Highly unscientific.)
|
|
|
|
Command used to gather static memory usage:
|
|
|
|
```sh
|
|
grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
|
|
```
|
|
|
|
Program used to gather baseline memory usage:
|
|
|
|
```go
|
|
package main
|
|
|
|
import "time"
|
|
|
|
func main() {
|
|
time.Sleep(600e9)
|
|
}
|
|
```
|
|
|
|
Baseline
|
|
--------
|
|
|
|
```
|
|
VmPeak: 42604 kB
|
|
VmSize: 42604 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 1120 kB
|
|
VmRSS: 1120 kB
|
|
VmData: 35460 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1020 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 36 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
Program used to gather metric memory usage (with other metrics being similar):
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"metrics"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Sprintf("foo")
|
|
metrics.NewRegistry()
|
|
time.Sleep(600e9)
|
|
}
|
|
```
|
|
|
|
1000 counters registered
|
|
------------------------
|
|
|
|
```
|
|
VmPeak: 44016 kB
|
|
VmSize: 44016 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 1928 kB
|
|
VmRSS: 1928 kB
|
|
VmData: 36868 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1024 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 40 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**1.412 kB virtual, TODO 0.808 kB resident per counter.**
|
|
|
|
100000 counters registered
|
|
--------------------------
|
|
|
|
```
|
|
VmPeak: 55024 kB
|
|
VmSize: 55024 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 12440 kB
|
|
VmRSS: 12440 kB
|
|
VmData: 47876 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1024 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 64 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**0.1242 kB virtual, 0.1132 kB resident per counter.**
|
|
|
|
1000 gauges registered
|
|
----------------------
|
|
|
|
```
|
|
VmPeak: 44012 kB
|
|
VmSize: 44012 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 1928 kB
|
|
VmRSS: 1928 kB
|
|
VmData: 36868 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1020 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 40 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**1.408 kB virtual, 0.808 kB resident per counter.**
|
|
|
|
100000 gauges registered
|
|
------------------------
|
|
|
|
```
|
|
VmPeak: 55020 kB
|
|
VmSize: 55020 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 12432 kB
|
|
VmRSS: 12432 kB
|
|
VmData: 47876 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1020 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 60 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**0.12416 kB virtual, 0.11312 resident per gauge.**
|
|
|
|
1000 histograms with a uniform sample size of 1028
|
|
--------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 72272 kB
|
|
VmSize: 72272 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 16204 kB
|
|
VmRSS: 16204 kB
|
|
VmData: 65100 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 80 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**29.668 kB virtual, TODO 15.084 resident per histogram.**
|
|
|
|
10000 histograms with a uniform sample size of 1028
|
|
---------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 256912 kB
|
|
VmSize: 256912 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 146204 kB
|
|
VmRSS: 146204 kB
|
|
VmData: 249740 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 448 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**21.4308 kB virtual, 14.5084 kB resident per histogram.**
|
|
|
|
50000 histograms with a uniform sample size of 1028
|
|
---------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 908112 kB
|
|
VmSize: 908112 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 645832 kB
|
|
VmRSS: 645588 kB
|
|
VmData: 900940 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 1716 kB
|
|
VmSwap: 1544 kB
|
|
```
|
|
|
|
**17.31016 kB virtual, 12.88936 kB resident per histogram.**
|
|
|
|
1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
|
|
-------------------------------------------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 62480 kB
|
|
VmSize: 62480 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 11572 kB
|
|
VmRSS: 11572 kB
|
|
VmData: 55308 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 64 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**19.876 kB virtual, 10.452 kB resident per histogram.**
|
|
|
|
10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
|
|
--------------------------------------------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 153296 kB
|
|
VmSize: 153296 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 101176 kB
|
|
VmRSS: 101176 kB
|
|
VmData: 146124 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 240 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**11.0692 kB virtual, 10.0056 kB resident per histogram.**
|
|
|
|
50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
|
|
--------------------------------------------------------------------------------------
|
|
|
|
```
|
|
VmPeak: 557264 kB
|
|
VmSize: 557264 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 501056 kB
|
|
VmRSS: 501056 kB
|
|
VmData: 550092 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1048 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 1032 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**10.2932 kB virtual, 9.99872 kB resident per histogram.**
|
|
|
|
1000 meters
|
|
-----------
|
|
|
|
```
|
|
VmPeak: 74504 kB
|
|
VmSize: 74504 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 24124 kB
|
|
VmRSS: 24124 kB
|
|
VmData: 67340 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1040 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 92 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**31.9 kB virtual, 23.004 kB resident per meter.**
|
|
|
|
10000 meters
|
|
------------
|
|
|
|
```
|
|
VmPeak: 278920 kB
|
|
VmSize: 278920 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 227300 kB
|
|
VmRSS: 227300 kB
|
|
VmData: 271756 kB
|
|
VmStk: 136 kB
|
|
VmExe: 1040 kB
|
|
VmLib: 1848 kB
|
|
VmPTE: 488 kB
|
|
VmSwap: 0 kB
|
|
```
|
|
|
|
**23.6316 kB virtual, 22.618 kB resident per meter.**
|