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

This commit is contained in:
Brian Gough 2015-08-05 16:52:01 +01:00
parent e1683b8e1c
commit 2e08281b88

View file

@ -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.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)->
require('heapdump').writeSnapshot '/tmp/' + Date.now() + '.filestore.heapsnapshot', (err, filename)->
res.send filename
@ -151,3 +139,10 @@ server.listen port, host, ->
process.on 'SIGTERM', () ->
logger.log("filestore got SIGTERM, shutting down gracefully")
beginShutdown()
if global.gc?
gcTimer = setInterval () ->
global.gc()
logger.log process.memoryUsage(), "global.gc"
, 3 * oneMinute = 60 * 1000
gcTimer.unref()