diff --git a/maintner/maintnerd/gcslog/gcslog.go b/maintner/maintnerd/gcslog/gcslog.go
index c8bf2dd..a6f8076 100644
--- a/maintner/maintnerd/gcslog/gcslog.go
+++ b/maintner/maintnerd/gcslog/gcslog.go
@@ -49,6 +49,7 @@
 	bucketName    string
 	bucket        *storage.BucketHandle
 	segmentPrefix string
+	debug         bool
 
 	mu         sync.Mutex // guards the following
 	cond       *sync.Cond
@@ -279,7 +280,9 @@
 	defer gl.mu.Unlock()
 	for {
 		if curSize := gl.sumSizeLocked(); curSize != v {
-			log.Printf("waitSize fired. from %d => %d", v, curSize)
+			if gl.debug {
+				log.Printf("gcslog: waitSize fired. from %d => %d", v, curSize)
+			}
 			return true
 		}
 		select {
@@ -362,6 +365,11 @@
 	return len(p), nil
 }
 
+// SetDebug controls whether verbose debugging is enabled on this log.
+//
+// It must only be called before it's used.
+func (gl *GCSLog) SetDebug(v bool) { gl.debug = v }
+
 // Log writes m to GCS after the buffer is full or after a periodic flush.
 func (gl *GCSLog) Log(m *maintpb.Mutation) error {
 	data, err := proto.Marshal(m)
diff --git a/maintner/maintnerd/maintnerd.go b/maintner/maintnerd/maintnerd.go
index c271696..b5ca11f 100644
--- a/maintner/maintnerd/maintnerd.go
+++ b/maintner/maintnerd/maintnerd.go
@@ -18,6 +18,7 @@
 	"net"
 	"net/http"
 	"net/http/httptest"
+	_ "net/http/pprof"
 	"os"
 	"path/filepath"
 	"runtime"
@@ -161,6 +162,7 @@
 			if err != nil {
 				log.Fatalf("newGCSLog: %v", err)
 			}
+			gl.SetDebug(*debug)
 			gl.RegisterHandlers(http.DefaultServeMux)
 			if *migrateGCSFlag {
 				diskLog := maintner.NewDiskMutationLogger(*dataDir)
@@ -255,6 +257,9 @@
 	grpcServer := grpc.NewServer()
 	apipb.RegisterMaintnerServiceServer(grpcServer, maintapi.NewAPIService(corpus))
 	http.Handle("/apipb.MaintnerService/", grpcServer)
+	http.HandleFunc("/debug/goroutines", func(w http.ResponseWriter, r *http.Request) {
+		http.Redirect(w, r, "/debug/pprof/goroutine?debug=1", http.StatusFound)
+	})
 
 	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
 		if strings.HasPrefix(r.Header.Get("Content-Type"), "application/grpc") {
