Bonnes pratiques applicables pour limiter les problèmes de mémoire
Lorsque vous développez et surveillez vos applications ThingWorx, utilisez les bonnes pratiques suivantes pour éviter les problèmes de performances dus à la mémoire :
Surveillez l'utilisation quotidienne de la mémoire par les fonctions de votre application ThingWorx. Cela vous permettra de mieux comprendre la consommation de mémoire dans votre application, en régime normal et en conditions de stress.
Effectuez des tests d'évolutivité avec des données de type production à l'aide d'Apache JMeter ou d'utilitaires similaires pour modéliser l'interaction simultanée d'un grand nombre d'utilisateurs et d'appareils avec votre application ThingWorx.
Vous devez veiller à allouer suffisamment de ressources système à vos tests d'évolutivité. La plupart des systèmes de production nécessitent 64 Go de RAM, dont 40 Go pour le segment de mémoire Java.
Les requêtes de flux peuvent récupérer un grand nombre d'enregistrements de la base de données avant que ceux-ci ne soient filtrés dans la mémoire de la JVM. Il est recommandé d'ajouter des intervalles de temps appropriés pour minimiser le nombre de lignes récupérées par les flux. Cela s'avère particulièrement utile lorsque les données commencent à s'accumuler au fil de l'utilisation quotidienne en production.
Dans la mesure du possible, utilisez des systèmes externes, tels qu'un serveur de base de données, un serveur de microservice ou un serveur ThingWorx fédéré, pour les traitements lourds en mémoire.
Optimisez les services à durée d'exécution longue. Tout service exécuté sur plus de 10 minutes est susceptible de bloquer la mémoire, les connexions à la base de données ainsi que d'autres ressources serveur lors de l'exécution. Les services planifiés doivent également s'exécuter et se terminer en moins de 10 minutes pour garantir le retour des ressources mémoire au système.
Envisagez l'implémentation d'un cluster haute disponibilité pour l'utilisation en production. L'application globale restera ainsi disponible même si l'un des noeuds ThingWorx rencontre des problèmes de mémoire.