Add debug infos in CmdInfo to know the amount of fds and goroutines in use

This commit is contained in:
Guillaume J. Charmes 2013-03-30 10:33:10 -07:00
parent b336d928fe
commit 99f9b69716
2 changed files with 16 additions and 0 deletions

View file

@ -203,6 +203,12 @@ func (srv *Server) CmdInfo(stdin io.ReadCloser, stdout io.Writer, args ...string
len(srv.runtime.List()),
VERSION,
imgcount)
if !rcli.DEBUG_FLAG {
return nil
}
fmt.Fprintf(stdout, "debug mode enabled\n")
fmt.Fprintf(stdout, "fds: %d\ngoroutines: %d\n", getTotalUsedFds(), runtime.NumGoroutine())
return nil
}

View file

@ -7,6 +7,7 @@ import (
"fmt"
"github.com/dotcloud/docker/rcli"
"io"
"io/ioutil"
"net/http"
"os"
"os/exec"
@ -260,3 +261,12 @@ func (w *writeBroadcaster) Close() error {
func newWriteBroadcaster() *writeBroadcaster {
return &writeBroadcaster{list.New()}
}
func getTotalUsedFds() int {
if fds, err := ioutil.ReadDir(fmt.Sprintf("/proc/%d/fd", os.Getpid())); err != nil {
Debugf("Error opening /proc/%d/fd: %s", os.Getpid(), err)
} else {
return len(fds)
}
return -1
}