home | help
RCTL(8) 		     System Manager's Manual			 RCTL(8)

NAME
     rctl -- display and update resource limits database

SYNOPSIS
     rctl [-h] [-n] [filter]
     rctl -a [rule]
     rctl [-h] [-n] -l [filter]
     rctl -r [filter]
     rctl [-h] -u [filter]

DESCRIPTION
     When called without options, the rctl command writes currently defined RCTL
     rules to standard output.

     If  a filter argument is specified, only rules matching the filter are dis-
     played.  The options are as follows:

     -a rule
	     Add rule to the RCTL database.

     -l filter
	     Display rules applicable to the process defined by filter.

     -r filter
	     Remove rules matching filter from the RCTL database.

     -u filter
	     Display resource usage for a subject (process, user, login class or
	     jail) matching the filter.

     -h      "Human-readable"  output.	 Use  unit  suffixes:  Byte,   Kilobyte,
	     Megabyte, Gigabyte, Terabyte and Petabyte.

     -n      Display  user IDs numerically rather than converting them to a user
	     name.

RULE SYNTAX
     Syntax for a rule is subject:subject-id:resource:action=amount/per.

     Subject defines the kind of entity the rule applies to.  It can  be  either
     process, user, login class, or jail.

     Subject ID identifies the subject.  It can be user name, numerical user ID,
     login class name, or jail name.

     Resource identifies the resource the rule controls.

     Action defines what will happen when a process exceeds the allowed amount.

     Amount  defines  how  much of the resource a process can use before the de-
     fined action triggers.

     The per field defines what entity the amount gets accounted for.  For exam-
     ple, rule "loginclass:users:vmem:deny=100M/process" means that each process
     of any user belonging to login class "users" may allocate up  to  100MB  of
     virtual  memory.	Rule  "loginclass:users:vmem:deny=100M/user"  would mean
     that for each user belonging to the login class "users", the sum of virtual
     memory allocated by all the processes of that user will not  exceed  100MB.
     Rule  "loginclass:users:vmem:deny=100M/loginclass"  would mean that the sum
     of virtual memory allocated by all processes of all users belonging to that
     login class will not exceed 100MB.

     Valid rule has all those fields specified, except for the	per,  which  de-
     faults to the value of subject.

     A	filter	is  a  rule  for which one of more fields other than per is left
     empty.  For example, a filter that matches every rule could be  written  as
     ":::=/",  or,  in	short, ":".  A filter that matches all the login classes
     would be "loginclass:".  A filter that matches all defined rules for  nproc
     resource would be "::nproc".

RESOURCES
	cputime 	   CPU time, in seconds
	datasize	   data size, in bytes
	stacksize	   stack size, in bytes
	coredumpsize	   core dump size, in bytes
	memoryuse	   resident set size, in bytes
	memorylocked	   locked memory, in bytes
	maxproc 	   number of processes
	openfiles	   file descriptor table size
	vmemoryuse	   address space limit, in bytes
	pseudoterminals    number of PTYs
	swapuse 	   swap usage, in bytes
	nthr		   number of threads
	msgqqueued	   number of queued SysV messages
	msgqsize	   SysV message queue size, in bytes
	nmsgq		   number of SysV message queues
	nsem		   number of SysV semaphores
	nsemop		   number  of  SysV  semaphores  modified  in  a  single
			   semop(2) call
	nshm		   number of SysV shared memory segments
	shmsize 	   SysV shared memory size, in bytes
	wallclock	   wallclock time, in seconds

ACTIONS
	deny		   deny  the  allocation;  not	supported  for	cpu  and
			   wallclock
	log		   log a warning to the console
	devctl		   send notification to devd(8)
	sig*		   e.g. sigterm; send a signal to the offending process

     See signal(3) for a list of supported signals.

     Not  all actions are supported for all resources.	Attempt to add rule with
     action not supported by a given resouce will result in error.

     Note that limiting RSS may kill the machine due to thrashing.

EXIT STATUS
     The rctl utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
	   rctl -a user:joe:vmemoryuse:deny=1g

     Prevent user "joe" from allocating more than 1GB of virtual memory.

	   rctl -r:

     Remove all RCTL rules.

	   rctl -hu jail:www

     Display resource usage information for jail named "www".

	   rctl -l process:512

     Display all the rules applicable to process with PID 512.

SEE ALSO
     rctl.conf(5), jailstat(8), userstat(8)

HISTORY
     The rctl command appeared in FreeBSD 9.0.

AUTHORS
     The   rctl   command   was   written    by    Edward    Tomasz    Napierala
     <trasz@FreeBSD.org>.

FreeBSD 9.0			  July 14, 2011 			 RCTL(8)

home | help