Ottimizzazione di JVM
Sono disponibili alcune impostazioni JVM consigliate per l'ottimizzazione delle prestazioni in ThingWorx. L'ottimizzazione di altri parametri JVM rispetto a quelli elencati di seguito è specifica del carico di lavoro e dipende dalle applicazioni create con ThingWorx. Per un'ottimizzazione specifica in funzione dell'ambiente in uso, contattare il supporto tecnico PTC.
Impostazioni obbligatorie
Impostazione
Descrizione
-server
Indica esplicitamente a JVM di eseguire la modalità server. L'esecuzione nella modalità server è l'impostazione di default quando si utilizza JDK a 64 bit, tuttavia è buona pratica dichiararla.
-d64
Indica esplicitamente a JVM di eseguire la modalità a 64 bit. JVM corrente rileva automaticamente questa modalità, tuttavia è buona pratica dichiararla.
XX:+UseG1GC
Indica a JVM di utilizzare Garbage First Garbage Collector.
-Dfile.encoding=UTF-8
Indica a JVM di utilizzare UTF-8 come set di caratteri di default in modo da consentire la corretta visualizzazione degli alfabeti non occidentali.
-Djava.library.path
Specifica il percorso della libreria nativa.
-Xms3072m (per un sistema con 4 GB di memoria)
Indica a JVM di allocare almeno 3072 MB di memoria al processo di Tomcat. È consigliabile allocare il 75% della memoria di sistema disponibile.
* 
La quantità di memoria deve essere ottimizzata a seconda dell'ambiente in uso.
-Xmx3072m (per un sistema con 4 GB di memoria)
Indica a JVM di limitare la memoria massima per il processo di Tomcat. È consigliabile allocare il 75% della memoria di sistema disponibile.
* 
Il motivo per cui si impostano le quantità minima e massima di memoria sullo stesso valore è che in questo modo si induce JVM a rivalutare la memoria richiesta e a ridimensionare l'allocazione in fase di esecuzione. Mentre questo approccio è consigliabile per gli ambienti ospitati e/o pubblici, per gli ambienti di sviluppo e di test è sufficiente utilizzare l'opzione –Xms512m. Verificare inoltre di lasciare memoria sufficiente a consentire il funzionamento del sistema operativo.
-Dlog4j2.formatMsgNoLookups=true
Impostazioni facoltative per attivare il monitoraggio JMX
Se si sospetta l'esistenza di problemi di memoria, fare riferimento agli strumenti che seguono per ulteriori informazioni sul monitoraggio del sistema. L'impostazione elencata consentirà di connettere tali strumenti all'istanza Tomcat utilizzata da ThingWorx per monitorare le caratteristiche JVM.
Impostazione
Descrizione
-Dcom.sun.management.jmxremote
Notifica a JVM che si intende monitorarlo in remoto tramite JMX.
-Dcom.sun.management.jmxremote.port=22222
Porta che JVM deve aprire per il monitoraggio.
-Dcom.sun.management.jmxremote.ssl=false
Nessun utilizzo di SSL.
-Dcom.sun.management.jmxremote.authenticate=false
Nessuna autenticazione richiesta.
-Djava.rmi.server.hostname=<host o IP>
Nome host o indirizzo IP che viene utilizzato dalla connessione client RMI sottostante.
Aggiornamento del valore del parametro –Xmx
Quando si utilizza il programma di installazione, è necessario specificare in MB tutte le impostazioni dell'heap Java nel file di servizio attenendosi alla procedura descritta di seguito.
1. Arrestare ThingWorx-Foundation.service dalla posizione di default /etc/systemd/system/ThingWorx-Foundation.service utilizzando il comando systemctl stop ThingWorx-Foundation.service.
2. Per verificare che lo stato del servizio sia stato arrestato, eseguire il comando systemctl stop ThingWorx-Foundation.service.
3. Visualizzare il file ThingWorx-Foundation.service nel terminale utilizzando il comando vi e modificare il valore del parametro -Xmx. Assicurarsi che il file abbia i permessi radice. Fare riferimento alla schermata di esempio riportata di seguito.
4. Modificare il valore del parametro -Xmx da gb a mb e mantenere m come unità di misura. Assicurarsi che sia maggiore del valore dell'heap iniziale. Fare riferimento alla schermata di esempio riportata di seguito.
5. Eseguire il comando systemctl daemon-reload.
6. Avviare il servizio ThingWorx-Foundation utilizzando il comando systemctl start ThingWorx-Foundation.service.
7. Eseguire nuovamente il programma di installazione dell'aggiornamento.
Per ulteriori informazioni, vedere l'articolo del supporto PTC CS397788.
È stato utile?