Просмотр исходного кода

replace the /gc endpoint with a automatic gc every 3 minutes

Brian Gough 11 лет назад
Родитель
Сommit
2e08281b88
1 измененных файлов с 7 добавлено и 12 удалено
  1. 7 12
      services/filestore/app.coffee

+ 7 - 12
services/filestore/app.coffee

@@ -85,18 +85,6 @@ app.post "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey
 app.put "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.copyFile
 app.put "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.copyFile
 app.del "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.deleteFile
 app.del "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.deleteFile
 
 
-app.get "/gc", (req, res)->
-	if global.gc?
-		memory_before = process.memoryUsage()
-		global.gc()
-		memory_after = process.memoryUsage()
-		delta = {}
-		for k of memory_after
-			delta[k] = memory_after[k] - memory_before[k]
-		res.send { memory_before, memory_after, delta }
-	else
-		res.send(501) # need --expose-gc, send "not implemented"
-
 app.get "/heapdump", (req, res)->
 app.get "/heapdump", (req, res)->
 	require('heapdump').writeSnapshot '/tmp/' + Date.now() + '.filestore.heapsnapshot', (err, filename)->
 	require('heapdump').writeSnapshot '/tmp/' + Date.now() + '.filestore.heapsnapshot', (err, filename)->
 		res.send filename
 		res.send filename
@@ -151,3 +139,10 @@ server.listen port, host, ->
 process.on 'SIGTERM', () ->
 process.on 'SIGTERM', () ->
 	logger.log("filestore got SIGTERM, shutting down gracefully")
 	logger.log("filestore got SIGTERM, shutting down gracefully")
 	beginShutdown()
 	beginShutdown()
+
+if global.gc?
+	gcTimer = setInterval () ->
+		global.gc()
+		logger.log process.memoryUsage(), "global.gc"
+	, 3 * oneMinute = 60 * 1000
+	gcTimer.unref()