From 2e08281b88c1b037e537db0c6ce1a91e6f190bc7 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 5 Aug 2015 16:52:01 +0100 Subject: [PATCH] replace the /gc endpoint with a automatic gc every 3 minutes --- services/filestore/app.coffee | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index c06353518b..95fdf146d3 100644 --- a/services/filestore/app.coffee +++ b/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.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()