diff --git a/lib/vm-rctl b/lib/vm-rctl index bc16826..59ee058 100644 --- a/lib/vm-rctl +++ b/lib/vm-rctl @@ -56,9 +56,11 @@ __vm_set_rctl_limits(){ [ ${_exit} -ne 0 ] && \ __log "guest" "${_name}" "RCTL support requested but RCTL not available" && return 1 + __log "guest" "${_name}" "applying rctl limits" + if [ -n "${_pcpu}" ]; then /usr/bin/rctl -a process:${_pid}:pcpu:deny=${_pcpu} - __log "guest" "${_name}" "limit rctl pcpu resource to ${_pcpu}" + __log "guest" "${_name}" " pcpu=${_pcpu}" fi # at this point we can return if < FreeBSD 11 @@ -66,21 +68,21 @@ __vm_set_rctl_limits(){ if [ -n "${_rbps}" ]; then /usr/bin/rctl -a process:${_pid}:readbps:throttle=${_rbps} - __log "guest" "limit rctl readbps resource to ${_rbps}" + __log "guest" " readbps=${_rbps}" fi if [ -n "${_wbps}" ]; then /usr/bin/rctl -a process:${_pid}:writebps:throttle=${_wbps} - __log "guest" "limit rctl writebps resource to ${_wbps}" + __log "guest" " writebps=${_wbps}" fi if [ -n "${_riops}" ]; then /usr/bin/rctl -a process:${_pid}:readiops:throttle=${_riops} - __log "guest" "limit rctl readiops resource to ${_riops}" + __log "guest" " readiops=${_riops}" fi if [ -n "${_wiops}" ]; then /usr/bin/rctl -a process:${_pid}:writeiops:throttle=${_wiops} - __log "guest" "limit rctl writeiops resource to ${_wiops}" + __log "guest" " writeiops=${_wiops}" fi } diff --git a/vm.8 b/vm.8 index 2f9cc6e..5038c0d 100644 --- a/vm.8 +++ b/vm.8 @@ -932,6 +932,22 @@ Multiple properties can be specified, separated by a space. For example, the fol will configure the ZVOL block size to 128k, and turn compression off. .Pp zfs_zvol_opts="volblocksize=128k compress=off" +.It limit_pcpu +Limit the bhyve process to the specified cpu percentage. +.Pp +Please note this, as with all +.Sy limit +settings, requires +.Xr rctl 8 +to be enabled in your kernel. +.It limit_rbps +Limit guest disk read throughput to the specified bits per second. +.It limit_wbps +Limit guest disk write throughput to the specified bits per second. +.It limit_riops +Limit guest disk read iops to the specified number of operations per second. +.It limit_wiops +Limit guest disk write iops to the specified number of operations per second. .El .\" ============ SEE ALSO ============= .Sh SEE ALSO @@ -944,7 +960,8 @@ zfs_zvol_opts="volblocksize=128k compress=off" .Xr cu 1 , .Xr fetch 1 , .Xr truncate 1 , -.Xr zfs 8 +.Xr zfs 8 , +.Xy rctl 8 .\" ============ BUGS ============= .Sh BUGS Please report all bugs/issues/feature requests to the github project at