Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
web: Improve memory display
The truncation of '1500 GB' to (integer) '1 TB' is missleading. Make
sure, we show a decimal place. Also use binary prefixes (e.g. KiB
instead of kB) and correct the computation to binary prefixes where it
is wrong.
  • Loading branch information
donald committed Mar 20, 2022
1 parent a43642c commit 1808c31
Showing 1 changed file with 22 additions and 32 deletions.
54 changes: 22 additions & 32 deletions web/pages/mxq/mxq.in
Expand Up @@ -135,29 +135,19 @@ sub humanSeconds {
}

sub size {
my $s = shift;
my $n = shift;
defined($n) or $n=1;
$s == 0 and return '0 B';

my @T=();
for (my $f = 4; $f >= 0; $f--) {
my $t = int($s/(1000**$f));
push @T, ($t > 0) ? $t : 0; # TB/GB/MB/Kb/B
$s -= $t*(1000**$f);
}
my @L;
for my $x ('TB','GB','MB','kB','B') {
my $y = shift @T;
if ($y != 0) {
if (defined($n)) {
$n--;
last if ($n < 0);
}
push @L,"$y $x";
}
}
return join(' ',@L);
# ' 0 B '
# ' 1023 B '
# ' 1.0 KiB'
# '1023.9 MiB'
# ' 1.0 GiB'

my ($s) = @_;
$s < 1024 and return sprintf('%6d B ', $s);
for my $unit (qw(KiB MiB GiB TiB PiB EiB ZiB YiB)) {
$s /= 1024;
$s < 1024 and return sprintf ('%6.1f %s', $s, $unit);
}
return sprintf('%6.1f %s', $s, 'YiB');
}

sub days {
Expand Down Expand Up @@ -708,9 +698,9 @@ sub group_table {
$q->td({class=>'number'},$q->a({href=>selfurl("/group/$group_id")},$group_id)),
$q->td($group_name),
$q->td({class=>'number'},$job_threads),
$q->td({class=>'number'},size($job_memory*1000**2)),
$q->td({class=>'number'},size($job_memory*1048576)),
$q->td({class=>'number'},days($job_time*60)),
$q->td({class=>'number'}, $job_tmpdir_size ? size($job_tmpdir_size*1000*1000*1000) : '-'),
$q->td({class=>'number'}, $job_tmpdir_size ? size($job_tmpdir_size*1073741824) : '-'),
$q->td({class=>'number'}, $job_gpu ? $job_gpu : ""),
$q->td($q->a({href=>my_url('groups',{user_name=>$user_name})},$user_name)),
$q->td(group_status($group_status)),
Expand Down Expand Up @@ -777,8 +767,8 @@ sub group_table {
$q->td({class=>'number'},$q->a({href=>selfurl("/group/$group_id")},$group_id)),
$q->td($group_name),
$q->td({class=>'number'},$job_threads),
$q->td({class=>'number'},size($job_memory*1000**2)),
$q->td({class=>'number'},size($stats_max_sumrss*1000)),
$q->td({class=>'number'},size($job_memory*1048576)),
$q->td({class=>'number'},size($stats_max_sumrss*1024)),
$q->td({class=>'number'},humanSeconds($job_time*60)),
$q->td({class=>'number'},humanSeconds($stats_run_sec+$stats_idle_sec,2)),
$q->td($q->a({href=>my_url('groups',{user_name=>$user_name})},$user_name)),
Expand Down Expand Up @@ -908,15 +898,15 @@ sub server() {
# $q->td($pid_starttime),
$q->td({class=>'number'},$daemon_pid),
$q->td({class=>'number'},$daemon_slots),
$q->td({class=>'number'},size($daemon_memory*1000000)),
$q->td({class=>'number'},size($daemon_memory*1048576)),
$q->td({class=>'number'},$daemon_gpus_max),
$q->td({class=>'number'},$daemon_maxtime ? $daemon_maxtime : ''),
$q->td({class=>'number'},size($daemon_memory_limit_slot_soft*1000000)),
$q->td({class=>'number'},size($daemon_memory_limit_slot_soft*1048576)),
# $q->td({class=>'number'},$daemon_memory_limit_slot_hard),
$q->td({class=>'number'},$daemon_jobs_running),
$q->td({class=>'number'},$daemon_slots_running),
$q->td({class=>'number'},$daemon_threads_running),
$q->td({class=>'number'},size($daemon_memory_used*1000000)),
$q->td({class=>'number'},size($daemon_memory_used*1048576)),
$q->td({class=>'number'},$daemon_gpus_used),
# $q->td($mtime),
# $q->td($daemon_start),
Expand All @@ -933,14 +923,14 @@ sub server() {
$q->td({class=>'center', colspan=>3},$S{servers}.' servers'),
$q->td($dist),
$q->td({class=>'center', colspan=>3},$S{daemon_slots}.' cores'),
$q->td({class=>'number'},size($S{daemon_memory_sum}*1000**2)),
$q->td({class=>'number'},size($S{daemon_memory_sum}*1048576)),
$q->td({class=>'number'},$S{daemon_gpus_max_sum}),
$q->td('&nbsp;'),
$q->td('&nbsp;'),
$q->td('&nbsp;'),
$q->td({class=>'number'},$S{daemon_slots_running}),
$q->td('&nbsp;'),
$q->td({class=>'number'},size($S{daemon_memory_used_sum}*1000**2)),
$q->td({class=>'number'},size($S{daemon_memory_used_sum}*1048576)),
$q->td({class=>'number'},$S{daemon_gpus_used_sum})
);

Expand Down

0 comments on commit 1808c31

Please sign in to comment.