Project

General

Profile

Actions

Bug #22309

closed

D-Net application is slow

Added by Michele Artini about 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
_InfraScience Systems Engineer
Start date:
Oct 27, 2021
Due date:
% Done:

100%

Estimated time:

Description

The application deployed in the new server (newdnet-openportal.isti.cnr.it) is slow performing the startup and executing operations like:

for (final Resource res : ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources("classpath*:/META-INF/**/pom.xml")) {
   …
}

I noticed also that the urls of the resolved classpath resources is:

jar:war:file:/var/lib/tomcat_dnet/8080/webapps/is.war*/WEB-INF/lib/commons-net-3.3.jar!/META-INF/maven/commons-net/commons-net/pom.xml

but it should be (according to the old server):

jar:file:/var/cache/tomcat_dnet/8080/Catalina/localhost/is/WEB-INF/lib/commons-net-3.3.jar!/META-INF/maven/commons-net/commons-net/pom.xml

Probably tomcat has not exploded the WAR in the working dir, Can you fix?


Add

Subtasks


Add

Related issues

Updated by Andrea Dell'Amico about 3 years ago

Non capisco il senso di questa segnalazione. Se il war file non fosse esploso, l'applicazione non partirebbe.
Detto questo, vedo varie stranezze nel modo in cui il war è gestito.

  • Non c'è l'autounpack configurato su tomcat, quindi dentro webapps il file is.war non è esploso (vale sul vecchio e sul nuovo).
  • C'è una directory WEB-INF sotto webapps, con dentro property e classi. Il contenuto è diverso tra vecchio e nuovo, e a occhio quella directory non dovrebbe esistere né da una parte né dall'altra.
  • Sul nuovo, il file /var/lib/tomcat_dnet/8080/common/classes/cnr-override.properties contiene
msro.wf.mail.message.baseUrl = http://dnet-openportal.isti.cnr.it:8080/is/mvc/ui

Che magari non influisce, ma credo non sia corretto

  • La connessione a mysql non ha TLS abilitato (non riguarda il caso, ma non c'è motivo per non attivare TLS)

Io direi di iniziare con:

  • Ripristinare la configurazione del garbage collector (e riportare le modifiche allo heap nel playbook, non è accettabile modificare a mano configurazioni gestite via ansible)
  • Attivare lo unpack dei war nella configurazione di tomcat (va messa a True la variabile e aggiunto , autodeploy: '{{ tomcat_m_webapps_autodeploy }}', unpack: '{{ tomcat_m_webapps_unpack }}'a tomcat_m_instances)
  • Eliminare da webapps la directory WEB-INF
  • Verificare tutti i valori di /var/lib/tomcat_dnet/8080/common/classes/cnr-override.properties

Updated by Anonymous about 3 years ago

Andrea Dell'Amico wrote in #note-1:

Non capisco il senso di questa segnalazione. Se il war file non fosse esploso, l'applicazione non partirebbe.

Sul filesystem non ci stanno i file del war esploso, e questo associato alla lentezza nelle fasi di ricerca delle risorse mi ha fatto pensare che fosse un problema di deploy dell'applicazione. Come risulta anche dai diversi path delle risorse.

Io direi di iniziare con:

  • Eliminare da webapps la directory WEB-INF

FATTO

  • Verificare tutti i valori di /var/lib/tomcat_dnet/8080/common/classes/cnr-override.properties

FATTO

Actions #3

Updated by Andrea Dell'Amico about 3 years ago

  • Status changed from New to In Progress
  • Assignee changed from Tommaso Piccioli to _InfraScience Systems Engineer

Updated by Andrea Dell'Amico about 3 years ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 100

Fatto. Ora il war file viene espanso sotto webapps allo startup di tomcat, lo heap è settato a 3096MB.
I tempi del restart:

INFO: Deployment of web application archive [/var/lib/tomcat_dnet/8080/webapps/is.war] has finished in [23,840] ms
Oct 29, 2021 2:24:23 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-127.0.0.1-8080"]
Oct 29, 2021 2:24:23 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Oct 29, 2021 2:24:23 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23932 ms

Updated by Andrea Dell'Amico about 3 years ago

FYI: non so se l'incremento dei tempi di startup sia dovuto allo autoUnpack (che è attivo di default sulle installazioni smartgears, ma disattivato in praticamente tutte le installazioni dnet a parte quella di ariadne e poche altre, perché non sono state aggiornate le configurazioni dopo che ho cambiato il default qualche anno fa) o al fix in cnr-override.properties. Se serve si verifica facilmente.

Updated by Anonymous about 3 years ago

Il fix cnr-override properties non credo sia collegato al problema di lentezza, quella property è un parametro del template di una mail, potrebbe contenere qualsiasi stringa.

Comunque bene così siamo passati da 15 minuti a 24 secondi.

Updated by Anonymous about 3 years ago

  • Status changed from Feedback to Closed

Anche il wf di trasformazione di ISPC che prima impiegava 20 minuti, ora ha impiegato 7 secondi.

Chiudo il ticket.

Updated by Andrea Dell'Amico about 3 years ago

Sto facendo il test, giusto per curiosità, e posso confermare che unpackWars fa la differenza.

Updated by Andrea Dell'Amico about 3 years ago

Abuso di questo ticket per aggiungere che ho cambiato il playbook in modo da creare utenti non privilegiati per me e Tommaso su tutte le macchine: gli accessi diretti come root dovrebbero essere evitati.

Actions

Also available in: Atom PDF