diff options
Diffstat (limited to 'src/pmieconf/percpu')
-rw-r--r-- | src/pmieconf/percpu/context_switch | 70 | ||||
-rw-r--r-- | src/pmieconf/percpu/localdefs | 45 | ||||
-rw-r--r-- | src/pmieconf/percpu/many_util | 85 | ||||
-rw-r--r-- | src/pmieconf/percpu/some_util | 83 | ||||
-rw-r--r-- | src/pmieconf/percpu/syscall | 80 | ||||
-rw-r--r-- | src/pmieconf/percpu/system | 84 |
6 files changed, 447 insertions, 0 deletions
diff --git a/src/pmieconf/percpu/context_switch b/src/pmieconf/percpu/context_switch new file mode 100644 index 0000000..fdee5cd --- /dev/null +++ b/src/pmieconf/percpu/context_switch @@ -0,0 +1,70 @@ +#pmieconf-rules 1 +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) +# + +rule per_cpu.context_switch + summary = "$rule$" + enumerate = "hosts" + predicate = +"some_host ( + some_inst ( + kernel.percpu.pswitch $hosts$ > $threshold$ count/sec + ) + && hinv.ncpu $hosts$ > 1 +)" + enabled = yes + version = 1 + help = +"The number of context switches per second for at least one CPU +exceeded $threshold$ over the past sample interval. + +This rule only applies to multi-processor systems, for +single-processor systems refer to the cpu.context_switch rule. + +For Origin 200 and Origin 2000 systems, use the command + $ pminfo -f hinv.map.cpu +to discover the abbreviated PCP names of the installed CPUs and +their corresponding full names in the /hw file system."; + +string rule + default = "High per CPU context switch rate" + modify = no + display = no; + +double threshold + default = 5000 + help = +"The threshold number of context switches per second per CPU."; + +string action_expand + default = %vctxsw/s[%i]@%h + display = no + modify = no; + +string email_expand + default = "host: %h CPU: %i context switches: %v/sec" + display = no + modify = no; + + +# Configuration info specific to non-PCP tools follows... +# + +# for SGI Embedded Support Partner integration: +string esp_type + default = "0x200056" + display = no + modify = no; + +# for EnlightenDSM integration: +string enln_test + default = per_cpu.context_switch + display = no + modify = no; +string enln_units + default = ctxsw/s[%i] + display = no + modify = no; + +# +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) diff --git a/src/pmieconf/percpu/localdefs b/src/pmieconf/percpu/localdefs new file mode 100644 index 0000000..7bb0c69 --- /dev/null +++ b/src/pmieconf/percpu/localdefs @@ -0,0 +1,45 @@ +ALL_RULES = syscall some_util many_util context_switch system + +LOCAL_RULES = $(ALL_RULES) + +# Metrics missing from Linux +# +# rule: context_switch +# kernel.percpu.pswitch -12357 Unknown metric name +# +# rule: syscall +# kernel.percpu.syscall -12357 Unknown metric name +# +ifeq ($(TARGET_OS), linux) +LOCAL_RULES = some_util many_util system +endif + +# Metrics missing from Mac OS X +# +# rule: syscall +# kernel.percpu.syscall -12357 Unknown metric name +# +# rule: some_util +# kernel.percpu.cpu.intr -12357 Unknown metric name +# +# rule: many_util +# kernel.percpu.cpu.intr -12357 Unknown metric name +# +# rule: context_switch +# kernel.percpu.pswitch -12357 Unknown metric name +# +ifeq ($(TARGET_OS), darwin) +LOCAL_RULES = system +endif + +# Metrics missing from Solaris +# +# rule: many_util +# kernel.percpu.cpu.intr -12357 Unknown metric name +# +# rule: some_util +# kernel.percpu.cpu.intr -12357 Unknown metric name +# +ifeq ($(TARGET_OS), solaris) +LOCAL_RULES = syscall context_switch system +endif diff --git a/src/pmieconf/percpu/many_util b/src/pmieconf/percpu/many_util new file mode 100644 index 0000000..9fe2f08 --- /dev/null +++ b/src/pmieconf/percpu/many_util @@ -0,0 +1,85 @@ +#pmieconf-rules 1 +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) +# + +rule per_cpu.many_util + summary = "$rule$" + enumerate = hosts + predicate = +"some_host ( + $pct$ %_inst ( + 100 * ( kernel.percpu.cpu.user $hosts$ + + kernel.percpu.cpu.sys $hosts$ + + kernel.percpu.cpu.intr $hosts$ ) + > $threshold$ + ) + && hinv.ncpu $hosts$ > $min_cpu_count$ +)" + enabled = yes + version = 1 + help = +"The processor utilization for at least pct percent of the CPUs +exceeded threshold percent during the last sample interval. Only +applies to multi-processor systems having more than min_cpu_count +processors - for single-processor systems refer to the cpu.util +rule, for multi-processor systems with less than min_cpu_count +processors refer to the per_cpu.some_util rule."; + +string rule + default = "High number of saturated processors" + modify = no + display = no; + +percent threshold + default = 95 + help = +"Threshold percentage for CPU saturation, in the range 0 (idle) +to 100 (completely busy)"; + +percent pct + default = 80 + help = +"Percentage of the processors which must be utilized greater +than threshold percent, in the range 0 (no processors utilized) +to 100 (all processors)."; + +unsigned min_cpu_count + default = 4 + help = +"Lower limit on number of processors for this rule - this rule will +apply to configurations of greater than min_cpu_count CPUs. +For smaller processor counts, the per_cpu.some_util rule may be more +appropriate."; + +string action_expand + default = "\\\\>$pct$%cpus@%h" + display = no + modify = no; + +string email_expand + default = "host: %h more than $pct$% of the processors are saturated" + display = no + modify = no; + + +# Configuration info specific to non-PCP tools follows... +# + +# for SGI Embedded Support Partner integration: +string esp_type + default = "0x20005F" + display = no + modify = no; + +# for EnlightenDSM integration: +string enln_test + default = per_cpu.many_util + display = no + modify = no; +string enln_units + default = "busy_CPUs" + display = no + modify = no; + +# +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) diff --git a/src/pmieconf/percpu/some_util b/src/pmieconf/percpu/some_util new file mode 100644 index 0000000..a065226 --- /dev/null +++ b/src/pmieconf/percpu/some_util @@ -0,0 +1,83 @@ +#pmieconf-rules 1 +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) +# + +rule per_cpu.some_util + summary = "$rule$" + enumerate = hosts + predicate = +"some_host ( + some_inst ( + ( 100 * ( kernel.percpu.cpu.user $hosts$ + + kernel.percpu.cpu.sys $hosts$ + + kernel.percpu.cpu.intr $hosts$ ) ) + > $threshold$ + ) + && hinv.ncpu $hosts$ > 1 + && hinv.ncpu $hosts$ <= $max_cpu_count$ +)" + enabled = yes + version = 1 + help = +"The processor utilization for at least one CPU exceeded threshold +percent during the last sample interval. Only applies to +multi-processor systems with less than max_cpu_count processors - +for single-processor systems refer to the cpu.util rule, and for +multi-processor systems with more than max_cpu_count processors +refer to the cpu.many_util rule. +For Origin 200 and Origin 2000 systems, use the command + $ pminfo -f hinv.map.cpu +to discover the abbreviated PCP names of the installed CPUs and +their corresponding full names in the /hw file system."; + +string rule + default = "High per CPU processor utilization" + modify = no + display = no; + +percent threshold + default = 95 + help = +"Threshold percentage for CPU saturation, in the range 0 (idle) +to 100 (completely busy)"; + +unsigned max_cpu_count + default = 4 + help = +"Upper limit on number of processors for this rule - this rule will +apply to configurations of between two and max_cpu_count CPUs. +For larger processor counts, the per_cpu.many_util rule may be more +appropriate."; + +string action_expand + default = %v%util[%i]@%h + display = no + modify = no; + +string email_expand + default = "host: %h CPU: %i utilization: %v%" + display = no + modify = no; + + +# Configuration info specific to non-PCP tools follows... +# + +# for SGI Embedded Support Partner integration: +string esp_type + default = "0x200059" + display = no + modify = no; + +# for EnlightenDSM integration: +string enln_test + default = per_cpu.some_util + display = no + modify = no; +string enln_units + default = %util[%i] + display = no + modify = no; + +# +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) diff --git a/src/pmieconf/percpu/syscall b/src/pmieconf/percpu/syscall new file mode 100644 index 0000000..fbfbeee --- /dev/null +++ b/src/pmieconf/percpu/syscall @@ -0,0 +1,80 @@ +#pmieconf-rules 1 +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) +# + +rule per_cpu.syscall + summary = "$rule$" + enumerate = hosts + predicate = +"some_host ( + some_inst ( + kernel.percpu.syscall $hosts$ > $threshold$ count/sec + ) + && hinv.ncpu $hosts$ > 1 +)" + enabled = yes + version = 1 + help = +"The number of system calls per second for at least one CPU +exceeded threshold over the past sample interval. + +This rule only applies to multi-processor systems, for +single-processor systems refer to the cpu.syscall rule. + +For Origin 200 and Origin 2000 systems, use the command + $ pminfo -f hinv.map.cpu +to discover the abbreviated PCP names of the installed CPUs and +their corresponding full names in the /hw file system."; + +string rule + default = "High per CPU system call rate" + modify = no + display = no; + +double threshold + default = 12000 + help = +"The threshold of system calls per second per CPU. The appropriate +value here is a function of the processor type and the workload, but +here are some indicative figures of sustained system call rates for a +single process: + getpid() - 380000 syscalls/sec + lseek() to start of file - 280000 syscalls/sec + gettimeofday() - 200000 syscalls/sec + read() at end of file - 83000 syscalls/sec + file creat() and close() - 65000 syscalls/sec + socket(), connect() and close() - 7000 syscalls/sec +(generated using an otherwise idle system with 180MHz R10000 processors)."; + +string action_expand + default = %vscall/s[%i]@%h + display = no + modify = no; + +string email_expand + default = "host: %h CPU: %i syscalls/sec: %v" + display = no + modify = no; + + +# Configuration info specific to non-PCP tools follows... +# + +# for SGI Embedded Support Partner integration: +string esp_type + default = "0x200057" + display = no + modify = no; + +# for EnlightenDSM integration: +string enln_test + default = per_cpu.syscall + display = no + modify = no; +string enln_units + default = scall/s[%i] + display = no + modify = no; + +# +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) diff --git a/src/pmieconf/percpu/system b/src/pmieconf/percpu/system new file mode 100644 index 0000000..223692c --- /dev/null +++ b/src/pmieconf/percpu/system @@ -0,0 +1,84 @@ +#pmieconf-rules 1 +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) +# + +rule per_cpu.system + summary = "$rule$" + enumerate = hosts + # need first conjunct to get %v in actions... + predicate = +"some_host ( + some_inst ( + // first term is always true, but provides %v for actions ... + ( 100 * kernel.percpu.cpu.sys $hosts$ ) > 0 + && 100 * ( kernel.percpu.cpu.user $hosts$ + + kernel.percpu.cpu.sys $hosts$ ) > $busy$ + && 100 * kernel.percpu.cpu.sys $hosts$ / + ( kernel.percpu.cpu.user $hosts$ + kernel.percpu.cpu.sys $hosts$ ) + > $threshold$ + ) + && hinv.ncpu $hosts$ > 1 +)" + enabled = yes + version = 1 + help = +"Over the last sample interval, at least one CPU was active for +busy percent or more, and the ratio of system time to busy time +exceeded threshold percent. Only applies to multi-processor +systems, for single-processor systems refer to the cpu.system +rule. +For Origin 200 and Origin 2000 systems, use the command + $ pminfo -f hinv.map.cpu +to discover the abbreviated PCP names of the installed CPUs and +their corresponding full names in the /hw file system."; + +string rule + default = "Some CPU busy executing in system mode" + modify = no + display = no; + +percent busy + default = 75 + help = +"Busy percentage for average CPU utilization, in the range 0 (idle) +to 100 (completely busy), independent of the number of CPUs."; + +percent threshold + default = 80 + help = +"Threshold percentage for system time as a fraction of the non-idle +CPU time, in the range 0 (no system time) to 100 (all system time), +independent of the number of CPUs."; + +string action_expand + default = %v%sys[%i]@%h + display = no + modify = no; + +string email_expand + default = "host: %h CPU: %i system mode: %v%" + display = no + modify = no; + + +# Configuration info specific to non-PCP tools follows... +# + +# for SGI Embedded Support Partner integration: +string esp_type + default = "0x200058" + display = no + modify = no; + +# for EnlightenDSM integration: +string enln_test + default = per_cpu.system + display = no + modify = no; +string enln_units + default = %sys[%i] + display = no + modify = no; + +# +# --- DO NOT MODIFY THIS FILE --- see pmieconf(4) |