From 37a7633ded43d657be28586a4f31caad46d38984 Mon Sep 17 00:00:00 2001 From: Robert Lanyi Date: Sat, 21 Mar 2020 18:44:10 +0100 Subject: [PATCH 1/3] Add THREADS env var to control number of threads --- bin/rrd-extractstats.pl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/rrd-extractstats.pl b/bin/rrd-extractstats.pl index 685f625..31813eb 100755 --- a/bin/rrd-extractstats.pl +++ b/bin/rrd-extractstats.pl @@ -44,6 +44,11 @@ my $i :shared = 0; my $cpus = do { local @ARGV='/proc/cpuinfo'; grep /^processor\s+:/, <>;}; my $num_workers = $cpus / 2; +if (($ENV{'THREADS'} =~ /^\d+$/) and ($ENV{'THREADS'} > 0)) { + $num_workers = $ENV{'THREADS'}; +} +print("Using " . $num_workers . " threads.\n"); + my $num_work_units = scalar @rrdfiles; my $q = Thread::Queue->new(); From 858c646e01a8d66531b8f036b3a4a5902c8339ef Mon Sep 17 00:00:00 2001 From: Robert Lanyi Date: Sun, 22 Mar 2020 14:42:07 +0100 Subject: [PATCH 2/3] Change default number of threads to 1 (original behavior) --- bin/rrd-extractstats.pl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/rrd-extractstats.pl b/bin/rrd-extractstats.pl index 31813eb..9a824ab 100755 --- a/bin/rrd-extractstats.pl +++ b/bin/rrd-extractstats.pl @@ -42,8 +42,7 @@ my @rrdfiles = File::Find::Rule->maxdepth(2)->file->in($rrdpath); $|=1; my $i :shared = 0; -my $cpus = do { local @ARGV='/proc/cpuinfo'; grep /^processor\s+:/, <>;}; -my $num_workers = $cpus / 2; +my $num_workers = 1; if (($ENV{'THREADS'} =~ /^\d+$/) and ($ENV{'THREADS'} > 0)) { $num_workers = $ENV{'THREADS'}; } From a0ffd9d8670844fdd08aa2d976986d13e8ffc2d9 Mon Sep 17 00:00:00 2001 From: Robert Lanyi Date: Sun, 22 Mar 2020 14:59:37 +0100 Subject: [PATCH 3/3] Fix warning when THREADS env var is missing --- bin/rrd-extractstats.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/rrd-extractstats.pl b/bin/rrd-extractstats.pl index 9a824ab..a729720 100755 --- a/bin/rrd-extractstats.pl +++ b/bin/rrd-extractstats.pl @@ -43,7 +43,7 @@ $|=1; my $i :shared = 0; my $num_workers = 1; -if (($ENV{'THREADS'} =~ /^\d+$/) and ($ENV{'THREADS'} > 0)) { +if (($ENV{'THREADS'}) and ($ENV{'THREADS'} =~ /^\d+$/) and ($ENV{'THREADS'} > 0)) { $num_workers = $ENV{'THREADS'}; } print("Using " . $num_workers . " threads.\n");