« OpenSim Statistiques » : différence entre les versions
Aucun résumé des modifications |
|||
| (56 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
= Obtenir les statistiques de la région = | = Obtenir les statistiques de la région = | ||
== Configurer OpenSim.ini== | == Configurer OpenSim.ini pour afficher les statistiques de région == | ||
{{Config Statistiques de région}} | |||
== Sources == | |||
* [[Tri_des_thèmes_des_réunions_par_domaines#Statistiques | Les développeurs en parlent pendant les réunions du mardi]]. | |||
= | * [http://opensimulator.org/wiki/FAQ/fr#Statistiques_de_la_r.C3.A9gion_sur_une_page_Web sur le Wiki officiel d'OpenSim].<noinclude> | ||
http://opensimulator.org/wiki/FAQ/fr#Statistiques_de_la_r.C3.A9gion_sur_une_page_Web | |||
= Récupérer les | = Récupérer et analyser les statistiques de région = | ||
* Il existe plusieurs façons de récupérer les statistiques de la région. | * Il existe plusieurs façons de récupérer les statistiques de la région. | ||
* Les exemples de résultats donnés ci-dessous correspondent à une Standalone locale avec deux avatars connectés. | * Les exemples de résultats donnés ci-dessous correspondent à une Standalone locale avec deux avatars connectés. | ||
== Dans la console de la région== | == Dans la console de la région== | ||
=== Exemple de résultats === | |||
<pre> | <pre> | ||
16:03:42 - DIAGNOSTICS | 16:03:42 - DIAGNOSTICS | ||
| Ligne 51 : | Ligne 51 : | ||
Total process threads: 31 | Total process threads: 31 | ||
</pre> | </pre> | ||
=== Analyse des statistiques de la console === | |||
{| class="wikitable" | |||
|- | |||
! Données | |||
! Description | |||
! Valeur | |||
! Commentaires | |||
|- | |||
! Time now | |||
| Jour et heure actuelle | |||
| '''2026-01-22 16:03:42''' | |||
| | |||
|- | |||
!Server has been running since | |||
|Durée de fonctionnement du serveur | |||
|00:22:00.4083404 | |||
|C'est-à-dire à peu près '''22 minutes''' | |||
|- | |||
!Heap allocated | |||
|Mémoire dynamique allouée (RAM allouée). | |||
|'''45 Mo''' | |||
| C'est la mémoire que le processus a explicitement réservée. C'est une partie spécifique de la mémoire physique qui a été allouée par le processus à la volée et qui peut être libérée ultérieurement. | |||
Sur Linux, vous pouvez trouver la quantité de RAM disponible avec la commande ''free -h'' | |||
|- | |||
!allocation rate (last/avg) | |||
|Taux d'allocation (dernier / moyenne) | |||
* '''Dernier taux''' : taux d'allocation de mémoire le plus récent observé | |||
* '''Moyenne''' : taux d'allocation moyen par 1 seconde. | |||
| | |||
* '''0.122 Mo''' | |||
* '''0.073Mo par seconde'''. | |||
| | |||
* '''Dernier taux''' : Le système a ajouté cette quantité de mémoire à la mémoire dynamique à ce moment-là.<br> | |||
* '''Moyenne''' : Cette valeur pourrait être négative et indiquer que le système a relâché de la mémoire plutôt que d'en avoir alloué. | |||
|- | |||
!GCTotalCommited | |||
|Mémoire totale réservée | |||
|'''58 Mo''' | |||
|Ce terme indique combien de mémoire a été réservée au total, ce qui peut inclure la mémoire pour les objets qui seront gérés et libérés par le [https://fr.wikipedia.org/wiki/Ramasse-miettes_%28informatique%29 '''ramasse miette'''(Garbage Collector GB)] . Elle est souvent supérieure à la mémoire dynamique allouée, car elle prend en compte tous les objets ( Instance de classe, tableaux, etc.) et ressources (fichiers ouverts, connexion réseau, etc.) que le système doit gérer. | |||
|- | |||
! GCTotalAvaiable | |||
|Mémoire totale disponible | |||
|15864 Mo ( ≈ '''16Go''') | |||
| | |||
* GCTotalAvailable fait référence à la quantité totale de '''mémoire encore disponible''' pour l'allocation par le gestionnaire de mémoire dans un système. | |||
* Une bonne quantité de mémoire disponible permet au processus d'obtenir rapidement de la mémoire et ne pas être ralenti. | |||
|- | |||
!GCHMthreshold | |||
|Seuil de mémoire du ramasse-miettes (Garbage Collection Heap Memory threshold) | |||
|7932 Mo (≈ '''8Go''') | |||
| | |||
* GCHMthreshold représente le seuil de mémoire au-delà duquel le mécanisme de garbage collection s'active pour libérer de la mémoire. | |||
* '''Problème''' : GC fait comme si une application s'exécutait seule sur une machine. L'application peut consommer une quantité importante de mémoire sans tenir compte des autres applications en cours d'exécution. Cela peut entraîner des performances sous-optimales et une concurrence pour les ressources. Consultez la page [[Réunion_du_23-04-2024#Configuration_pour_CG| '''Configuration pour GC''']] | |||
|- | |||
!Process memory : Physical | |||
|Mémoire physique du processus | |||
|'''208 Mo''' | |||
|Cette mémoire est composée de la mémoire dynamique allouée et d'autres types de mémoires nécessaires au fonctionnement du processus. C'est l'espace réel occupé en RAM par le processus à un instant donné. Cela inclut à la fois les allocations dynamiques et statiques. | |||
|- | |||
!Process memory : Paged | |||
|Mémoire paginée du processus | |||
|''' 0 Mo ''' | |||
|La mémoire paginée permet d'accroître la capacité de la mémoire RAM physique du processus en utilisant temporairement une mémoire virtuelle tirée de l'espace libre réservé à d'autres composants du système. | |||
|- | |||
!Peak process memory : Physical | |||
|Pic de mémoire physique du processus. | |||
|'''208Mo''' | |||
| | |||
|- | |||
!Peak process memory : Paged | |||
|Pic de mémoire paginée du processus. | |||
|'''0 Mo''' | |||
| | |||
|- | |||
!Total process Threads | |||
|Total des [[Lexique_des_réunions#Thread|'''threads''']] de processus. | |||
|'''31''' | |||
| | |||
'''Un thread''', ou fil d’exécution, est une unité d'exécution d'un processus qui peut s'exécuter en parallèle avec d'autres threads. Cela permet à un programme de réaliser plusieurs tâches simultanément, ce qui signifie qu'un thread peut continuer son exécution sans bloquer les autres. Dans certaines situations, cela peut améliorer l'efficacité et la réactivité du code.<br> | |||
'''Indicateurs d'un trop grand nombre de threads''' | |||
* Consommation excessive de ressources : CPU, Swap | |||
* Blocages ou ralentissements | |||
* Diminution des performances : temps de latence long | |||
* Erreurs dans les logs, exceptions générées lors de l'exécution de threads. | |||
|- | |||
!Tracked threads | |||
|'''Threads''' suivis dans le rapport de performance affiché dans la console d'OpenSim. | |||
|'''9''' | |||
| | |||
Il semble y avoir toujours les mêmes '''9''' threads, pour une standalone ou une région connectée à une grille. | |||
{| class="wikitable" | |||
|- | |||
! ID | |||
! Nom | |||
! Dernière mise à jour (ms) | |||
! Durée de vie (ms) | |||
! Priorité | |||
! État | |||
! Description | |||
|- | |||
| 13 | |||
| PollServiceWatcherThread | |||
| 89 | |||
| 1320014 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Suivi des services | |||
|- | |||
| 15 | |||
| MapBlocks (Region) | |||
| 1001 | |||
| 1319139 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Gestion de la carte | |||
|- | |||
| 16 | |||
| Yengine sleep (Region) | |||
| 1515 | |||
| 1319088 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Économie de ressources | |||
|- | |||
| 17 | |||
| YScript0 (Region) | |||
| 1426 | |||
| 1319087 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Exécution de scripts | |||
|- | |||
| 18 | |||
| YScript1 (Region) | |||
| 2428 | |||
| 1319087 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Exécution de scripts | |||
|- | |||
| 19 | |||
| Incoming Packets (Region) | |||
| 79 | |||
| 1318960 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Réception de données | |||
|- | |||
| 20 | |||
| Outgoing Packets (Region) | |||
| 14 | |||
| 1318960 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Envoi de mises à jour | |||
|- | |||
| 21 | |||
| AsyncLSLCmdHandlerThread | |||
| 24 | |||
| 1318630 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Traitement asynchrone des scripts | |||
|- | |||
| 22 | |||
| Heartbeat-(Region) | |||
| 73 | |||
| 1318565 | |||
| Normal | |||
| Arrière-plan, Attente | |||
| Vérification de l'état | |||
|} | |||
* La plupart des threads sont associés à la région , son nom est indiqué entre parenthèses à coté du nom du thread. | |||
* La plupart des threads sont dans un '''état d’attente''' (WaitSleepJoin) , ce qui est normal pour des opérations qui attendent des événements ou des données. | |||
* Si '''Durée de vie''' (Lifetime) est grand, cela indique que le thread fonctionnent depuis longtemps et que les processus sont stables. Cela peut aussi indiquer qu'il y a une certaine charge sur les ressources au fil du temps. | |||
|- | |||
!Framework main threadpool | |||
| Threadpool principal | |||
* '''Workers ''' : nombre de threads actifs dans le pool qui sont actuellement en cours d'exécution. Cela indique combien de threads sont disponibles pour traiter des tâches. | |||
* '''Completion''' : nombre de tâches qui ont été complétées par le pool de threads. | |||
| | |||
* '''1 (1000 / 16)''' | |||
* '''0 (1000 / 1)''' | |||
| | |||
* '''Un pool de threads''' est une collection de threads pré-initialisés qui peuvent être utilisés pour exécuter des tâches de manière efficace. | |||
* '''Framework main threadpool''' : Ensemble principal de threads pré-initialisés utilisés pour exécuter des tâches en parallèle dans le framework .NET. | |||
{|class="wikitable" | |||
|- | |||
! rowspan="2"| Workers | |||
| 1 : un seul thread est actuellement actif dans le pool. | |||
|- | |||
| (1000 / 16) : ? | |||
|- | |||
! rowspan="2"|Completion | |||
| 0 : aucune tâche n’a encore été finalisée depuis que le pool de threads a été initialisé. | |||
|- | |||
| (1000 / 1) : ? | |||
|- | |||
|} | |||
|- | |||
! colspan = "4" | Pool de threads (à l'exclusion des pools de moteurs de scripts) | |||
|- | |||
!Thread pool used | |||
|Thread pool utilisé / Groupe de threads utilisé | |||
|'''SmartThreadPool''' | |||
|Dans OpenSimDefaults.ini vous trouverez dans la section '''[Startup]''' la configuration du paramètre '''async_call_method''' qui définit le Thread pool utilisé.<br> | |||
En utilisant ce paramètre dans OpenSim.ini sour [Startup], vous pourrez choisir entre 3 méthodes : QueueUserWorkItem, SmartThreadPool et Thread.<br> | |||
La méthode par défaut est SmartThreadPool | |||
<pre> | |||
; Définit la méthode qu'OpenSim utilisera pour déclencher des événements asynchrones | |||
;. Les valeurs valides sont , | |||
; QueueUserWorkItem, SmartThreadPool et Thread. | |||
async_call_method = SmartThreadPool | |||
</pre> | |||
|- | |||
!Max threads | |||
|Nombre maximal de threads à allouer au pool de threads | |||
|'''300''' | |||
| | |||
* Ce paramètre qui aide à éviter la surcharge du système en limitant le nombre de threads actifs à un certain niveau. | |||
* Dans OpenSimDefaults.ini vous trouverez dans la section '''[Startup]''' le paramètre '''MaxPoolThreads'''. Si vous utilisez '''SmartThreadPool''' et que vous voulez diminuer ou augmenter ce maximum, copié le code suivant dans OpenSim.ini sour [Startup] et définissez une nouvelle valeur. | |||
<pre> | |||
; Nombre maximal de threads à allouer au pool de threads FireAndForget | |||
; lors de l'exécution avec l'option SmartThreadPool ci-dessus | |||
MaxPoolThreads = 300 | |||
</pre> | |||
|- | |||
!Min threads | |||
| Minimum de threads toujours actifs dans le pool. | |||
| '''2''' | |||
|Ce paramètre garantit que certaines tâches peuvent être traitées même en période de faible activité. | |||
|- | |||
!Allocated threads | |||
| Nombre de threads qui ont été alloués à ce moment précis | |||
| '''5''' | |||
| Il y a actuellement 5 threads prêts à exécuter des tâches, mais ce nombre peut augmenter jusqu'à 300 si nécessaire. | |||
|- | |||
!In use threads | |||
|Threads en cours d'utilisation | |||
| '''3''' | |||
| | |||
|- | |||
!Work items waiting | |||
| Éléments de travail en attente | |||
| '''0''' | |||
|Dans ce cas, tous les travaux soumis au pool sont actuellement en cours de traitement, ce qui est un signe positif d'efficacité. | |||
|- | |||
|} | |||
== Sur une page web à l'adresse http://<domaine>:<port de la région>/SStats == | == Sur une page web à l'adresse http://<domaine>:<port de la région>/SStats == | ||
=== Home === | Cette page devrait être '''mise à jour automatiquement''', il n'est pas nécessaire de l'actualiser. | ||
=== Exemple d'affichage === | |||
==== Home ==== | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| Ligne 74 : | Ligne 327 : | ||
|- | |- | ||
|} | |} | ||
===Client === | ====Client ==== | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| Ligne 80 : | Ligne 333 : | ||
!Count/% | !Count/% | ||
!SimFPS | !SimFPS | ||
|- | |||
|Firestorm-Releasex64 7.2.2.79439 | |Firestorm-Releasex64 7.2.2.79439 | ||
|2/100% | |2/100% | ||
| Ligne 86 : | Ligne 340 : | ||
|} | |} | ||
===Sessions=== | ====Sessions==== | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
| Ligne 108 : | Ligne 362 : | ||
|- | |- | ||
|} | |} | ||
=== Analyse de l'affichage === | |||
* 🏗️ | |||
== Statistiques de | == Statistiques de jsonSimStats == | ||
=== Code de la page web PHP === | === Code de la page web PHP === | ||
{{Code PHP Stats}} | {{Code PHP Stats}} | ||
=== | === Exemple de résultats === | ||
<pre> | <pre> | ||
stdClass Object | stdClass Object | ||
| Ligne 153 : | Ligne 409 : | ||
[Version] => OpenSim 0.9.3.0 Nessie Dev | [Version] => OpenSim 0.9.3.0 Nessie Dev | ||
</pre> | </pre> | ||
=== Analyse des statistiques de jsonSimStats === | |||
{|class="wikitable" | |||
|- | |||
! Paramètre | |||
! Signification | |||
! Information | |||
|- | |||
!Dilatn | |||
|Dilatation temporelle : Ce paramètre indique comment le temps dans la simulation est dilaté par rapport au temps réel. Une valeur de 1.0 signifie que le temps de la simulation s'écoule à la même vitesse que le temps réel (à vérifier). | |||
| | |||
|- | |||
!SimFPS | |||
|Représente le nombre d'images par seconde (FPS) que le simulateur parvient à produire. Plus ce chiffre est élevé, plus l'expérience utilisateur est fluide. | |||
| | |||
|- | |||
!PhyFPS | |||
|Indique le nombre de frames par seconde utilisées pour le traitement des calculs physiques dans la simulation. | |||
| | |||
|- | |||
!AgntUp | |||
|Mises à jour des agents (utilisateurs) par seconde. | |||
| | |||
|- | |||
!RootAg | |||
|Représente le nombre total d'agents principaux (avec des privilèges spaciaux) sur la simulation. | |||
| | |||
|- | |||
!ChldAg | |||
|Représente le nombre total d'utilisateurs normaux sur la simulation. | |||
| | |||
|- | |||
!NPCAg | |||
|Nombre de personnages non joueur (PNJ) sur la simulation. | |||
| | |||
|- | |||
!Prims | |||
|Nombre total de primitives (objets) dans la région. | |||
| | |||
|- | |||
!AtvPrm | |||
|Nombre de prims actives | |||
| | |||
|- | |||
!AtvScr | |||
|Nombre de scripts actifs | |||
| | |||
|- | |||
!ScrLPS | |||
|Ce nombre représente le volume de code des scripts qui s'exécute chaque seconde. | |||
| | |||
|- | |||
!ScrEPS | |||
|Exécution de script par Seconde : Ce paramètre indique le nombre d'exécutions de scripts qui se déroulent chaque seconde. | |||
| | |||
|- | |||
!PktsIn | |||
|Paquets entrants par seconde : Indique le nombre de paquets de données reçus par le simulateur chaque seconde. | |||
| | |||
|- | |||
!PktOut | |||
|Paquets sortants par seconde : indique le nombre de paquets envoyés par le simulateur vers les clients chaque seconde. | |||
| | |||
|- | |||
!PendDl | |||
|Téléchargements en attente : Représente le nombre de téléchargements qui sont en attente de traitement par le serveur. | |||
| | |||
|- | |||
!PendUl | |||
|Téléchargements en attente : Correspond au nombre d'upload en attente pour le serveur. | |||
| | |||
|- | |||
!UnackB | |||
|Octets non reconnus : Indique le nombre d'octets qui ont été envoyés mais pas encore reconnus par le destinataire. | |||
| | |||
|- | |||
!TotlFt | |||
|Temps total du frame : Montre le temps global que prend un frame pour être traité par le simulateur. | |||
| | |||
|- | |||
!NetFt | |||
|Temps de frame réseau : Indique le temps pris pour traiter les opérations liées au réseau dans une frame. | |||
| | |||
|- | |||
!PhysFt | |||
|Temps de frame physique : Montre le temps pris pour le traitement des calculs physiques dans une frame. | |||
| | |||
|- | |||
!OthrFt | |||
|Temps de frame autre : Indique le temps consacré à d'autres opérations non spécifiquement liées à la physique ou au réseau. | |||
| | |||
|- | |||
!AgntFt | |||
|Temps de frame des agents : Montre le temps pris pour traiter les mises à jour des agents dans une frame. | |||
| | |||
|- | |||
!ImgsFt | |||
|Temps de frame d'images : Indique le temps passé à traiter les images ou textures dans une frame. | |||
| | |||
|- | |||
!FrameDilatn | |||
| | |||
| | |||
|- | |||
!Logging in Users | |||
|Nombre d'utilisateurs qui se connecte à ce moment. | |||
| | |||
|- | |||
!GeoPrims | |||
|Nombre de primitives géométriques, indiquant des objets complexes dans la scène. (Mieux définir) | |||
| | |||
|- | |||
!Mesh Objects | |||
|Nombre d'objets maillés (meshes) dans la région. | |||
| | |||
|- | |||
!Script Engine Thread Count | |||
|Nombre de Threads du Moteur de Script : Cela indique combien de threads sont en cours d'utilisation pour exécuter les scripts dans le simulateur. | |||
| | |||
|- | |||
!RegionName | |||
|Nom de la région OpenSim. | |||
| | |||
|- | |||
!Util Thread Count | |||
|Ce paramètre indique combien de threads sont utilisés pour gérer les connexions et les interactions des utilisateurs dans la simulation.(Vérifier ?) | |||
| | |||
|- | |||
!System Thread Count | |||
|Représente le nombre total de threads que le système d'exploitation utilise pour exécuter le simulateur. Cela inclut tous les types de tâches gérées par le système. | |||
| | |||
|- | |||
!System Thread Active | |||
|Indique combien de ces threads système sont actuellement en cours d'exécution. Un nombre faible peut signifier que le simulateur ou le système est peu chargé. | |||
| | |||
|- | |||
!ProcMem | |||
|Mémoire utilisée par le serveur (processus). | |||
| | |||
|- | |||
!Memory | |||
|Pourcentage de mémoire allouée utilisée. | |||
| | |||
|- | |||
!Uptime | |||
|Temps depuis lequel le serveur est opérationnel (en heures, minutes, secondes). | |||
| | |||
|- | |||
!Version | |||
|Indique la version de votre serveur OpenSim. | |||
| | |||
|- | |||
|} | |||
*Amélioration des performances sur le Wiki officiel d'OpenSimulator : http://opensimulator.org/wiki/Performance/fr | |||
= Analyse des | = Statistiques du viewer = | ||
== | == Ouvrir la fenêtre des statistiques == | ||
* Utilisez le raccouci clavier '''CTRL + SHIFT + 1'''. La fenêtre des statistiques ci-dessous s'ouvre. | |||
[[File:Firestorm_Tuto_Statistiques.png|150px]] | |||
== Analyse des paramètres == | |||
===Statistiques de Base === | |||
* 🏗️ | * 🏗️ | ||
== | ===Statistique avancées === | ||
* 🏗️ | * 🏗️ | ||
== Statistiques | === Statistiques du simulateur === | ||
* 🏗️ | * 🏗️ | ||
Dernière version du 25 janvier 2026 à 14:36
Obtenir les statistiques de la région
Configurer OpenSim.ini pour afficher les statistiques de région
- Pour définir le temps de l'intervalle d'affichage des statistiques dans la console, ajoutez ce code dans [Startup]. Temps donné en secondes.
; Les statistiques du simulateur sont régulièrement affichées sur la console comme INFO.
; Définir cette valeur sur zéro désactive cette sortie.
LogShowStatsSeconds = 3600
- Ajoutez cette configuration à la fin du fichier pour activer WebStats :
[WebStats]
; Afficher les statistiques de la région via une page Web.
; Voir http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page.
; Utilisez un navigateur Web et saisissez « Login URI » + « /SStats/ ».
; Par exemple : http://127.0.0.1:9000/SStats/
enabled=true
- Pour information, jsonSimStats est activé par défaut dans OpenSimDefauts.ini. Vous pouvez ajouter ces lignes dans votre fichier OpenSim.ini dans [Startup], cela ne changera rien mais vous aurait une trace plus accessible de cette option.
; URI des statistiques du simulateur
; Activez les données JSON du simulateur en définissant un nom d'URI (sensible à la casse)
; Renvoie les statistiques de simulation habituelles (SimFPS, ...)
Stats_URI = "jsonSimStats"
Sources
Récupérer et analyser les statistiques de région
- Il existe plusieurs façons de récupérer les statistiques de la région.
- Les exemples de résultats donnés ci-dessous correspondent à une Standalone locale avec deux avatars connectés.
Dans la console de la région
Exemple de résultats
16:03:42 - DIAGNOSTICS
Time now is 2026-01-22 16:03:42
Server has been running since Thursday, 2026-01-22 15:41:42
That is an elapsed time of 00:22:00.4083404
Heap allocated: 45MB allocation rate (last/avg): 0.122/0.073MB/s
GCTotalCommited: 58MB GCTotalAvaiable 15864MB GCHMthreshold 7932MB
Process memory: Physical 208MB Paged 0MB
Peak process memory: Physical 208MB Paged 0MB
Total process Threads 31
9 threads are being tracked:
ID NAME LAST UPDATE (MS) LIFETIME (MS) PRIORITY STATE
13 PollServiceWatcherThread 89 1320014 Normal Background, WaitSleepJoin
15 MapBlocks (Region) 1001 1319139 Normal Background, WaitSleepJoin
16 Yengine sleep (Region) 1515 1319088 Normal Background, WaitSleepJoin
17 YScript0 (Region) 1426 1319087 Normal Background, WaitSleepJoin
18 YScript1 (Region) 2428 1319087 Normal Background, WaitSleepJoin
19 Incoming Packets (Region) 79 1318960 Normal Background, WaitSleepJoin
20 Outgoing Packets (Region) 14 1318960 Normal Background, WaitSleepJoin
21 AsyncLSLCmdHandlerThread 24 1318630 Normal Background, WaitSleepJoin
22 Heartbeat-(Region) 73 1318565 Normal WaitSleepJoin
Framework main threadpool
workers: 1 (1000 / 16)
Completion: 0 (1000 / 1)
Threadpool (excluding script engine pools)
Thread pool used : SmartThreadPool
Max threads : 300
Min threads : 2
Allocated threads : 5
In use threads : 3
Work items waiting : 0
Total process threads: 31
Analyse des statistiques de la console
| Données | Description | Valeur | Commentaires | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Time now | Jour et heure actuelle | 2026-01-22 16:03:42 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Server has been running since | Durée de fonctionnement du serveur | 00:22:00.4083404 | C'est-à-dire à peu près 22 minutes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Heap allocated | Mémoire dynamique allouée (RAM allouée). | 45 Mo | C'est la mémoire que le processus a explicitement réservée. C'est une partie spécifique de la mémoire physique qui a été allouée par le processus à la volée et qui peut être libérée ultérieurement.
Sur Linux, vous pouvez trouver la quantité de RAM disponible avec la commande free -h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| allocation rate (last/avg) | Taux d'allocation (dernier / moyenne)
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GCTotalCommited | Mémoire totale réservée | 58 Mo | Ce terme indique combien de mémoire a été réservée au total, ce qui peut inclure la mémoire pour les objets qui seront gérés et libérés par le ramasse miette(Garbage Collector GB) . Elle est souvent supérieure à la mémoire dynamique allouée, car elle prend en compte tous les objets ( Instance de classe, tableaux, etc.) et ressources (fichiers ouverts, connexion réseau, etc.) que le système doit gérer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GCTotalAvaiable | Mémoire totale disponible | 15864 Mo ( ≈ 16Go) |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GCHMthreshold | Seuil de mémoire du ramasse-miettes (Garbage Collection Heap Memory threshold) | 7932 Mo (≈ 8Go) |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Process memory : Physical | Mémoire physique du processus | 208 Mo | Cette mémoire est composée de la mémoire dynamique allouée et d'autres types de mémoires nécessaires au fonctionnement du processus. C'est l'espace réel occupé en RAM par le processus à un instant donné. Cela inclut à la fois les allocations dynamiques et statiques. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Process memory : Paged | Mémoire paginée du processus | 0 Mo | La mémoire paginée permet d'accroître la capacité de la mémoire RAM physique du processus en utilisant temporairement une mémoire virtuelle tirée de l'espace libre réservé à d'autres composants du système. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Peak process memory : Physical | Pic de mémoire physique du processus. | 208Mo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Peak process memory : Paged | Pic de mémoire paginée du processus. | 0 Mo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Total process Threads | Total des threads de processus. | 31 |
Un thread, ou fil d’exécution, est une unité d'exécution d'un processus qui peut s'exécuter en parallèle avec d'autres threads. Cela permet à un programme de réaliser plusieurs tâches simultanément, ce qui signifie qu'un thread peut continuer son exécution sans bloquer les autres. Dans certaines situations, cela peut améliorer l'efficacité et la réactivité du code.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tracked threads | Threads suivis dans le rapport de performance affiché dans la console d'OpenSim. | 9 |
Il semble y avoir toujours les mêmes 9 threads, pour une standalone ou une région connectée à une grille.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Framework main threadpool | Threadpool principal
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pool de threads (à l'exclusion des pools de moteurs de scripts) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thread pool used | Thread pool utilisé / Groupe de threads utilisé | SmartThreadPool | Dans OpenSimDefaults.ini vous trouverez dans la section [Startup] la configuration du paramètre async_call_method qui définit le Thread pool utilisé. En utilisant ce paramètre dans OpenSim.ini sour [Startup], vous pourrez choisir entre 3 méthodes : QueueUserWorkItem, SmartThreadPool et Thread. ; Définit la méthode qu'OpenSim utilisera pour déclencher des événements asynchrones
;. Les valeurs valides sont ,
; QueueUserWorkItem, SmartThreadPool et Thread.
async_call_method = SmartThreadPool
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Max threads | Nombre maximal de threads à allouer au pool de threads | 300 |
; Nombre maximal de threads à allouer au pool de threads FireAndForget
; lors de l'exécution avec l'option SmartThreadPool ci-dessus
MaxPoolThreads = 300
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Min threads | Minimum de threads toujours actifs dans le pool. | 2 | Ce paramètre garantit que certaines tâches peuvent être traitées même en période de faible activité. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Allocated threads | Nombre de threads qui ont été alloués à ce moment précis | 5 | Il y a actuellement 5 threads prêts à exécuter des tâches, mais ce nombre peut augmenter jusqu'à 300 si nécessaire. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| In use threads | Threads en cours d'utilisation | 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Work items waiting | Éléments de travail en attente | 0 | Dans ce cas, tous les travaux soumis au pool sont actuellement en cours de traitement, ce qui est un signe positif d'efficacité. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sur une page web à l'adresse http://<domaine>:<port de la région>/SStats
Cette page devrait être mise à jour automatiquement, il n'est pas nécessaire de l'actualiser.
Exemple d'affichage
Home
| # Users Total | # Sessions Total | Avg Client FPS | Avg Client Mem Use | Avg Sim FPS | Avg Ping | KB Out Total | l KB In Total |
|---|---|---|---|---|---|---|---|
| 2 | 2 | 1.1270192 | 973214 | 10.543559 | 24.334679 | 1819.0166 | 125.203125 |
Client
| ClientVersion | Count/% | SimFPS |
|---|---|---|
| Firestorm-Releasex64 7.2.2.79439 | 2/100% | 10.543559 |
Sessions
| FirstName | LastName | SessionEnd | SessionLength | Client |
|---|---|---|---|---|
| test | 001 | 1/22/2026 - 2:47 PM | Firestorm-Releasex64 7.2.2.79439 | |
| test | 002 | 1/22/2026 - 3:00 PM | Firestorm-Releasex64 7.2.2.79439 |
Analyse de l'affichage
- 🏗️
Statistiques de jsonSimStats
Code de la page web PHP
<?php
/**
* Page pour obtenir et afficher les statistiques de simulation.
* Code créé par Acryline Erin.
* Code libre d'utilisation.
* Date : 22 janvier 2026
*/
// Trouver les données
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost:9000/jsonSimStats");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2&postvar3=value3");
// Réponse
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
// Vérification des erreurs cURL
if ($json === false) {
echo 'Erreur cURL: ' . curl_error($ch);
} else {
// Décoder la réponse JSON
$response = json_decode($json);
// Vérification de la validité de l'objet JSON
if (json_last_error() === JSON_ERROR_NONE) {
// Afficher la réponse
echo "<pre>";
print_r($response);
echo "</pre>";
} else {
echo "Erreur de décodage JSON : " . json_last_error_msg();
}
}
curl_close($ch);
?>
Exemple de résultats
stdClass Object
(
[Dilatn] => 1
[SimFPS] => 55.1
[PhyFPS] => 55.1
[AgntUp] => 0
[RootAg] => 2
[ChldAg] => 0
[NPCAg] => 0
[Prims] => 4
[AtvPrm] => 0
[AtvScr] => 4
[ScrLPS] => 0
[ScrEPS] => 0
[PktsIn] => 3
[PktOut] => 3
[PendDl] => 0
[PendUl] => 0
[UnackB] => 0
[TotlFt] => 18.15
[NetFt] => 0
[PhysFt] => 0.09
[OthrFt] => 0
[AgntFt] => 0
[ImgsFt] => 0
[FrameDilatn] => 1
[Logging in Users] => 0
[GeoPrims] => 1
[Mesh Objects] => 3==
[Script Engine Thread Count] => 0
[RegionName] => Region
[Util Thread Count] => 3
[System Thread Count] => 31
[System Thread Active] => 1
[ProcMem] => 212604
[Memory] => 45
[Uptime] => 00:21:53.4804530
[Version] => OpenSim 0.9.3.0 Nessie Dev
Analyse des statistiques de jsonSimStats
| Paramètre | Signification | Information |
|---|---|---|
| Dilatn | Dilatation temporelle : Ce paramètre indique comment le temps dans la simulation est dilaté par rapport au temps réel. Une valeur de 1.0 signifie que le temps de la simulation s'écoule à la même vitesse que le temps réel (à vérifier). | |
| SimFPS | Représente le nombre d'images par seconde (FPS) que le simulateur parvient à produire. Plus ce chiffre est élevé, plus l'expérience utilisateur est fluide. | |
| PhyFPS | Indique le nombre de frames par seconde utilisées pour le traitement des calculs physiques dans la simulation. | |
| AgntUp | Mises à jour des agents (utilisateurs) par seconde. | |
| RootAg | Représente le nombre total d'agents principaux (avec des privilèges spaciaux) sur la simulation. | |
| ChldAg | Représente le nombre total d'utilisateurs normaux sur la simulation. | |
| NPCAg | Nombre de personnages non joueur (PNJ) sur la simulation. | |
| Prims | Nombre total de primitives (objets) dans la région. | |
| AtvPrm | Nombre de prims actives | |
| AtvScr | Nombre de scripts actifs | |
| ScrLPS | Ce nombre représente le volume de code des scripts qui s'exécute chaque seconde. | |
| ScrEPS | Exécution de script par Seconde : Ce paramètre indique le nombre d'exécutions de scripts qui se déroulent chaque seconde. | |
| PktsIn | Paquets entrants par seconde : Indique le nombre de paquets de données reçus par le simulateur chaque seconde. | |
| PktOut | Paquets sortants par seconde : indique le nombre de paquets envoyés par le simulateur vers les clients chaque seconde. | |
| PendDl | Téléchargements en attente : Représente le nombre de téléchargements qui sont en attente de traitement par le serveur. | |
| PendUl | Téléchargements en attente : Correspond au nombre d'upload en attente pour le serveur. | |
| UnackB | Octets non reconnus : Indique le nombre d'octets qui ont été envoyés mais pas encore reconnus par le destinataire. | |
| TotlFt | Temps total du frame : Montre le temps global que prend un frame pour être traité par le simulateur. | |
| NetFt | Temps de frame réseau : Indique le temps pris pour traiter les opérations liées au réseau dans une frame. | |
| PhysFt | Temps de frame physique : Montre le temps pris pour le traitement des calculs physiques dans une frame. | |
| OthrFt | Temps de frame autre : Indique le temps consacré à d'autres opérations non spécifiquement liées à la physique ou au réseau. | |
| AgntFt | Temps de frame des agents : Montre le temps pris pour traiter les mises à jour des agents dans une frame. | |
| ImgsFt | Temps de frame d'images : Indique le temps passé à traiter les images ou textures dans une frame. | |
| FrameDilatn | ||
| Logging in Users | Nombre d'utilisateurs qui se connecte à ce moment. | |
| GeoPrims | Nombre de primitives géométriques, indiquant des objets complexes dans la scène. (Mieux définir) | |
| Mesh Objects | Nombre d'objets maillés (meshes) dans la région. | |
| Script Engine Thread Count | Nombre de Threads du Moteur de Script : Cela indique combien de threads sont en cours d'utilisation pour exécuter les scripts dans le simulateur. | |
| RegionName | Nom de la région OpenSim. | |
| Util Thread Count | Ce paramètre indique combien de threads sont utilisés pour gérer les connexions et les interactions des utilisateurs dans la simulation.(Vérifier ?) | |
| System Thread Count | Représente le nombre total de threads que le système d'exploitation utilise pour exécuter le simulateur. Cela inclut tous les types de tâches gérées par le système. | |
| System Thread Active | Indique combien de ces threads système sont actuellement en cours d'exécution. Un nombre faible peut signifier que le simulateur ou le système est peu chargé. | |
| ProcMem | Mémoire utilisée par le serveur (processus). | |
| Memory | Pourcentage de mémoire allouée utilisée. | |
| Uptime | Temps depuis lequel le serveur est opérationnel (en heures, minutes, secondes). | |
| Version | Indique la version de votre serveur OpenSim. |
- Amélioration des performances sur le Wiki officiel d'OpenSimulator : http://opensimulator.org/wiki/Performance/fr
Statistiques du viewer
Ouvrir la fenêtre des statistiques
- Utilisez le raccouci clavier CTRL + SHIFT + 1. La fenêtre des statistiques ci-dessous s'ouvre.
Analyse des paramètres
Statistiques de Base
- 🏗️
Statistique avancées
- 🏗️
Statistiques du simulateur
- 🏗️