Skip to content

Commit 5bb1dc1

Browse files
authored
Merge pull request #1476 from NASA-AMMOS/bug/sequencing-server-memory-leak
Sequencing Server Memory Leak
2 parents 8ca9a84 + 2bd0923 commit 5bb1dc1

File tree

4 files changed

+8
-0
lines changed

4 files changed

+8
-0
lines changed

deployment/docker-compose.yml

+1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ services:
126126
SEQUENCING_DB_PASSWORD: "${SEQUENCING_PASSWORD}"
127127
SEQUENCING_LOCAL_STORE: /usr/src/app/sequencing_file_store
128128
SEQUENCING_WORKER_NUM: 8
129+
SEQUENCING_MAX_WORKER_NUM : 8
129130
SEQUENCING_MAX_WORKER_HEAP_MB: 1000
130131
TRANSPILER_ENABLED: "true"
131132
image: "${REPOSITORY_DOCKER_URL}/aerie-sequencing:${DOCKER_TAG}"

docker-compose.yml

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ services:
9090
SEQUENCING_DB_PASSWORD: "${SEQUENCING_PASSWORD}"
9191
SEQUENCING_LOCAL_STORE: /usr/src/app/sequencing_file_store
9292
SEQUENCING_WORKER_NUM: 8
93+
SEQUENCING_MAX_WORKER_NUM : 8
9394
SEQUENCING_MAX_WORKER_HEAP_MB: 1000
9495
TRANSPILER_ENABLED: "true"
9596
image: aerie_sequencing

sequencing-server/src/app.ts

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export let graphqlClient = new GraphQLClient(getEnv().MERLIN_GRAPHQL_URL, {
5151
export const piscina = new Piscina({
5252
filename: new URL('worker.js', import.meta.url).pathname,
5353
minThreads: parseInt(getEnv().SEQUENCING_WORKER_NUM),
54+
maxThreads: parseInt(getEnv().SEQUENCING_MAX_WORKER_NUM),
5455
resourceLimits: { maxOldGenerationSizeMb: parseInt(getEnv().SEQUENCING_MAX_WORKER_HEAP_MB) },
5556
});
5657
export const promiseThrottler = new PromiseThrottler(parseInt(getEnv().SEQUENCING_WORKER_NUM) - 2);
@@ -301,6 +302,7 @@ app.listen(PORT, () => {
301302
logger.info(`connected to port ${PORT}`);
302303
logger.info(`Worker pool initialized:
303304
Total workers started: ${piscina.threads.length},
305+
Max Workers Allowed: ${getEnv().SEQUENCING_MAX_WORKER_NUM},
304306
Heap Size per Worker: ${getEnv().SEQUENCING_MAX_WORKER_HEAP_MB} MB`);
305307

306308
if (getEnv().TRANSPILER_ENABLED === 'true') {

sequencing-server/src/env.ts

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export type Env = {
1010
SEQUENCING_DB_PASSWORD: string;
1111
STORAGE: string;
1212
SEQUENCING_WORKER_NUM: string;
13+
SEQUENCING_MAX_WORKER_NUM : string
1314
SEQUENCING_MAX_WORKER_HEAP_MB: string;
1415
TRANSPILER_ENABLED: string;
1516
};
@@ -27,6 +28,7 @@ export const defaultEnv: Env = {
2728
STORAGE: 'sequencing_file_store',
2829
SEQUENCING_WORKER_NUM: '8',
2930
SEQUENCING_MAX_WORKER_HEAP_MB: '1000',
31+
SEQUENCING_MAX_WORKER_NUM : '8',
3032
TRANSPILER_ENABLED: 'true',
3133
};
3234

@@ -44,6 +46,7 @@ export function getEnv(): Env {
4446
const SEQUENCING_DB_PASSWORD = env['SEQUENCING_DB_PASSWORD'] ?? defaultEnv.SEQUENCING_DB_PASSWORD;
4547
const STORAGE = env['SEQUENCING_LOCAL_STORE'] ?? defaultEnv.STORAGE;
4648
const SEQUENCING_WORKER_NUM = env['SEQUENCING_WORKER_NUM'] ?? defaultEnv.SEQUENCING_WORKER_NUM;
49+
const SEQUENCING_MAX_WORKER_NUM = env['SEQUENCING_MAX_WORKER_NUM'] ?? defaultEnv.SEQUENCING_MAX_WORKER_NUM;
4750
const SEQUENCING_MAX_WORKER_HEAP_MB =
4851
env['SEQUENCING_MAX_WORKER_HEAP_MB'] ?? defaultEnv.SEQUENCING_MAX_WORKER_HEAP_MB;
4952
const TRANSPILER_ENABLED = env['TRANSPILER_ENABLED'] ?? defaultEnv.TRANSPILER_ENABLED;
@@ -59,6 +62,7 @@ export function getEnv(): Env {
5962
SEQUENCING_DB_PASSWORD,
6063
STORAGE,
6164
SEQUENCING_WORKER_NUM,
65+
SEQUENCING_MAX_WORKER_NUM,
6266
SEQUENCING_MAX_WORKER_HEAP_MB,
6367
TRANSPILER_ENABLED,
6468
};

0 commit comments

Comments
 (0)