mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-04 09:09:56 +00:00
atrun(8): scale default load average limit with the number of CPUs
Previously atrun refused to run jobs if load average was not below fixed limit of 1.5. PR: 173175 Reviewed by: peterj Approved by: trasz (mentor) MFC after: 2 weeks
This commit is contained in:
parent
7a75e881d7
commit
e61e6189e5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=242372
@ -33,6 +33,9 @@ static const char rcsid[] =
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#ifdef __FreeBSD__
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
#include <sys/wait.h>
|
||||
#include <sys/param.h>
|
||||
#include <ctype.h>
|
||||
@ -454,7 +457,12 @@ main(int argc, char *argv[])
|
||||
gid_t batch_gid;
|
||||
int c;
|
||||
int run_batch;
|
||||
#ifdef __FreeBSD__
|
||||
size_t ncpu, ncpusz;
|
||||
double load_avg = -1;
|
||||
#else
|
||||
double load_avg = LOADAVG_MX;
|
||||
#endif
|
||||
|
||||
/* We don't need root privileges all the time; running under uid and gid daemon
|
||||
* is fine.
|
||||
@ -472,8 +480,10 @@ main(int argc, char *argv[])
|
||||
case 'l':
|
||||
if (sscanf(optarg, "%lf", &load_avg) != 1)
|
||||
perr("garbled option -l");
|
||||
#ifndef __FreeBSD__
|
||||
if (load_avg <= 0.)
|
||||
load_avg = LOADAVG_MX;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
@ -489,6 +499,15 @@ main(int argc, char *argv[])
|
||||
if (chdir(ATJOB_DIR) != 0)
|
||||
perr("cannot change to %s", ATJOB_DIR);
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
if (load_avg <= 0.) {
|
||||
ncpusz = sizeof(size_t);
|
||||
if (sysctlbyname("hw.ncpu", &ncpu, &ncpusz, NULL, 0) < 0)
|
||||
ncpu = 1;
|
||||
load_avg = LOADAVG_MX * ncpu;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Main loop. Open spool directory for reading and look over all the
|
||||
* files in there. If the filename indicates that the job should be run
|
||||
* and the x bit is set, fork off a child which sets its user and group
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" $FreeBSD$
|
||||
.Dd June 17, 2007
|
||||
.Dd October 30, 2012
|
||||
.Dt ATRUN 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -45,7 +45,7 @@ e.g., locked out or expired.
|
||||
.Bl -tag -width indent
|
||||
.It Fl l Ar load_avg
|
||||
Specify a limiting load factor, over which batch jobs should
|
||||
not be run, instead of the compiled in default of 1.5.
|
||||
not be run, instead of the default of 1.5 * number of active CPUs.
|
||||
.It Fl d
|
||||
Debug; print error messages to standard error instead of using
|
||||
.Xr syslog 3 .
|
||||
|
Loading…
Reference in New Issue
Block a user