MauriceNino / dashdot

A simple, modern server dashboard, primarily used by smaller private servers
https://getdashdot.com/
MIT License
2.53k stars 95 forks source link

[Feature] Reduce Idle Load - collect data only uppon request #1050

Open GAS85 opened 4 months ago

GAS85 commented 4 months ago

Description of the feature

Hey, very like your App! I have a suggestion to for a feature - to reduce idle load and do not collect the data when no connections to http://FQDN/socket.io/... exist. Currently even with 0 connections there is slightly constant CPU load:

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT   MEM %     NET I/O          BLOCK I/O         PIDS
b1d219a4c042   dash      14.16%    45.64MiB / 200MiB   22.82%    2.24GB / 804MB   2.84GB / 65.5kB   15

Basically by adding 10 connections, there is no significant change in CPU load it is only slightly increased. For my tiny CPU it is always between 6 and 14 %.

It would be super cool if we can stop data collection when no socket.io connections exist to reduce CPU load to minimum.

Additional context

Example of another app that has 0 CPU usage when no connections exist and some usage under load:

CONTAINER ID   NAME       CPU %     MEM USAGE / LIMIT   MEM %     NET I/O           BLOCK I/O       PIDS
b07a0c07ab8e   organizr   0.00%     47.92MiB / 1GiB     4.68%     22.9MB / 12.8MB   341MB / 248MB   13
CONTAINER ID   NAME       CPU %     MEM USAGE / LIMIT   MEM %     NET I/O           BLOCK I/O       PIDS
b07a0c07ab8e   organizr   9.75%     61.92MiB / 1GiB     6.19%     22.9MB / 12.8MB   341MB / 248MB   13
acmookey commented 4 months ago

The screenshot below shows the Top10 CPU usage of many containers I am using (all services are basically not used). You can see that Dashdot take up the most CPU. It would be great to implement this feature to reduce the CPU usage when there is no HTTP connection! image

PS: My dashdot service is deployed in Raspberry Pi 4B (8GB RAM)