diff options
author | PiBa-NL <pba_2k3@yahoo.com> | 2017-03-26 15:25:16 +0200 |
---|---|---|
committer | PiBa-NL <pba_2k3@yahoo.com> | 2017-03-26 15:43:29 +0200 |
commit | 257dff159db8ada16622e8e3ea0ed4700dd377a2 (patch) | |
tree | a2d69afbfa32d3e8d70d2287e055cab591ca542e /src/usr | |
parent | dd844c430622fa68de1f868b62ec375d7131ce16 (diff) | |
download | pfsense-257dff159db8ada16622e8e3ea0ed4700dd377a2.zip pfsense-257dff159db8ada16622e8e3ea0ed4700dd377a2.tar.gz |
get_stats, optimizations. -dont call unused interface statistics functions -call get_mbuf only once (its netstat call is cpu intensive.) -dont stack multiple pending request in browser if responses are slow.
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/local/www/includes/functions.inc.php | 22 | ||||
-rw-r--r-- | src/usr/local/www/widgets/widgets/system_information.widget.php | 19 |
2 files changed, 16 insertions, 25 deletions
diff --git a/src/usr/local/www/includes/functions.inc.php b/src/usr/local/www/includes/functions.inc.php index 3f727fb..abb651b 100644 --- a/src/usr/local/www/includes/functions.inc.php +++ b/src/usr/local/www/includes/functions.inc.php @@ -33,12 +33,13 @@ function get_stats() { $stats['states'] = get_pfstate(); $stats['temp'] = get_temp(); $stats['datetime'] = update_date_time(); - $stats['interfacestatistics'] = get_interfacestats(); - $stats['interfacestatus'] = get_interfacestatus(); + $stats['interfacestatistics'] = 0;//get_interfacestats();//unused + $stats['interfacestatus'] = 0;//get_interfacestatus();//unused $stats['cpufreq'] = get_cpufreq(); $stats['load_average'] = get_load_average(); - $stats['mbuf'] = get_mbuf(); - $stats['mbufpercent'] = get_mbuf(true); + get_mbuf($mbuf, $mbufpercent); + $stats['mbuf'] = $mbuf; + $stats['mbufpercent'] = $mbufpercent; $stats['statepercent'] = get_pfstate(true); $stats = join("|", $stats); return $stats; @@ -144,18 +145,11 @@ function get_hwtype() { return; } -function get_mbuf($percent=false) { +function get_mbuf(&$mbuf, &$mbufpercent) { $mbufs_output=trim(`/usr/bin/netstat -mb | /usr/bin/grep "mbuf clusters in use" | /usr/bin/awk '{ print $1 }'`); list($mbufs_current, $mbufs_cache, $mbufs_total, $mbufs_max) = explode("/", $mbufs_output); - if ($percent) { - if ($mbufs_max > 0) { - return round(($mbufs_total / $mbufs_max) * 100, 0); - } else { - return "NA"; - } - } else { - return "{$mbufs_total}/{$mbufs_max}"; - } + $mbuf = "{$mbufs_total}/{$mbufs_max}"; + $mbufpercent = ($mbufs_max > 0) ? round(($mbufs_total / $mbufs_max) * 100, 0) : "NA"; } function get_temp() { diff --git a/src/usr/local/www/widgets/widgets/system_information.widget.php b/src/usr/local/www/widgets/widgets/system_information.widget.php index 789cef9..f483d40 100644 --- a/src/usr/local/www/widgets/widgets/system_information.widget.php +++ b/src/usr/local/www/widgets/widgets/system_information.widget.php @@ -312,8 +312,7 @@ $rows_displayed = false; <th><?=gettext("MBUF Usage");?></th> <td> <?php - $mbufstext = get_mbuf(); - $mbufusage = get_mbuf(true); + get_mbuf($mbufstext, $mbufusage); ?> <div class="progress"> <div id="mbufPB" class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="<?=$mbufusage?>" aria-valuemin="0" aria-valuemax="100" style="width: <?=$mbufusage?>%"> @@ -500,8 +499,12 @@ function systemStatusGetUpdateStatus() { setTimeout('systemStatusGetUpdateStatus()', 4000); <?php endif; ?> - +var updateMeters_running = false; function updateMeters() { + if (updateMeters_running) { + return; + } + updateMeters_running = true; url = '/getstats.php'; $.ajax(url, { @@ -510,11 +513,9 @@ function updateMeters() { response = data || ""; if (response != "") stats(data); + updateMeters_running = false; } }); - - setTimer(); - } var update_interval = "<?=$widgetperiod?>"; @@ -523,10 +524,6 @@ function setProgress(barName, percent) { $('[id="' + barName + '"]').css('width', percent + '%').attr('aria-valuenow', percent); } -function setTimer() { - timeout = window.setTimeout('updateMeters()', update_interval); -} - function stats(x) { var values = x.split("|"); if ($.each(values,function(key,value) { @@ -699,7 +696,7 @@ function widgetActive(x) { /* start updater */ events.push(function(){ - setTimer(); + timeout = window.setInterval(updateMeters, update_interval); }); <?php endif; // $widget_first_instance ?> events.push(function(){ |