mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
added memory profiling flag for dumping heap periodically
This commit is contained in:
parent
295cdf66fc
commit
55fd63b82d
@ -35,7 +35,10 @@ var (
|
||||
flagWebserverAddress = flag.String("webserver-address", "", "address to bind web server host:port, when empty no webserver will be spawned")
|
||||
flagWebserverPath = flag.String("webserver-path", "/contentserver", "path to export the webserver on - useful when behind a proxy")
|
||||
flagVarDir = flag.String("var-dir", "/var/lib/contentserver", "where to put my data")
|
||||
flagFreeOSMem = flag.Int("free-os-mem", 0, "free OS mem every X minutes")
|
||||
|
||||
// debugging / profiling
|
||||
flagFreeOSMem = flag.Int("free-os-mem", 0, "free OS mem every X minutes")
|
||||
flagHeapDump = flag.Int("heap-dump", 0, "dump heap every X minutes")
|
||||
|
||||
logLevelOptions = []string{
|
||||
logLevelError,
|
||||
@ -78,6 +81,24 @@ func main() {
|
||||
}()
|
||||
}
|
||||
|
||||
if *flagHeapDump > 0 {
|
||||
log.Notice("[INFO] dumping heap every ", *flagHeapDump, " minutes!")
|
||||
go func() {
|
||||
for _ = range time.After(time.Duration(*flagFreeOSMem) * time.Minute) {
|
||||
log.Notice("HeapDump")
|
||||
f, err := os.Create("heapdump")
|
||||
if err != nil {
|
||||
panic("failed to create heap dump file")
|
||||
}
|
||||
debug.WriteHeapDump(f.Fd())
|
||||
err = f.Close()
|
||||
if err != nil {
|
||||
panic("failed to create heap dump file")
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
if len(flag.Args()) == 1 {
|
||||
fmt.Println(*flagAddress, flag.Arg(0))
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user