mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
The Traffic Graphs widget puts a graph object for every interface into the HTML of the widget. Underneath the graph object for every interface makes the call to graph.php to get data for the graph, and the refresh interval also keeps happening, which keeps gathering the data every refresh interval for every interface. This wastes a lot of CPU back on the pfSense box gathering data repeatedly if the system has a lot of interfaces and only has the Traffic Graph enabled for 1 or a few of them. e.g. on my poor little Alix at home I had setup 6 VLANs to test some stuff, so I had WAN, LAN, OPT1 and 6 tagged VLANS - 9 interfaces. When I enable the Traffic Graphs widget on the dashboard, the Alix CPU is driven 100% trying to keep up with gathering data for 9 interfaces every 10 seconds, even though I only have 1 graph actually opened! I couldn't see a way to enable/disable the graph.php object from executing. So this change puts the object in and out of the HTML: a) At first display the graph.php object HTML is only put in the relevant "div" if the graph is actually set to be shown in the config. b) When a graph is opened by the user, the Java Script puts the necessary graph.php object HTML into the div. The graph data then starts being requested... c) When a graph is minimised by the user, the Java Script removes the graph.php object HTML from the div. The actions of graph.php stop happening. I can see the difference by just watching "top" from the command line on a low-power system and open/minimizing the graphs on the dashboard. If there is a better way to enable/disable an object like this I am happy to learn about it. |
||
|---|---|---|
| .. | ||
| bin | ||
| captiveportal | ||
| etc | ||
| openssl | ||
| pkg | ||
| sbin | ||
| share | ||
| www | ||