forked from cerc-io/plugeth
cmd/geth: add memory stat collection too
This commit is contained in:
parent
c6e2af14c0
commit
c0343c8f17
@ -30,6 +30,7 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/codegangsta/cli"
|
"github.com/codegangsta/cli"
|
||||||
"github.com/ethereum/ethash"
|
"github.com/ethereum/ethash"
|
||||||
@ -42,6 +43,7 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/rpc/comms"
|
"github.com/ethereum/go-ethereum/rpc/comms"
|
||||||
"github.com/mattn/go-colorable"
|
"github.com/mattn/go-colorable"
|
||||||
"github.com/mattn/go-isatty"
|
"github.com/mattn/go-isatty"
|
||||||
|
"github.com/rcrowley/go-metrics"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -285,6 +287,28 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
// Start system runtime metrics collection
|
||||||
|
go func() {
|
||||||
|
used := metrics.GetOrRegisterMeter("system/memory/used", metrics.DefaultRegistry)
|
||||||
|
total := metrics.GetOrRegisterMeter("system/memory/total", metrics.DefaultRegistry)
|
||||||
|
mallocs := metrics.GetOrRegisterMeter("system/memory/mallocs", metrics.DefaultRegistry)
|
||||||
|
frees := metrics.GetOrRegisterMeter("system/memory/frees", metrics.DefaultRegistry)
|
||||||
|
|
||||||
|
stats := make([]*runtime.MemStats, 2)
|
||||||
|
for i := 0; i < len(stats); i++ {
|
||||||
|
stats[i] = new(runtime.MemStats)
|
||||||
|
}
|
||||||
|
for i := 1; ; i++ {
|
||||||
|
runtime.ReadMemStats(stats[i%2])
|
||||||
|
|
||||||
|
used.Mark(int64(stats[i%2].Alloc - stats[(i-1)%2].Alloc))
|
||||||
|
total.Mark(int64(stats[i%2].TotalAlloc - stats[(i-1)%2].TotalAlloc))
|
||||||
|
mallocs.Mark(int64(stats[i%2].Mallocs - stats[(i-1)%2].Mallocs))
|
||||||
|
frees.Mark(int64(stats[i%2].Frees - stats[(i-1)%2].Frees))
|
||||||
|
|
||||||
|
time.Sleep(3 * time.Second)
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
Loading…
Reference in New Issue
Block a user