node-red / node-red/node-red-docker
Periodic CPU spikes caused by default `healthcheck.js` in Node-RED Docker image
Nessuno ha ancora preso questa issue.
- Lingua principale
- Shell
- Stelle
- 540
- Fork
- 434
- Merge medio
- 24m
- PR unite (30g)
- 5
Descrizione
Periodic CPU spikes caused by default healthcheck in Node-RED Docker image
I recently tried to deliver a Node-RED Docker container to a colleague who is not very familiar with Node-RED and is quite cautious about trusting it in production.
During testing, he noticed a periodic CPU spike every 30 seconds, where CPU usage briefly jumps from ~0.5% to ~6% within less than a second.
After investigation, I found the cause is the default healthcheck.js. The Docker healthcheck executes every 30 seconds and runs node /healthcheck.js, which starts a full Node.js process and performs an HTTP request to check service availability.
While this design is functionally correct, it introduces unnecessary CPU overhead in lightweight or single-node deployments.
I would like to suggest considering a more lightweight healthcheck approach, such as a TCP port check or a lightweight HTTP probe, instead of starting a full Node.js process (node /healthcheck.js) on every check.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia individuando il healthcheck.js predefinito e la configurazione dell’immagine Docker che lo esegue ogni 30 secondi. Confronta il controllo attuale con node /healthcheck.js con le alternative leggere descritte nell’issue e verifica che l’healthcheck scelto continui a confermare la disponibilità del servizio evitando al contempo il picco periodico di CPU segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- docker, javascript, node.js
- Ambito
- devops, infrastructure, performance
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 52/100