Files
s390-tools/etc/cpuplugd.conf
Michael Holzheu b627b8d8e1 Initial s390-tools-2.0.0 import
This commit is based on the s390-tools-1.39.0 version.

Changes on top of s390-tools-1.39.0:

 - Add MIT license to all source files
 - Add LICENSE file
 - Transform REAMDE to README.md (markdown)
 - Add AUTHORS.md file
 - Add CONTRIBUTING.md file
 - Move changelog from README to CHANGELOG.md file

Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
2017-08-21 10:55:40 +02:00

167 lines
5.4 KiB
Plaintext

#
# Exemplary configuration file for the Linux on System z CPU and memory hotplug
# daemon
#
# The file is evaluated by cpuplugd at startup when called with -c.
# It does not contain shell environment variables.
## Type: integer
## Default: 1
#
# The minimum number of CPUs must be > 0.
#
CPU_MIN="1"
## Type: integer
## Default: 0
#
# The maximum number of CPUs to be enabled. If 0 is specified here,
# the maximum number of CPUs equals the number of CPUs detected.
#
CPU_MAX="0"
## Type: integer
## Default: 5
#
# The update interval described how often the current system state
# is checked against the configured set of hotplug and hotunplug rules.
# The update interval is defined in seconds.
#
UPDATE="1"
## Type: integer
## Default: 0
#
# The minimum size of the static page pool (in 4K pages)
#
CMM_MIN="0"
## Type: integer
## Default: 131072
#
# The maximum size of the static page pool (in 4K pages)
#
# Recommended setting is system size minus 256 MB
CMM_MAX="131072" # 512 MB
#
# Variables
#
# User-defined variables are case-sensitive and must not match a pre-defined
# variable or keyword. In the configuration file, definitions
# for user-defined variables must precede their use in expressions.
# Variable names consist of alphanumeric characters (a-z,A-Z,0-9) and
# the "_" character. The maximum name length for a variable is 128 characters,
# and the maximum total size for user-defined variables (names + values) is 4096
# characters.
#
pgscan_d="vmstat.pgscan_direct_dma[0] + vmstat.pgscan_direct_normal[0] + vmstat.pgscan_direct_movable[0]"
pgscan_d1="vmstat.pgscan_direct_dma[1] + vmstat.pgscan_direct_normal[1] + vmstat.pgscan_direct_movable[1]"
# page scan rate in pages / timer tick
pgscanrate="(pgscan_d - pgscan_d1) / (cpustat.total_ticks[0] - cpustat.total_ticks[1])"
# cache usage in kilobytes
avail_cache="meminfo.Cached - meminfo.Shmem"
user_0="(cpustat.user[0] - cpustat.user[1])"
nice_0="(cpustat.nice[0] - cpustat.nice[1])"
system_0="(cpustat.system[0] - cpustat.system[1])"
user_2="(cpustat.user[2] - cpustat.user[3])"
nice_2="(cpustat.nice[2] - cpustat.nice[3])"
system_2="(cpustat.system[2] - cpustat.system[3])"
CP_Active0="(user_0 + nice_0 + system_0) / (cpustat.total_ticks[0] - cpustat.total_ticks[1])"
CP_Active2="(user_2 + nice_2 + system_2) / (cpustat.total_ticks[2] - cpustat.total_ticks[3])"
CP_ActiveAVG="(CP_Active0+CP_Active2) / 2"
idle_0="(cpustat.idle[0] - cpustat.idle[1])"
iowait_0="(cpustat.iowait[0] - cpustat.iowait[1])"
idle_2="(cpustat.idle[2] - cpustat.idle[3])"
iowait_2="(cpustat.iowait[2] - cpustat.iowait[3])"
CP_idle0="(idle_0 + iowait_0) / (cpustat.total_ticks[0] - cpustat.total_ticks[1])"
CP_idle2="(idle_2 + iowait_2) / (cpustat.total_ticks[2] - cpustat.total_ticks[3])"
CP_idleAVG="(CP_idle0 + CP_idle2) / 2"
## Type: string
## Default: "(meminfo.MemFree + cache) / 40"
#
# The amount of pages the static page pool
# is increased if a memunplug rule is matched.
#
# cmm_inc: 10% of free memory, in 4K pages
CMM_INC="meminfo.MemFree / 40"
## Type: string
## Default: "meminfo.MemTotal / 40"
#
# The amount of pages the static page pool
# is decreased if a memplug rule is matched.
#
# cmm_dec: 10% of total memory, in 4K pages
CMM_DEC="meminfo.MemTotal / 40"
#
# Ruledefinitions
#
# Four kinds of rules are distinguished
# (1) hotplug rules, used to enable CPUs
# (2) hotunplug rules, to disable CPUs
# (3) memplug rules, used to increase memory (decrease cmm balloon)
# (4) memunplug rules, used to decrease memory (increase cmm balloon)
#
# Within the hotplug/hotunplug rule definitions the following variables
# can be used:
# - loadavg: the current loadaverage
# - onumcpus: the current number of CPUs which are online
# - runnable_proc: the current amount of runnable processes
# - user: the current user percentage
# - nice: the current nice percentage
# - system: the current system percentage
# - idle: the current idle percentage
# - iowait: the current iowait percentage
# - irq: the current irq percentage
# - softirq: the current softirq percentage
# - steal: the current steal percentage
# - guest: the current guest percentage
# - guest_nice: the current guest_nice percentage
# - cpustat.<name>: data from /proc/stat and /proc/loadavg
# - time: floating point timestamp in "seconds.microseconds"
# since the Unix Epoch (1970-01-01 00:00:00 +0000 (UTC))
#
## Type: string
## Default: "(loadavg > onumcpus + 0.75) & (idle < 10.0)"
#
HOTPLUG="((1 - CP_ActiveAVG) * onumcpus) < 0.08"
## Type: string
## Default: "(loadavg < onumcpus - 0.25) | (idle > 50)"
#
HOTUNPLUG="(CP_idleAVG * onumcpus) > 1.15"
#
# Memplug and memunplug can contain the following keywords:
# - apcr: the amount of page cache operations,
# i.e. pgpin + pgpout from /proc/vmstat
# (in 512 byte blocks / second)
# - freemem: the amount of free memory (in megabytes)
# - swaprate: the number of swap operations, i.e. pswpin + pswpout
# from /proc/vmstat (in pages / second)
# - meminfo.<name>: any value from /proc/meminfo
# - vmstat.<name>: any value from /proc/vmstat
# - time: floating point timestamp in "seconds.microseconds"
# since the Unix Epoch (1970-01-01 00:00:00 +0000 (UTC))
#
# This function is disabled by default, because this rule has to be
# adjusted for each production system, depending on the environment.
#
## Type: string
## Default: "0"
#
#MEMPLUG="pgscanrate > 20"
MEMPLUG="0"
## Type: string
## Default: "0"
#
#MEMUNPLUG="(meminfo.MemFree + avail_cache) > (meminfo.MemTotal / 10)"
MEMUNPLUG="0"