Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,13 @@ Passwords are stored in `secrets.yaml`.
* Automatically generated on first launch.
* You can modify this file *before* running `install` or `generate` if you wish to set your own passwords.


## ⚡ Optimizations & Performance
Server Manager employs several optimizations to ensure high performance and low resource usage:
* **System Information Cache**: Dashboard updates use throttled `sysinfo` calls (`refresh_memory`, `refresh_cpu`, etc.) with a 500ms debounce to prevent high CPU utilization during frequent web requests.
* **Thread-Safe State**: Web UI state is encapsulated in `Arc<AppState>`, avoiding bottlenecks when multiple users access the interface simultaneously.
* **Static Caching**: Configurations and User caches use thread-safe static globals (`OnceLock<RwLock<T>>`) to drastically reduce disk I/O.

### 💾 Data Persistence

Server Manager stores its configuration and data in the following locations:
Expand Down Expand Up @@ -283,6 +290,13 @@ Les mots de passe sont stockés dans `secrets.yaml`.
* Générés automatiquement au premier lancement.
* Vous pouvez modifier ce fichier *avant* de lancer `install` ou `generate` si vous souhaitez définir vos propres mots de passe.


## ⚡ Optimisations & Performance
Server Manager utilise plusieurs optimisations pour garantir de hautes performances et une faible utilisation des ressources :
* **Cache d'Informations Système** : Les mises à jour du tableau de bord utilisent des appels `sysinfo` (`refresh_memory`, `refresh_cpu`, etc.) limités avec un délai de 500ms pour éviter une forte utilisation du processeur lors de requêtes web fréquentes.
* **État Thread-Safe** : L'état de l'interface Web est encapsulé dans `Arc<AppState>`, évitant les goulots d'étranglement lorsque plusieurs utilisateurs accèdent à l'interface simultanément.
* **Mise en Cache Statique** : Les configurations et les caches utilisateurs utilisent des variables globales statiques thread-safe (`OnceLock<RwLock<T>>`) pour réduire drastiquement les entrées/sorties disque.

### 💾 Persistance des Données

Server Manager stocke sa configuration et ses données aux emplacements suivants :
Expand Down
1 change: 1 addition & 0 deletions server_manager/src/core/hardware.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ impl HardwareInfo {
sys.refresh_memory();
sys.refresh_cpu();
sys.refresh_disks_list();
sys.refresh_disks();

let total_memory = sys.total_memory(); // Bytes
let ram_gb = total_memory / 1024 / 1024 / 1024;
Expand Down