Best practice per la riduzione dei problemi della memoria
Quando si sviluppano e si monitorano le soluzioni ThingWorx, attenersi alle best practice seguenti per evitare problemi di prestazioni dovuti alla memoria.
Monitorare l'utilizzo quotidiano della memoria nelle funzioni della soluzione ThingWorx. Ciò permette di conoscere l'utilizzo della memoria nella soluzione a regime e in condizioni di stress.
Eseguire test di scalabilità con dati simili alla produzione utilizzando Apache JMeter o utilità simili per modellare molti utenti e dispositivi che interagiscono contemporaneamente con la soluzione ThingWorx.
È necessario assicurarsi che siano allocate risorse di sistema sufficienti per il test di scalabilità. La maggior parte dei sistemi di produzione richiede 64 GB di RAM, di cui 40 GB sono allocati per l'heap Java.
Le interrogazioni degli stream possono recuperare un numero elevato di record dal database prima che vegano ulteriormente filtrati nella memoria della JVM. Si consiglia di aggiungere intervalli di tempo appropriati per ridurre al minimo il numero di righe recuperate dagli stream. Ciò risulta utile soprattutto quando i dati iniziano ad accumularsi nell'uso giornaliero della produzione.
Se possibile, utilizzare sistemi esterni, ad esempio un server di database, un server microservice o un server ThingWorx federato per l'elaborazione intensiva in memoria.
Ottimizzare i servizi a esecuzione prolungata. Qualsiasi servizio la cui esecuzione duri oltre 10 minuti rischia di bloccare la memoria, le connessioni di database e altre risorse del server durante l'esecuzione. Anche i servizi programmati devono essere eseguiti e completati in meno di 10 minuti per garantire che vengano restituite le risorse di memoria al sistema.
Prendere in considerazione l'ipotesi di implementare un cluster a disponibilità elevata da utilizzare nella produzione. Ciò garantisce la disponibilità della soluzione anche se in uno dei nodi ThingWorx si verificano problemi di memoria.
È stato utile?