mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-02 21:13:06 +00:00
replace the /gc endpoint with a automatic gc every 3 minutes
This commit is contained in:
parent
e1683b8e1c
commit
2e08281b88
1 changed files with 7 additions and 12 deletions
|
@ -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()
|
||||||
|
|
Loading…
Reference in a new issue