diff --git a/others/scaler.mjs b/others/scaler.mjs new file mode 100644 index 00000000..ad418f10 --- /dev/null +++ b/others/scaler.mjs @@ -0,0 +1,15 @@ +import NodeCache from 'node-cache'; + +const cache = new NodeCache({ stdTTL: 345600, checkperiod: 3600, useClones: false }); + +function scaleCache() { + const mem = process.memoryUsage(); + const freeHeap = mem.heapTotal - mem.heapUsed; + const ratio = freeHeap / mem.heapTotal; + + const max = ratio > 0.5 ? 20000 : ratio < 0.2 ? 5000 : 10000; + cache.options.maxKeys = max; + console.log(`[SCALER] freeHeap ${(freeHeap/1e6).toFixed(1)}MB maxKeys → ${max}`); +} + +setInterval(scaleCache, 60_000); \ No newline at end of file