Jenkins JVM Heap

În urmă cu ceva timp, mai precis prin Aprilie, v-am prezentat succint câteva detalii despre Jenkins și utilizarea acestuia. Acest mic articol se vrea doar o completare și vizează modul în care Jenkins folosește memoria RAM. Configurația pe care Jenkins rulează este una decentă zic eu: VPS, 4vCPU, 8Gb RAM și 200 GB spațiu de stocare. Ecosistemul mai cuprinde și existența unui server de UrbanTerror, Apache Web Server precum și Grafana (cu adaosurile de rigoare Promtail, Loki, Prometheus și node_exporter) pentru monitorizare.

Problema mea, se pare că și a altora, este dată de modul în care Jenkins folosește memoria RAM atunci când nu există nicio limită setată. Ca și în cazul acelui utilizator, memoria RAM utilizată de Jenkins ajunge la 2,3 Gb RAM și rămâne așa chiar dacă nu mai execut sarcini sau am efectuat delogarea.

Soluția în cazul meu este reprezentată de folosirea unui parametru pentru executabilul java: Environment=”JAVA_OPTS=-Xmx512M -Djava.awt.headless=true”. Jenkins rulează nativ în cadrul sistemului de operare AlmaLinux 8, pașii sunt următorii:
sudo cat /etc/systemd/system/multi-user.target.wants/jenkins.service – pentru a vedea ce opțiuni are serviciul Jenkins
sudo systemctl edit jenkins – unde putem insera opțiuni precum cea de generare a jurnalului de lucru și cea referitoare la memoria RAM aferente serviciului:
[Service]
# Arguments for the Jenkins JVM
Environment="JAVA_OPTS=-Xmx1024M -Djava.awt.headless=true"

sudo systemctl daemon-reload – este folosit pentru a actualiza detaliile despre serviciile prezente (inclusiv jenkins pe care l-am modificat)
sudo systemctl restart jenkins – o dată ce am aplicat modificările trebuie să repornim serviciul
ps -aux |grep java – pentru a valida ca procesul foloseste opțiunea JAVA_OPTS=-Xmx1024M.

Dacă Jenkins este configurat ca și container, este necesar să aveți în vedere următoarea opțiune:
environment:
JAVA_OPTS: "-Xmx512M"

Este posibil ca 512M să fie puțin dacă vorbim despre multe sarcini executate de Jenkins așa că indiferent de mediul în care se folosește, valoarea parametrului poate fi mai mare sau mai mică pentru voi. Adaptați după nevoie.

Leave a Reply

Your email address will not be published. Required fields are marked *