mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
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>
167 lines
5.4 KiB
Plaintext
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"
|
|
|