project: "all"
maxiterations: 100
startworkload: ""
stopworkload: ""
object : 
  -
    name : "kernel.sched_migration_cost_ns"
    info :
        desc : "This variable is used to determine whether a process is still hot. If the running time of a process is shorter than the value of this variable, the kernel considers that the code of the process is still in the cache. Therefore, the process is still hot and is not considered during migration."
        get : "sysctl -n kernel.sched_migration_cost_ns"
        set : "sysctl -w kernel.sched_migration_cost_ns=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100000
          - 5000000
        step : 100000
        items : 
        dtype : "int"
  -
    name : "kernel.sched_cfs_bandwidth_slice_us"
    info :
        desc : "Fixed size of the time slice applied for from the global time pool"
        get : "sysctl -n kernel.sched_cfs_bandwidth_slice_us"
        set : "sysctl -w kernel.sched_cfs_bandwidth_slice_us=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1000
          - 50000
        step : 1000
        items : 
        dtype : "int"
  -
    name : "kernel.sched_wakeup_granularity_ns"
    info :
        desc : "This variable indicates the base of the minimum time that a process should run after it is woken up. The smaller the base, the higher the probability of preemption."
        get : "sysctl -n kernel.sched_wakeup_granularity_ns"
        set : "sysctl -w kernel.sched_wakeup_granularity_ns=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1000000
          - 100000000
        step : 1000000
        items : 
        dtype : "int"
  -
    name : "kernel.sched_latency_ns"
    info :
        desc : "Maximum running time of a running process."
        get : "sysctl -n kernel.sched_latency_ns"
        set : "sysctl -w kernel.sched_latency_ns=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1000000
          - 100000000
        step : 1000000
        items : 
        dtype : "int"
  -
    name : "kernel.sched_nr_migrate"
    info :
        desc : "How Many Processes Can Be Moved to Another CPU at a Time When Load Balancing Is Performed in the Case of Multiple CPUs?"
        get : "sysctl -n kernel.sched_nr_migrate"
        set : "sysctl -w kernel.sched_nr_migrate=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 128
        step : 1
        items : 
        dtype : "int"
  -
    name : "kernel.sched_min_granularity_ns"
    info :
        desc : "Minimum running time of a process on the CPU. During this time, the kernel does not proactively select other processes for scheduling (in nanoseconds)."
        get : "sysctl -n kernel.sched_min_granularity_ns"
        set : "sysctl -w kernel.sched_min_granularity_ns=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1000000
          - 100000000
        step : 1000000
        items : 
        dtype : "int"
  -
    name : "kernel.sched_tunable_scaling"
    info :
        desc : "Update method used when the kernel attempts to adjust the values of sched_min_granularity, sched_latency, and sched_wakeup_granularity. The value 0 indicates that the value is not adjusted, and the value 1 indicates that the value is adjusted based on the number of CPUs, 2: The linear proportion is adjusted based on the number of CPUs."
        get : "sysctl -n kernel.sched_tunable_scaling"
        set : "sysctl -w kernel.sched_tunable_scaling=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "transparent_hugepage.defrag"
    info :
        desc : "Enabling or Disabling Transparent Hugepages"
        get : cat /sys/kernel/mm/transparent_hugepage/defrag | sed -n 's/.*\[\(.*\)\].*/\1/p'
        set : "echo $value > /sys/kernel/mm/transparent_hugepage/defrag"
        needrestart : "false"
        type : "discrete"
        options :
          - "always"
          - "defer"
          - "defer+madvise"
          - "madvise"
          - "never"
        dtype : "string"
  -
    name : "transparent_hugepage.enabled"
    info :
        desc : "Enabling or Disabling Transparent Hugepages"
        get : cat /sys/kernel/mm/transparent_hugepage/enabled | sed -n 's/.*\[\(.*\)\].*/\1/p'
        set : "echo $value > /sys/kernel/mm/transparent_hugepage/enabled"
        needrestart : "false"
        type : "discrete"
        options :
          - "always"
          - "madvise"
          - "never"
        dtype : "string"
  -
    name : "net.netfilter.nf_conntrack_max"
    info :
        desc : "Maximum number of tracing connections
When a container is used, the nf_conntrack module cannot be disabled. Therefore, kernel parameters related to nf_conntrack need to be added to the /etc/sysctl.conf file to prevent packet loss caused by full table records."
        get : "sysctl -n net.netfilter.nf_conntrack_max"
        set : "sysctl -w net.netfilter.nf_conntrack_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 67108864
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.mtu"
    info :
        desc : "Indicates the maximum transmission unit of the network,"
        get : "ifconfig enp189s0f0 | grep mtu | awk '{print $4}'"
        set : "ifconfig enp189s0f0 mtu $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 500
          - 9000
        step : 500
        items : 
        dtype : "int"
  -
    name : "net.tx-frames"
    info :
        desc : "Configuring NIC Interrupt Combination"
        get : "ethtool -c enp189s0f0 | grep tx-frames: | awk '{print $2}'"
        set : "ethtool -C enp189s0f0 tx-frames $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 64
        step : 2
        items : 
        dtype : "int"
  -
    name : "net.rx-frames"
    info :
        desc : "Configuring NIC Interrupt Combination"
        get : "ethtool -c enp189s0f0 | grep rx-frames: | awk '{print $2}'"
        set : "ethtool -C enp189s0f0 rx-frames $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 64
        step : 2
        items : 
        dtype : "int"
  -
    name : "net.tx-usecs"
    info :
        desc : "Configuring NIC Interrupt Combination"
        get : "ethtool -c enp189s0f0 | grep tx-usecs: | awk '{print $2}'"
        set : "ethtool -C enp189s0f0 tx-usecs $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 2
          - 64
        step : 2
        items : 
        dtype : "int"
  -
    name : "net.rx-usecs"
    info :
        desc : "Configuring NIC Interrupt Combination"
        get : "ethtool -c enp189s0f0 | grep rx-usecs: | awk '{print $2}'"
        set : "ethtool -C enp189s0f0 rx-usecs $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 2
          - 64
        step : 2
        items : 
        dtype : "int"
  -
    name : "net.combined"
    info :
        desc : "Set the length and number of NIC queues."
        get : "ethtool -l enp189s0f0 | grep Combined | awk '{print $2}' | tail -n 1"
        set : "ethtool -L enp189s0f0 combined $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 32
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.adaptive-rx"
    info :
        desc : "Sets whether to enable interrupt combination auto-sensing for a NIC."
        get : "ethtool -c enp189s0f0 | grep Adaptive | awk '{print $3}'"
        set : "ethtool -C enp189s0f0 adaptive-rx $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "net.adaptive-tx"
    info :
        desc : "Sets whether to enable interrupt combination auto-sensing for a NIC."
        get : "ethtool -c enp189s0f0 | grep Adaptive | awk '{print $5}'"
        set : "ethtool -C enp189s0f0 adaptive-tx $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "net.tx-ring buffer size"
    info :
        desc : "Indicates the ring buffer size of the NIC."
        get : "ethtool -g enp189s0f0 | tail -n 2 | head -n 1 | awk '{print $2}'"
        set : "ethtool -G enp189s0f0 tx $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 256
          - 16384
        step : 256
        items : 
        dtype : "int"
  -
    name : "net.rx-ring buffer size"
    info :
        desc : "Indicates the ring buffer size of the NIC."
        get : "ethtool -g enp189s0f0 | tail -n 5 | head -n 1 | awk '{print $2}'"
        set : "ethtool -G enp189s0f0 rx $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 256
          - 16384
        step : 256
        items : 
        dtype : "int"
  -
    name : "net.generic-receive-offload"
    info :
        desc : "Whether reassembling small packets into larger ones"
        get : ethtool -k enp189s0f0 | grep "generic-receive-offload" | awk '{print $2}'
        set : "ethtool -K enp189s0f0 gro $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "net.generic-segmentation-offload"
    info :
        desc : "Whether reassembling small packets into larger ones"
        get : ethtool -k enp189s0f0 | grep "generic-segmentation-offload" | awk '{print $2}'
        set : "ethtool -K enp189s0f0 gso $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "net.tcp-segmentation-offload"
    info :
        desc : "Wheth allow a device to segment a single frame into multiple frames with a data payload size specified in skb_shinfo()->gso_size."
        get : ethtool -k enp189s0f0 | grep "tcp-segmentation-offload" | awk '{print $2}'
        set : "ethtool -K enp189s0f0 tso $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "kernel.pid_max"
    info :
        desc : "Maximum process ID."
        get : "sysctl -n kernel.pid_max"
        set : "sysctl -w kernel.pid_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1048576
          - 4194304
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "kernel.shmmni"
    info :
        desc : "Maximum number of shared memory segments in the system."
        get : "sysctl -n kernel.shmmni"
        set : "sysctl -w kernel.shmmni=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1024
          - 16384
        step : 1024
        items : 
        dtype : "int"
  -
    name : "kernel.shmmax"
    info :
        desc : "The maximum size, in bytes, of the shared memory segment allowed by the system."
        get : "sysctl -n kernel.shmmax"
        set : "sysctl -w kernel.shmmax=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 17179869184
          - 68719476736
        step : 17179869184
        items : 
        dtype : "int"
  -
    name : "kernel.shmall"
    info :
        desc : "The total amount of shared memory available on the system in bytes"
        get : "sysctl -n kernel.shmall"
        set : "sysctl -w kernel.shmall=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1073741824
          - 8589934592
        step : 1073741824
        items : 
        dtype : "int"
  -
    name : "kernel.core_uses_pid"
    info :
        desc : "Whether to add the application pid to the core file name as an extension.
0: no
1: add"
        get : "sysctl -n kernel.core_uses_pid"
        set : "sysctl -w kernel.core_uses_pid=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.msgmni"
    info :
        desc : "System Message Queue Length"
        get : "sysctl -n kernel.msgmni"
        set : "sysctl -w kernel.msgmni=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 8000
          - 128000
        step : 8000
        items : 
        dtype : "int"
  -
    name : "kernel.msgmax"
    info :
        desc : "Maximum number of bytes of a single message in a message queue."
        get : "sysctl -n kernel.msgmax"
        set : "sysctl -w kernel.msgmax=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 4096
          - 1048576
        step : 4096
        items : 
        dtype : "int"
  -
    name : "kernel.msgmnb"
    info :
        desc : "Maximum length of bytes in a single message queue"
        get : "sysctl -n kernel.msgmnb"
        set : "sysctl -w kernel.msgmnb=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 4096
          - 1048576
        step : 4096
        items : 
        dtype : "int"
  -
    name : "kernel.sem"
    info :
        desc : "The file contains four values:
1. Maximum number of signals of the same type (semmsl)
2. Maximum number of signals in the system, =semmni*semmsl (semmns)
3. Maximum number of operations (maximum number of semaphores that can be invoked) contained in each system invoking (semopm)
4. Maximum number of signal types in the system. A signal identifier represents a type (semmni)."
        get : "sysctl -n kernel.sem"
        set : "sysctl -w kernel.sem=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "16000 512000000 256 16000"
          - "32000 1024000000 500 32000"
          - "64000 2048000000 1000 64000"
        dtype : "string"
  -
    name : "kernel.hung_task_timeout_secs"
    info :
        desc : "Timeout interval of a hung_task (in seconds). When a process is in the TASK_UNINTERRUPTIBLE state for a period longer than the timeout interval, a hung_task occurs."
        get : "sysctl -n kernel.hung_task_timeout_secs"
        set : "sysctl -w kernel.hung_task_timeout_secs=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 30
          - 1200
        step : 30
        items : 
        dtype : "int"
  -
    name : "kernel.nmi_watchdog"
    info :
        desc : "Enabling nmi_watchdog
0: disabled
1: enabled"
        get : "sysctl -n kernel.nmi_watchdog"
        set : "sysctl -w kernel.nmi_watchdog=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.sched_rt_runtime_us"
    info :
        desc : "This parameter, together with sched_rt_period, determines the period of the real-time process."
        get : "sysctl -n kernel.sched_rt_runtime_us"
        set : "sysctl -w kernel.sched_rt_runtime_us=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 950000
          - 1000000
        step : 10000
        items : 
        dtype : "int"
  -
    name : "kernel.timer_migration"
    info :
        desc : "Disable Clock Migration"
        get : "sysctl -n kernel.timer_migration"
        set : "sysctl -w kernel.timer_migration=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.threads-max"
    info :
        desc : "Maximum number of processes (including threads) in the system"
        get : "sysctl -n kernel.threads-max"
        set : "sysctl -w kernel.threads-max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 655360
          - 65536000
        step : 655360
        items : 
        dtype : "int"
  -
    name : "kernel.sysrq"
    info :
        desc : "The file specifies a non-zero value, which activates the sysrq key on the keyboard."
        get : "sysctl -n kernel.sysrq"
        set : "sysctl -w kernel.sysrq=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.sched_autogroup_enabled"
    info :
        desc : "When enabled, the kernel creates task groups to optimize desktop program scheduling.
0: disabled
1: enabled"
        get : "sysctl -n kernel.sched_autogroup_enabled"
        set : "sysctl -w kernel.sched_autogroup_enabled=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.numa_balancing"
    info :
        desc : "Specifies whether to enable NUMA automatic balancing."
        get : "sysctl -n kernel.numa_balancing"
        set : "sysctl -w kernel.numa_balancing=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "kernel.randomize_va_space"
    info :
        desc : "Setting Memory Address Randomization"
        get : "sysctl -n kernel.randomize_va_space"
        set : "sysctl -w kernel.randomize_va_space=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 2
        step : 1
        items : 
        dtype : "int"
  -
    name : "kernel.dmesg_restrict"
    info :
        desc : "Which users are restricted from viewing syslogs?
0: no restriction
1: Only privileged users can view the information."
        get : "sysctl -n kernel.dmesg_restrict"
        set : "sysctl -w kernel.dmesg_restrict=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "vm.swappiness"
    info :
        desc : "A larger value indicates that the swap partition is used more actively. A smaller value indicates that the memory is used more actively."
        get : "sysctl -n vm.swappiness"
        set : "sysctl -w vm.swappiness=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 100
        step : 1
        items : 
        dtype : "int"
  -
    name : "vm.vfs_cache_pressure"
    info :
        desc : "Indicates the tendency of the kernel to reclaim the memory used for directory and inode cache."
        get : "sysctl -n vm.vfs_cache_pressure"
        set : "sysctl -w vm.vfs_cache_pressure=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 500
        step : 50
        items : 
        dtype : "int"
  -
    name : "vm.dirty_background_ratio"
    info :
        desc : "When the percentage of dirty pages reaches dirty_background_ratio, the write function wakes up the flusher thread of the kernel to write back dirty page data until the percentage is less than the value of dirty_background_ratio."
        get : "sysctl -n vm.dirty_background_ratio"
        set : "sysctl -w vm.dirty_background_ratio=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 100
        step : 1
        items : 
        dtype : "int"
  -
    name : "vm.dirty_ratio"
    info :
        desc : "The percentage of dirty data in the memory cannot exceed this value."
        get : "sysctl -n vm.dirty_ratio"
        set : "sysctl -w vm.dirty_ratio=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 100
        step : 1
        items : 
        dtype : "int"
  -
    name : "vm.stat_interval"
    info :
        desc : "VM information update frequency (in seconds)"
        get : "sysctl -n vm.stat_interval"
        set : "sysctl -w vm.stat_interval=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 100
        step : 1
        items : 
        dtype : "int"
  -
    name : "vm.dirty_expire_centisecs"
    info :
        desc : "Expiration time of dirty data. When the flusher thread of the kernel is woken up after the expiration time, dirty data is written back to the disk. The unit is 1% second."
        get : "sysctl -n vm.dirty_expire_centisecs"
        set : "sysctl -w vm.dirty_expire_centisecs=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 1000
        step : 100
        items : 
        dtype : "int"
  -
    name : "vm.dirty_writeback_centisecs"
    info :
        desc : "Sets the interval for waking up the flusher kernel thread. This thread is used to write dirty pages back to the disk. The unit is 1% second."
        get : "sysctl -n vm.dirty_writeback_centisecs"
        set : "sysctl -w vm.dirty_writeback_centisecs=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 1000
        step : 100
        items : 
        dtype : "int"
  -
    name : "vm.overcommit_ratio"
    info :
        desc : "When overcommit_memory is set to 2, the percentage of physical RAM that is considered is set."
        get : "sysctl -n vm.overcommit_ratio"
        set : "sysctl -w vm.overcommit_ratio=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 100
        step : 10
        items : 
        dtype : "int"
  -
    name : "vm.overcommit_memory"
    info :
        desc : "Indicates whether to allow excessive memory allocation. The process can allocate more memory than it actually uses."
        get : "sysctl -n vm.overcommit_memory"
        set : "sysctl -w vm.overcommit_memory=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "vm.min_free_kbytes"
    info :
        desc : "Size of memory reserved in each memory area, in KB."
        get : "sysctl -n vm.min_free_kbytes"
        set : "sysctl -w vm.min_free_kbytes=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 10240
          - 1024000
        step : 10240
        items : 
        dtype : "int"
  -
    name : "vm.page-cluster"
    info :
        desc : "Number of pages written to the swap partition each time."
        get : "sysctl -n vm.page-cluster"
        set : "sysctl -w vm.page-cluster=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 8
        step : 1
        items : 
        dtype : "int"
  -
    name : "vm.max_map_count"
    info :
        desc : "Defines the maximum memory area that a process can have."
        get : "sysctl -n vm.max_map_count"
        set : "sysctl -w vm.max_map_count=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100000
          - 10000000
        step : 100000
        items : 
        dtype : "int"
  -
    name : "vm.zone_reclaim_mode"
    info :
        desc : "This parameter is valid only when CONFIG_NUMA is enabled. zone_reclaim_mode is used to control how to reclaim memory when the memory domain OOM is enabled."
        get : "sysctl -n vm.zone_reclaim_mode"
        set : "sysctl -w vm.zone_reclaim_mode=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
          - "4"
        dtype : "string"
  -
    name : "vm.watermark_scale_factor"
    info :
        desc : "Controls the radical degree of the kswapd process, that is, how much memory needs to be released for the system (NUMA node) from wakeup to hibernation."
        get : "sysctl -n vm.watermark_scale_factor"
        set : "sysctl -w vm.watermark_scale_factor=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 10
          - 1000
        step : 10
        items : 
        dtype : "int"
  -
    name : "vm.numa_stat"
    info :
        desc : "This command is used to set the data statistics during NUMA running. When the memory is insufficient, this command can be set to 0 to reduce the statistics precision."
        get : "sysctl -n vm.numa_stat"
        set : "sysctl -w vm.numa_stat=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "vm.drop_caches"
    info :
        desc : "Releases the cache. The cache is released each time the parameter is modified."
        get : "sysctl -n vm.drop_caches"
        set : "sysctl -w vm.drop_caches=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "1"
          - "2"
          - "3"
        dtype : "string"
  -
    name : "fs.inotify.max_user_watches"
    info :
        desc : "Sets the number of processes for each user to run the inotifywait or inotifywatch command."
        get : "sysctl -n fs.inotify.max_user_watches"
        set : "sysctl -w fs.inotify.max_user_watches=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 4096
          - 819200
        step : 4096
        items : 
        dtype : "int"
  -
    name : "fs.nr_open"
    info :
        desc : "Maximum number of file handles that can be concurrently opened by a process"
        get : "sysctl -n fs.nr_open"
        set : "sysctl -w fs.nr_open=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 10240
          - 1024000
        step : 10240
        items : 
        dtype : "int"
  -
    name : "fs.file-max"
    info :
        desc : "Number of file handles that can be opened by all processes in the system at the same time"
        get : "sysctl -n fs.file-max"
        set : "sysctl -w fs.file-max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 102400
          - 10240000
        step : 102400
        items : 
        dtype : "int"
  -
    name : "fs.aio-max-nr"
    info :
        desc : "Maximum number of AIO requests"
        get : "sysctl -n fs.aio-max-nr"
        set : "sysctl -w fs.aio-max-nr=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 102400
          - 10240000
        step : 102400
        items : 
        dtype : "int"
  -
    name : "fs.inotify.max_user_instances"
    info :
        desc : "Maximum number of inotify instances that can be started by each user"
        get : "sysctl -n fs.inotify.max_user_instances"
        set : "sysctl -w fs.inotify.max_user_instances=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 64
          - 65535
        step : 64
        items : 
        dtype : "int"
  -
    name : "fs.suid_dumpable"
    info :
        desc : "This value can be used to query and set the core dump mode for setuid or otherwise protected/tainted binaries.
0: default
1: debug
2: suidsafe"
        get : "sysctl -n fs.suid_dumpable"
        set : "sysctl -w fs.suid_dumpable=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 2
        step : 1
        items : 
        dtype : "int"
  -
    name : "blockdev"
    info :
        desc : "Disk prefetch settings"
        get : "/sbin/blockdev --getra /dev/sda"
        set : "/sbin/blockdev --setra $value /dev/sda"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 2147483648
        step : 8
        items : 
        dtype : "int"
  -
    name : "block.fifo_batch"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
The number of read or write operations issued in a single batch. The default value is 16. The higher the value, the higher the throughput, but also increases the latency."
        get : "cat /sys/block/sda/queue/iosched/fifo_batch"
        set : "echo $value > /sys/block/sda/queue/iosched/fifo_batch"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 128
        step : 1
        items : 
        dtype : "int"
  -
    name : "block.front_merges"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
When a new request enters the queue, it can be merged if the requested sector is close to the current sector. The merge can be backward or forward. In some scenarios, forward merging is unnecessary. In this case, you can set this parameter to disable forward merging. By default, the deadline supports forward merging. If this parameter is set to 0, forward merging is disabled."
        get : "cat /sys/block/sda/queue/iosched/front_merges"
        set : "echo $value > /sys/block/sda/queue/iosched/front_merges"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.read_expire"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
This parameter specifies the expiration time of a read request, in milliseconds."
        get : "cat /sys/block/sda/queue/iosched/read_expire"
        set : "echo $value > /sys/block/sda/queue/iosched/read_expire"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 1000
        step : 100
        items : 
        dtype : "int"
  -
    name : "block.writes_starved"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
This parameter specifies the number of read requests that can be sent after the read and write queues are not empty. A larger value indicates a higher priority for read batch processing."
        get : "cat /sys/block/sda/queue/iosched/writes_starved"
        set : "echo $value > /sys/block/sda/queue/iosched/writes_starved"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 10
        step : 1
        items : 
        dtype : "int"
  -
    name : "block.max_sectors_kb"
    info :
        desc : "Specifies the maximum size (in kilobytes) of the I/O request. The default value is 512 KB."
        get : "cat /sys/block/sda/queue/max_sectors_kb"
        set : "echo $value > /sys/block/sda/queue/max_sectors_kb"
        needrestart : "false"
        type : "discrete"
        scope :
          - 64
          - 1024
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.queue_depth"
    info :
        desc : "Block device queue depth"
        get : "cat /sys/block/sda/device/queue_depth"
        set : "echo $value > /sys/block/sda/device/queue_depth"
        needrestart : "false"
        type : "discrete"
        scope :
          - 64
          - 1024
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.nr_requests"
    info :
        desc : "Limits the maximum number of read and write requests queued at the same time."
        get : "cat /sys/block/sda/queue/nr_requests"
        set : "echo $value > /sys/block/sda/queue/nr_requests"
        needrestart : "false"
        type : "discrete"
        scope :
          - 128
          - 2048
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.read_ahead_kb"
    info :
        desc : "Defines the number of kilobytes that the operating system will prefetch during the sequential read operation phase to store information that may be needed immediately in the page cache."
        get : "cat /sys/block/sda/queue/read_ahead_kb"
        set : "echo $value > /sys/block/sda/queue/read_ahead_kb"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 65536
        step : 1024
        items : 
        dtype : "int"
  -
    name : "block.rq_affinity"
    info :
        desc : "Whether I/O can be performed on different processors is not limited to the processor that sends the I/O request."
        get : "cat /sys/block/sda/queue/rq_affinity"
        set : "echo $value > /sys/block/sda/queue/rq_affinity"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "block.add_random"
    info :
        desc : "Some I/O events affect the entropy pool of /dev/random."
        get : "cat /sys/block/sda/queue/add_random"
        set : "echo $value > /sys/block/sda/queue/add_random"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.rotational"
    info :
        desc : "Whether the storage device is a mechanical hard disk. If the storage device is a solid state disk, set this parameter to 0."
        get : "cat /sys/block/sda/queue/rotational"
        set : "echo $value > /sys/block/sda/queue/rotational"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.scheduler"
    info :
        desc : "Configure I/O scheduling. Deadline or noop is more suitable for MySQL database scenarios."
        get : cat /sys/block/sda/queue/scheduler | sed -n 's/.*\[\(.*\)\].*/\1/p'
        set : "echo $value > /sys/block/sda/queue/scheduler"
        needrestart : "false"
        type : "discrete"
        options :
          - "mq-deadline"
          - "kyber"
          - "bfq"
          - "none"
        dtype : "string"
  -
    name : "block.write_cache"
    info :
        desc : "Whether to use the write back or write through cache policy"
        get : "cat /sys/block/sda/queue/write_cache"
        set : "echo $value > /sys/block/sda/queue/write_cache"
        needrestart : "false"
        type : "discrete"
        options :
          - "write back"
          - "write through"
        dtype : "string"
  -
    name : "block.nomerges"
    info :
        desc : "Most workloads benefit from request merges. However, disabling merges helps for debugging purposes. You can set this parameter to 0 to disable combination. Enabled by default (set to 1)."
        get : "cat /sys/block/sda/queue/nomerges"
        set : "echo $value > /sys/block/sda/queue/nomerges"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "blockdev_multidisk"
    info :
        desc : "Disk prefetch settings"
        get : "/sbin/blockdev --getra /dev/sda"
        set : "bash set_blockdev.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 2147483648
        step : 8
        items : 
        dtype : "int"
  -
    name : "block.fifo_batch_multidisk"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
The number of read or write operations issued in a single batch. The default value is 16. The higher the value, the higher the throughput, but also increases the latency."
        get : "cat /sys/block/sda/queue/iosched/fifo_batch"
        set : "bash set_fifo_batch.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 128
        step : 1
        items : 
        dtype : "int"
  -
    name : "block.front_merges_multidisk"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
When a new request enters the queue, it can be merged if the requested sector is close to the current sector. The merge can be backward or forward. In some scenarios, forward merging is unnecessary. In this case, you can set this parameter to disable forward merging. By default, the deadline supports forward merging. If this parameter is set to 0, forward merging is disabled."
        get : "cat /sys/block/sda/queue/iosched/front_merges"
        set : "bash set_front_merges.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.read_expire_multidisk"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
This parameter specifies the expiration time of a read request, in milliseconds."
        get : "cat /sys/block/sda/queue/iosched/read_expire"
        set : "bash set_read_expire.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 1000
        step : 100
        items : 
        dtype : "int"
  -
    name : "block.writes_starved_multidisk"
    info :
        desc : "This parameter is valid only for the Deadline scheduling policy.
This parameter specifies the number of read requests that can be sent after the read and write queues are not empty. A larger value indicates a higher priority for read batch processing."
        get : "cat /sys/block/sda/queue/iosched/writes_starved"
        set : "bash set_writes_starved.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 10
        step : 1
        items : 
        dtype : "int"
  -
    name : "block.max_sectors_kb_multidisk"
    info :
        desc : "Specifies the maximum size (in kilobytes) of the I/O request. The default value is 512 KB."
        get : "cat /sys/block/sda/queue/max_sectors_kb"
        set : "bash set_max_sectors_kb.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 64
          - 1024
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.queue_depth_multidisk"
    info :
        desc : "Block device queue depth"
        get : "cat /sys/block/sda/device/queue_depth"
        set : "bash set_queue_depth.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 64
          - 1024
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.nr_requests_multidisk"
    info :
        desc : "Limits the maximum number of read and write requests queued at the same time."
        get : "cat /sys/block/sda/queue/nr_requests"
        set : "bash set_nr_requests.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 128
          - 2048
        step : 64
        items : 
        dtype : "int"
  -
    name : "block.read_ahead_kb_multidisk"
    info :
        desc : "Defines the number of kilobytes that the operating system will prefetch during the sequential read operation phase to store information that may be needed immediately in the page cache."
        get : "cat /sys/block/sda/queue/read_ahead_kb"
        set : "bash set_read_ahead_kb.sh $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 65536
        step : 1024
        items : 
        dtype : "int"
  -
    name : "block.rq_affinity_multidisk"
    info :
        desc : "Whether I/O can be performed on different processors is not limited to the processor that sends the I/O request."
        get : "cat /sys/block/sda/queue/rq_affinity"
        set : "bash set_rq_affinity.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "block.add_random_multidisk"
    info :
        desc : "Some I/O events affect the entropy pool of /dev/random."
        get : "cat /sys/block/sda/queue/add_random"
        set : "bash set_add_random.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.rotational_multidisk"
    info :
        desc : "Whether the storage device is a mechanical hard disk. If the storage device is a solid state disk, set this parameter to 0."
        get : "cat /sys/block/sda/queue/rotational"
        set : "bash set_rotational.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block.scheduler_multidisk"
    info :
        desc : "Configure I/O scheduling. Deadline or noop is more suitable for MySQL database scenarios."
        get : cat /sys/block/sda/queue/scheduler | sed -n 's/.*\[\(.*\)\].*/\1/p'
        set : "bash set_scheduler.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "mq-deadline"
          - "kyber"
          - "bfq"
          - "none"
        dtype : "string"
  -
    name : "block.write_cache_multidisk"
    info :
        desc : "Whether to use the write back or write through cache policy"
        get : "cat /sys/block/sda/queue/write_cache"
        set : "bash set_write_cache.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "write back"
          - "write through"
        dtype : "string"
  -
    name : "block.nomerges_multidisk"
    info :
        desc : "Most workloads benefit from request merges. However, disabling merges helps for debugging purposes. You can set this parameter to 0 to disable combination. Enabled by default (set to 1)."
        get : "cat /sys/block/sda/queue/nomerges"
        set : "bash set_nomerges.sh $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "net.core.netdev_budget"
    info :
        desc : "Number of network packets processed in each software interrupt"
        get : "sysctl -n net.core.netdev_budget"
        set : "sysctl -w net.core.netdev_budget=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 1000
        step : 100
        items : 
        dtype : "int"
  -
    name : "net.core.optmem_max"
    info :
        desc : "Maximum size of the buffer allowed by each socket(in bytes)."
        get : "sysctl -n net.core.optmem_max"
        set : "sysctl -w net.core.optmem_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 20480
          - 204800
        step : 20480
        items : 
        dtype : "int"
  -
    name : "net.core.wmem_max"
    info :
        desc : "The maximum size of the system socket write buffer is increased to prevent buffer overflow caused by a large number of new connections. As a result, connections cannot be established. 
The default value is 229376. You are advised to change the value to 16777216."
        get : "sysctl -n net.core.wmem_max"
        set : "sysctl -w net.core.wmem_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1048576
          - 67108864
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "net.core.wmem_default"
    info :
        desc : "Default TCP send window size (bytes)"
        get : "sysctl -n net.core.wmem_default"
        set : "sysctl -w net.core.wmem_default=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 8192
          - 1048576
        step : 8192
        items : 
        dtype : "int"
  -
    name : "net.core.rmem_default"
    info :
        desc : "Sets the default buffer size (bytes) of the receive socket."
        get : "sysctl -n net.core.rmem_default"
        set : "sysctl -w net.core.rmem_default=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 8192
          - 1048576
        step : 8192
        items : 
        dtype : "int"
  -
    name : "net.core.rmem_max"
    info :
        desc : "Maximum system socket read buffer 
The default value is 229376. You are advised to change the value to 16777216."
        get : "sysctl -n net.core.rmem_max"
        set : "sysctl -w net.core.rmem_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1048576
          - 67108864
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "net.core.netdev_max_backlog"
    info :
        desc : "Maximum number of packets that can be sent to the queue when each network interface receives packets faster than the kernel processes them"
        get : "sysctl -n net.core.netdev_max_backlog"
        set : "sysctl -w net.core.netdev_max_backlog=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1000
          - 100000
        step : 1000
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_thin_linear_timeouts"
    info :
        desc : "Check whether the TCP stream is thin after the retransmission times out."
        get : "sysctl -n net.ipv4.tcp_thin_linear_timeouts"
        set : "sysctl -w net.ipv4.tcp_thin_linear_timeouts=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.unix.max_dgram_qlen"
    info :
        desc : "Maximum number of datagrams in a UDP queue"
        get : "sysctl -n net.unix.max_dgram_qlen"
        set : "sysctl -w net.unix.max_dgram_qlen=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 128
          - 1048576
        step : 128
        items : 
        dtype : "int"
  -
    name : "net.core.somaxconn"
    info :
        desc : "Defines the maximum length of the listening queue of each port in the system. This is a global parameter. 
The default value is 128. You are advised to change the value to 1024."
        get : "sysctl -n net.core.somaxconn"
        set : "sysctl -w net.core.somaxconn=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 128
          - 65536
        step : 128
        items : 
        dtype : "int"
  -
    name : "net.core.busy_poll"
    info :
        desc : "Timeout interval for performing the poll and select operations on network devices (us) by default. The value is determined by the number of sockets."
        get : "sysctl -n net.core.busy_poll"
        set : "sysctl -w net.core.busy_poll=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 200
        step : 10
        items : 
        dtype : "int"
  -
    name : "net.core.busy_read"
    info :
        desc : "Timeout interval for reading data frames in the device frame queue (us) by default. The recommended value is 50."
        get : "sysctl -n net.core.busy_read"
        set : "sysctl -w net.core.busy_read=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 200
        step : 10
        items : 
        dtype : "int"
  -
    name : "net.core.dev_weight"
    info :
        desc : "Maximum number of network packets that can be processed by each CPU in an NAPI interrupt"
        get : "sysctl -n net.core.dev_weight"
        set : "sysctl -w net.core.dev_weight=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 16
          - 1024
        step : 16
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_keepalive_intvl"
    info :
        desc : "Indicates the frequency of sending TCP probe packets. The value multiplied by tcp_keepalive_probes indicates the duration when no TCP connection is available."
        get : "sysctl -n net.ipv4.tcp_keepalive_intvl"
        set : "sysctl -w net.ipv4.tcp_keepalive_intvl=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 30
          - 300
        step : 15
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_keepalive_probes"
    info :
        desc : "This file indicates the maximum number of times that TCP keepalive detection is performed before a TCP connection is discarded. Keep-alive connections are sent only when the SO_KEEPALIVE socket option is turned on."
        get : "sysctl -n net.ipv4.tcp_keepalive_probes"
        set : "sysctl -w net.ipv4.tcp_keepalive_probes=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 3
          - 144
        step : 3
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_keepalive_time"
    info :
        desc : "Interval for sending keepalive detection messages(in seconds). This parameter is used to check whether the TCP connection is valid."
        get : "sysctl -n net.ipv4.tcp_keepalive_time"
        set : "sysctl -w net.ipv4.tcp_keepalive_time=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 600
          - 36000
        step : 600
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_tw_reuse"
    info :
        desc : "The value 1 indicates that TIME-WAIT sockets can be used for new TCP connections, and the value 0 indicates that TIME-WAIT sockets are disabled."
        get : "sysctl -n net.ipv4.tcp_tw_reuse"
        set : "sysctl -w net.ipv4.tcp_tw_reuse=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "net.ipv4.tcp_window_scaling"
    info :
        desc : "The window scaling defined in RFC 1323 is enabled. To support a TCP window larger than 64 KB, this parameter must be set to 1. The maximum size of a TCP window is 1 GB. This parameter takes effect only when both parties of a TCP connection are enabled."
        get : "sysctl -n net.ipv4.tcp_window_scaling"
        set : "sysctl -w net.ipv4.tcp_window_scaling=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_fin_timeout"
    info :
        desc : "Maximum duration for a socket to remain in the FIN_WAIT_2 state."
        get : "sysctl -n net.ipv4.tcp_fin_timeout"
        set : "sysctl -w net.ipv4.tcp_fin_timeout=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1
          - 120
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.udp_mem"
    info :
        desc : "The file saves three values:
low: When the number of memory pages used by UDP is less than the value of this parameter, UDP does not release memory.
assure: When the number of memory pages used by UDP exceeds the value of this parameter, UDP attempts to stabilize the memory usage and enters the pressure mode. When the memory usage is less than the value of low, UDP exits the pressure mode.
high: indicates the number of pages that can be used by all UDP sockets to queue and buffer datagrams."
        get : "sysctl -n net.ipv4.udp_mem"
        set : "sysctl -w net.ipv4.udp_mem=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "12582912 16777216 25165824"
          - "25165824 33554432 50331648"
          - "50331648 100663296"
        dtype : "string"
  -
    name : "net.ipv4.tcp_mem"
    info :
        desc : "TCP overall cache setting, which controls all TCP memory usage (in pages). The parameter indicates the no-pressure value of the TCP overall memory, the threshold for enabling the pressure mode, and the maximum usage value in sequence. This parameter is used to control whether the new cache is successfully allocated."
        get : "sysctl -n net.ipv4.tcp_mem"
        set : "sysctl -w net.ipv4.tcp_mem=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "6168306 8224411 12336612"
          - "12336612 16448822 24673224"
        dtype : "string"
  -
    name : "net.ipv4.tcp_rmem"
    info :
        desc : "Size of the read buffer. The first value is the minimum value of the read buffer, the third value is the maximum value, and the middle value is the default value. The default value is 4096 87380 6291456. You are advised to change the value to 4096 87380 16777216."
        get : "sysctl -n net.ipv4.tcp_rmem"
        set : "sysctl -w net.ipv4.tcp_rmem=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "4096 16384 4194304"
          - "4096 32768 8388608"
          - "4096 65536 16777216"
        dtype : "string"
  -
    name : "net.ipv4.tcp_wmem"
    info :
        desc : "Size of the write buffer. The first value is the minimum value of the read buffer, the third value is the maximum value, and the middle value is the default value. The default value is 4096 16384 4194304. You are advised to change the value to 4096 65536 16777216."
        get : "sysctl -n net.ipv4.tcp_wmem"
        set : "sysctl -w net.ipv4.tcp_wmem=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "4096 16384 4194304"
          - "4096 32768 8388608"
          - "4096 65536 16777216"
        dtype : "string"
  -
    name : "net.ipv4.tcp_fastopen"
    info :
        desc : "Whether to enable the TCP quick open mode is to avoid the three-way handshake of hot requests. This greatly improves the performance in the scenario where small objects are moved."
        get : "sysctl -n net.ipv4.tcp_fastopen"
        set : "sysctl -w net.ipv4.tcp_fastopen=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "1"
          - "2"
          - "4"
        dtype : "string"
  -
    name : "net.ipv4.tcp_synack_retries"
    info :
        desc : "For the remote connection request SYN, the kernel sends a SYN + ACK packet to acknowledge the receipt of the previous SYN connection request packet.
It's called a three-way handshake. This parameter determines the number of SYN+ACK packets sent by the kernel before the kernel discards the connection."
        get : "sysctl -n net.ipv4.tcp_synack_retries"
        set : "sysctl -w net.ipv4.tcp_synack_retries=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 3
          - 64
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_syn_retries"
    info :
        desc : "Number of times that the local device retransmits TCP SYN packets due to timeout. The value cannot be greater than 255. This parameter is valid only for outgoing connections. For incoming connections, this parameter is controlled by tcp_retries1."
        get : "sysctl -n net.ipv4.tcp_syn_retries"
        set : "sysctl -w net.ipv4.tcp_syn_retries=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 3
          - 64
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_moderate_rcvbuf"
    info :
        desc : "Whether to adjust the receive buffer when receiving data
0: no adjustment
1: yes"
        get : "sysctl -n net.ipv4.tcp_moderate_rcvbuf"
        set : "sysctl -w net.ipv4.tcp_moderate_rcvbuf=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_timestamps"
    info :
        desc : "Indicates whether to enable the calculation of the RTT in a more accurate way than timeout retransmission (see RFC 1323). This option should be enabled for better performance.
0: no
1: enabled"
        get : "sysctl -n net.ipv4.tcp_timestamps"
        set : "sysctl -w net.ipv4.tcp_timestamps=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_dsack"
    info :
        desc : "Indicates whether to allow TCP to send two identical SACKs.
0: disabled
1: enabled"
        get : "sysctl -n net.ipv4.tcp_dsack"
        set : "sysctl -w net.ipv4.tcp_dsack=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_fack"
    info :
        desc : "Enables the forwarding acknowledgment. The selective acknowledgment (SACK) can be performed to reduce the occurrence of congestion. This option should also be enabled."
        get : "sysctl -n net.ipv4.tcp_fack"
        set : "sysctl -w net.ipv4.tcp_fack=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_sack"
    info :
        desc : "Indicates whether to enable the selective acknowledgment function. This function improves the performance by selectively responding to out-of-order received packets. In this way, the sender can send only lost packet segments. This function should be enabled for WAN communication, however, this increases the CPU usage.
0: no
1: enabled"
        get : "sysctl -n net.ipv4.tcp_sack"
        set : "sysctl -w net.ipv4.tcp_sack=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_low_latency"
    info :
        desc : "Allows the TCP/IP stack to adapt to low latency in high throughput scenarios. This option is generally disabled. (But when building a Beowulf cluster, it helps to open it.)
0: disabled
1: enabled"
        get : "sysctl -n net.ipv4.tcp_low_latency"
        set : "sysctl -w net.ipv4.tcp_low_latency=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_adv_win_scale"
    info :
        desc : "Calculating the Buffer Overhead"
        get : "sysctl -n net.ipv4.tcp_adv_win_scale"
        set : "sysctl -w net.ipv4.tcp_adv_win_scale=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 4
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.route.max_size"
    info :
        desc : "Maximum number of entries in the routing cache. If the number of entries in the routing cache exceeds the maximum, the old entries are cleared."
        get : "sysctl -n net.ipv4.route.max_size"
        set : "sysctl -w net.ipv4.route.max_size=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 67108864
          - 2080374784
        step : 67108864
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_max_tw_buckets"
    info :
        desc : "Reduce the number of TIME_WAIT connections to prevent excessive TIME_WAIT connections from occupying network resources and increasing the latency.
The default value is 2048. You are advised to change the value to 360000."
        get : "sysctl -n net.ipv4.tcp_max_tw_buckets"
        set : "sysctl -w net.ipv4.tcp_max_tw_buckets=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 32768
          - 1048576
        step : 32768
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_max_syn_backlog"
    info :
        desc : "Indicates the length of the SYN queue. A larger queue length can accommodate more network connections waiting for connections.
The default value is 2048. You are advised to change the value to 8192."
        get : "sysctl -n net.ipv4.tcp_max_syn_backlog"
        set : "sysctl -w net.ipv4.tcp_max_syn_backlog=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1024
          - 262144
        step : 1024
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_max_orphans"
    info :
        desc : "Number of sockets that can be processed by the system and do not belong to any process. When a large number of connections need to be quickly established, pay attention to this parameter."
        get : "sysctl -n net.ipv4.tcp_max_orphans"
        set : "sysctl -w net.ipv4.tcp_max_orphans=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 65536
          - 16777216
        step : 65536
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_ecn"
    info :
        desc : "Indicates whether to enable the direct TCP congestion notification function. 0: disabled; 1: enabled"
        get : "sysctl -n net.ipv4.tcp_ecn"
        set : "sysctl -w net.ipv4.tcp_ecn=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
          - "2"
        dtype : "string"
  -
    name : "net.ipv4.ip_forward"
    info :
        desc : "Indicates whether to enable IPv4 IP forwarding.
0: disabled
1: enabled"
        get : "sysctl -n net.ipv4.ip_forward"
        set : "sysctl -w net.ipv4.ip_forward=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.default.rp_filter"
    info :
        desc : "The kernel sets the policy for responding to ARP queries."
        get : "sysctl -n net.ipv4.conf.default.rp_filter"
        set : "sysctl -w net.ipv4.conf.default.rp_filter=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.ip_local_port_range"
    info :
        desc : "The range of available ports has been increased to prevent performance deterioration caused by continuous search of available ports for new connections when a large number of connections occupy ports."
        get : "sysctl -n net.ipv4.ip_local_port_range"
        set : "sysctl -w net.ipv4.ip_local_port_range=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "32768 60999"
          - "1024 65535"
          - "8192 65535"
        dtype : "string"
  -
    name : "net.ipv4.tcp_no_metrics_save"
    info :
        desc : "After a TCP connection is closed, the saved parameters can be used to initialize the connection when the same connection is created next time as long as dst_entry is valid."
        get : "sysctl -n net.ipv4.tcp_no_metrics_save"
        set : "sysctl -w net.ipv4.tcp_no_metrics_save=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.ip_default_ttl"
    info :
        desc : "Specifies the lifetime of IP packets sent from the local device. The value is an integer ranging from 0 to 128. The default value is 64."
        get : "sysctl -n net.ipv4.ip_default_ttl"
        set : "sysctl -w net.ipv4.ip_default_ttl=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 8
          - 128
        step : 8
        items : 
        dtype : "int"
  -
    name : "net.ipv4.ip_no_pmtu_disc"
    info :
        desc : "Setting the MTU for Automatic Socket Detection"
        get : "sysctl -n net.ipv4.ip_no_pmtu_disc"
        set : "sysctl -w net.ipv4.ip_no_pmtu_disc=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_retries2"
    info :
        desc : "The number of retries required before discarding an active (established traffic condition) TCP connection. The default value is 15."
        get : "sysctl -n net.ipv4.tcp_retries2"
        set : "sysctl -w net.ipv4.tcp_retries2=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 3
          - 30
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_orphan_retries"
    info :
        desc : "Number of retries before the local end discards the TCP connection. The default value is 7."
        get : "sysctl -n net.ipv4.tcp_orphan_retries"
        set : "sysctl -w net.ipv4.tcp_orphan_retries=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 15
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_syncookies"
    info :
        desc : "Indicates whether to enable the TCP synchronization label (syncookie)."
        get : "sysctl -n net.ipv4.tcp_syncookies"
        set : "sysctl -w net.ipv4.tcp_syncookies=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_reordering"
    info :
        desc : "Maximum number of reordered data packets in TCP flows"
        get : "sysctl -n net.ipv4.tcp_reordering"
        set : "sysctl -w net.ipv4.tcp_reordering=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 2
          - 10
        step : 1
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_retrans_collapse"
    info :
        desc : "Provides compatibility for bugs on some printers. (Generally, this support is not required. You can disable it.)"
        get : "sysctl -n net.ipv4.tcp_retrans_collapse"
        set : "sysctl -w net.ipv4.tcp_retrans_collapse=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.tcp_congestion_control"
    info :
        desc : "TCP congestion scheduling algorithm"
        get : "sysctl -n net.ipv4.tcp_congestion_control"
        set : "sysctl -w net.ipv4.tcp_congestion_control=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "cubic"
          - "reno"
          - "bbr"
        dtype : "string"
  -
    name : "net.ipv4.conf.default.promote_secondaries"
    info :
        desc : "0: When the primary IP address of an interface is removed, all secondary IP addresses are deleted.
1: When the primary IP address of an interface is removed, the secondary IP address becomes the primary IP address."
        get : "sysctl -n net.ipv4.conf.default.promote_secondaries"
        set : "sysctl -w net.ipv4.conf.default.promote_secondaries=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.all.promote_secondaries"
    info :
        desc : "0: When the primary IP address of an interface is removed, all secondary IP addresses are deleted.
1: When the primary IP address of an interface is removed, the secondary IP address becomes the primary IP address."
        get : "sysctl -n net.ipv4.conf.all.promote_secondaries"
        set : "sysctl -w net.ipv4.conf.all.promote_secondaries=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.all.accept_redirects"
    info :
        desc : "Receives and sends ICMP redirection messages. The default value is True for hosts and False for routers.
0: disabled
1: yes"
        get : "sysctl -n net.ipv4.conf.all.accept_redirects"
        set : "sysctl -w net.ipv4.conf.all.accept_redirects=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.default.accept_redirects"
    info :
        desc : "Receives and sends ICMP redirection messages. The default value is True for hosts and False for routers.
0: disabled
1: yes"
        get : "sysctl -n net.ipv4.conf.default.accept_redirects"
        set : "sysctl -w net.ipv4.conf.default.accept_redirects=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.all.secure_redirects"
    info :
        desc : "Receives only ICMP redirect messages sent to gateways in the default gateway list.
0: disabled
1: yes"
        get : "sysctl -n net.ipv4.conf.all.secure_redirects"
        set : "sysctl -w net.ipv4.conf.all.secure_redirects=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.conf.default.secure_redirects"
    info :
        desc : "Receives only ICMP redirect messages sent to gateways in the default gateway list.
0: disabled
1: yes"
        get : "sysctl -n net.ipv4.conf.default.secure_redirects"
        set : "sysctl -w net.ipv4.conf.default.secure_redirects=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.ipv4.icmp_echo_ignore_broadcasts"
    info :
        desc : "Ignore all received ICMP Echo request broadcasts.
0: not ignore
1: ignore"
        get : "sysctl -n net.ipv4.icmp_echo_ignore_broadcasts"
        set : "sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.nf_conntrack_max"
    info :
        desc : "Maximum number of ip_conntrack structures in the memory"
        get : "sysctl -n net.nf_conntrack_max"
        set : "sysctl -w net.nf_conntrack_max=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 65536
          - 1048576
        step : 65536
        items : 
        dtype : "int"
  -
    name : "net.netfilter.nf_conntrack_tcp_timeout_established"
    info :
        desc : "Timeout interval for TCP in the established state (s)"
        get : "sysctl -n net.netfilter.nf_conntrack_tcp_timeout_established"
        set : "sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 108000
          - 1728000
        step : 108000
        items : 
        dtype : "int"
  -
    name : "net.netfilter.nf_conntrack_tcp_timeout_close_wait"
    info :
        desc : "Timeout interval for TCP in close wait state (s)"
        get : "sysctl -n net.netfilter.nf_conntrack_tcp_timeout_close_wait"
        set : "sysctl -w net.netfilter.nf_conntrack_tcp_timeout_close_wait=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 15
          - 240
        step : 15
        items : 
        dtype : "int"
  -
    name : "net.netfilter.nf_conntrack_tcp_timeout_fin_wait"
    info :
        desc : "Timeout interval for TCP in the fin wait state (s)"
        get : "sysctl -n net.netfilter.nf_conntrack_tcp_timeout_fin_wait"
        set : "sysctl -w net.netfilter.nf_conntrack_tcp_timeout_fin_wait=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 30
          - 480
        step : 30
        items : 
        dtype : "int"
  -
    name : "net.netfilter.nf_conntrack_tcp_timeout_time_wait"
    info :
        desc : "Timeout interval for TCP in time wait state (s)"
        get : "sysctl -n net.netfilter.nf_conntrack_tcp_timeout_time_wait"
        set : "sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 30
          - 480
        step : 30
        items : 
        dtype : "int"
  -
    name : "net.ipv4.conf.default.forwarding"
    info :
        desc : "Enable the forwarding function on the interface.
0: disabled
1: yes"
        get : "sysctl -n net.ipv4.conf.default.forwarding"
        set : "sysctl -w net.ipv4.conf.default.forwarding=$value"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "net.core.rps_sock_flow_entries"
    info :
        desc : "RFS (Receiver Flow Control) extends the performance of RPS to increase the CPU cache hit ratio and reduce network latency."
        get : "sysctl -n net.core.rps_sock_flow_entries"
        set : "sysctl -w net.core.rps_sock_flow_entries=$value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 131072
        step : 1024
        items : 
        dtype : "int"
  -
    name : "net.ipv4.tcp_min_tso_segs"
    info :
        desc : "Minimal number of segments per TSO frame."
        get : "sysctl -n net.ipv4.tcp_min_tso_segs"
        set : "sysctl -w net.ipv4.tcp_min_tso_segs=$value"
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 16
        dtype : "int"
  -
    name : "login.UserTasksMax"
    info :
        desc : "Limit the maximum number of operating system tasks that can be run concurrently by each user"
        get : cat /etc/systemd/logind.conf | grep -w "^UserTasksMax" | awk -F "=" '{print$2}'
        set : sed -i "s/UserTasksMax=.*/UserTasksMax=$value/" /etc/systemd/logind.conf
        needrestart : "false"
        type : "continuous"
        scope :
          - 1024
          - 1048576
        dtype : "int"
  -
    name : "ulimit.nofile"
    info :
        desc : "Maximum number of files that can be used by a user."
        get : "ulimit -n"
        set : "ulimit -n $value"
        needrestart : "false"
        type : "discrete"
        scope :
          - 1024
          - 10240
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetcher"
    info :
        desc : "Hardware prefetch policy. The value 0 indicates that the policy is disabled, and the value 15 indicates that the policy is enabled."
        get : "cat /sys/class/misc/prefetch/policy | grep -e 'cpu(0)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/policy"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 15
        step : 1
        items : 
        dtype : "int"
  -
    name : "read_unique"
    info :
        desc : "Whether to allow cross-numa access to cache. 0--allow 1--forbid."
        get : "cat /sys/class/misc/prefetch/read_unique | grep -e 'cpu(0)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/read_unique"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_nosnp_atomic_bypass_en"
    info :
        desc : "Whether to bypass atomic operations of CPUs. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_nosnp_atomic_bypass_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_nosnp_atomic_bypass_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ro_alloc_shut_en"
    info :
        desc : "Whether to allow allocating readonce operation into L3. 0--allow 1--forbid"
        get : "cat /sys/class/misc/prefetch/reg_ro_alloc_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ro_alloc_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_wrfull_hit_shut_en"
    info :
        desc : "Whether to send createE to HA when 64wu-full hit spipe M. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_wrfull_hit_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_wrfull_hit_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "req_conflict_en"
    info :
        desc : "Whether to enable the operation of reversing back one pat when receiving requests from both in and out of CPU. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/req_conflict_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/req_conflict_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "lower_power_en"
    info :
        desc : "Whether to enable CQ low power method. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/lower_power_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/lower_power_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "dataclean_shut_en"
    info :
        desc : "Whether to shield the CE bit of Taishan Core's write_no_snoop_full. 0--not shield 1--shield"
        get : "cat /sys/class/misc/prefetch/dataclean_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/dataclean_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "arb_flush_shut_en"
    info :
        desc : "Whether to enable the reset of ARBIT scheduling pointer when CQ queue is at idle status. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/arb_flush_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/arb_flush_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "pgnt_arb_exat_shut_en"
    info :
        desc : "Whether to enable pgrant scheduling method in which only one grant tries at one time. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/pgnt_arb_exat_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/pgnt_arb_exat_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "fast_exter_shut_en"
    info :
        desc : "Whether to forbid data missed from extern requests to be transferred through fast access. 0--allow 1--forbid"
        get : "cat /sys/class/misc/prefetch/fast_exter_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/fast_exter_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "fast_data_shut_en"
    info :
        desc : "Whether to forbid data missed to be transferred through fast access. 0--allow 1--forbid"
        get : "cat /sys/class/misc/prefetch/fast_data_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/fast_data_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "pend_data_shut_en"
    info :
        desc : "Whether to forbid data missed to be transferred through pend access. 0--allow 1--forbid"
        get : "cat /sys/class/misc/prefetch/pend_data_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/pend_data_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "ramswap_full_shut_en"
    info :
        desc : "Full or partial when doing ramswap. 1--partial 0--Full."
        get : "cat /sys/class/misc/prefetch/ramswap_full_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/ramswap_full_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "ramfwd_shut_en"
    info :
        desc : "Enable ramfwd method. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/ramfwd_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/ramfwd_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reads_upgrade_en"
    info :
        desc : "Enable read_shared operation status promotion. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reads_upgrade_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reads_upgrade_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "rdmerge_pipe_en"
    info :
        desc : "Whether to allow requests from Sqmerge to be hit in Cpipe5. 0--forbid 1--allow"
        get : "cat /sys/class/misc/prefetch/rdmerge_pipe_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/rdmerge_pipe_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "spill_en"
    info :
        desc : "Enable spill in L3T. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/spill_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/spill_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "spill_shared_en"
    info :
        desc : "Enable spill at shared status of L3T. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/spill_shared_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/spill_shared_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "spill_instr_en"
    info :
        desc : "Enable instruction spill in L3T. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/spill_instr_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/spill_instr_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "sqrdmerge_en"
    info :
        desc : "Use RDMERGE acceleration in SQ merge operations. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/sqrdmerge_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/sqrdmerge_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_drop_en"
    info :
        desc : "Enable the drop of prefetch in L3T. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prefetch_drop_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_drop_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "datapull_en"
    info :
        desc : "Enable the datapull in L3T. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/datapull_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/datapull_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "mkinvld_en"
    info :
        desc : "Enable the transformation from makelinvalid to cleinvalid. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/mkinvld_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/mkinvld_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "ramthr_en"
    info :
        desc : "Allow CPU to derive data back from thr channel directly in L3D. 0--forbid 1--allow"
        get : "cat /sys/class/misc/prefetch/ramthr_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/ramthr_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "rsperr_en"
    info :
        desc : "Allow to report rsperr. 0--forbid 1--allow"
        get : "cat /sys/class/misc/prefetch/rsperr_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/rsperr_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "iocapacity_limit_en"
    info :
        desc : "Whether to limit the io capacity of cache. 0--unlimiet 1--limit."
        get : "cat /sys/class/misc/prefetch/iocapacity_limit_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/iocapacity_limit_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "force_cq_clk_en"
    info :
        desc : "Force to open Cache queue clock. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/force_cq_clk_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/force_cq_clk_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "sqmerge_en"
    info :
        desc : "Whether consecutive address access can occupy only one entry in the squeue to accelerate the merge process. 0--limit 1--merge."
        get : "cat /sys/class/misc/prefetch/sqmerge_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/sqmerge_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "rdmerge_upgrade_en"
    info :
        desc : "Whether to allow the RS to merge with the preceding ReadE. 0--disabl 1--allow."
        get : "cat /sys/class/misc/prefetch/rdmerge_upgrade_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/rdmerge_upgrade_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_drop_hha_en"
    info :
        desc : "Whether to merge a non-prefetch operation with the previous prefetch operation. 0--allow 1--limit."
        get : "cat /sys/class/misc/prefetch/prefetch_drop_hha_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_drop_hha_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "tag_rep_alg"
    info :
        desc : "Choose cache line algorithm. 0--random 1--drrip 2--plru 3--random."
        get : "cat /sys/class/misc/prefetch/tag_rep_alg | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/tag_rep_alg"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 3
        step : 1
        items : 
        dtype : "int"
  -
    name : "rdnosnp_nca_shut_en"
    info :
        desc : "Whether to mark the readnosnp of the bypass sent by the CPU as NCA. 0--yes 1--no"
        get : "cat /sys/class/misc/prefetch/rdnosnp_nca_shut_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/rdnosnp_nca_shut_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "wrfull_create_en"
    info :
        desc : "Whether to enable 128-byte writeunique only to obtain permission but not data from HHA. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/wrfull_create_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/wrfull_create_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "cleanunique_data_en"
    info :
        desc : "Whether to enable the cleanunqunie to return data. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/cleanunique_data_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/cleanunique_data_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "lock_share_req_en"
    info :
        desc : "Whether to enable the register lock function in share mode and not to deliver operations to the HHA. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/lock_share_req_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/lock_share_req_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "ddr_compress_opt_en"
    info :
        desc : "Optimization switch of support HHA compression access. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/ddr_compress_opt_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/ddr_compress_opt_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "atomic_monitor_en"
    info :
        desc : "Enable atomic_monitor. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/atomic_monitor_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/atomic_monitor_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "snpsleep_en"
    info :
        desc : "Whether to enable snp sleep. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/snpsleep_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/snpsleep_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetchtgt_en"
    info :
        desc : "Whether to enable the prefetchtgt. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/prefetchtgt_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetchtgt_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "sequence_shape_en"
    info :
        desc : "Enable to push back to the CPU for several cycles when the SQ is about to be full. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/sequence_shape_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/sequence_shape_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "mpam_portion_en"
    info :
        desc : "Enable the function of allocating MPAM based on the way. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/mpam_portion_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/mpam_portion_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "mpam_capacity_en"
    info :
        desc : "Enable the function of allocating MPAM based on capacity statistics. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/mpam_capacity_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/mpam_capacity_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "eccchk_en"
    info :
        desc : "Enable ECC_CHK. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/eccchk_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/eccchk_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "refill_1024_relax_en"
    info :
        desc : "Whether to use the 1024-bit size to send requests for access. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/refill_1024_relax_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/refill_1024_relax_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "lookup_thr_en"
    info :
        desc : "Whether to enable the through channel during pipeline query. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/lookup_thr_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/lookup_thr_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "snpunique_stash_en"
    info :
        desc : "Support to receive hydra snpUniquestash. 0--forbid 1--support"
        get : "cat /sys/class/misc/prefetch/snpunique_stash_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/snpunique_stash_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_timeout_mask_en"
    info :
        desc : "Enable the count for timeout. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prime_timeout_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_timeout_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_sleep_mask_en"
    info :
        desc : "Enable the function of releasing a sleep request after a period of time. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prime_sleep_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_sleep_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_extend_mask_en"
    info :
        desc : "Whether to enable random allocation of a request to extendway. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prime_extend_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_extend_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "force_intl_allocate_fail"
    info :
        desc : "Enable the function of forcibly determining that the assign operation of the intleave type fails. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/force_intl_allocate_fail | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/force_intl_allocate_fail"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "cpu_write_unique_stream_en"
    info :
        desc : "Whether to forcibly process the writeunique operation delivered by the CPU as the stream type. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/cpu_write_unique_stream_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/cpu_write_unique_stream_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "cpu_pf_lqos_en"
    info :
        desc : "Whether to enable the prefetch operation delivered by the CPU to be forcibly processed as the lqos operation. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/cpu_pf_lqos_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/cpu_pf_lqos_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "cpu_vic_lqos_en"
    info :
        desc : "Whether to enable the victim operation delivered by the CPU to be forcibly processed as the lqos operation. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/cpu_vic_lqos_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/cpu_vic_lqos_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_excl_mask_en"
    info :
        desc : "Whether to enable the random exclusive operation. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prime_excl_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_excl_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_drop_mask_en"
    info :
        desc : "Enable prefetch to retry randomly. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/prime_drop_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_drop_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prime_home_mask_en"
    info :
        desc : "Enable the forcehome processing on internal requests randomly. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/prime_home_mask_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prime_home_mask_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "refillsize_com_ada_en"
    info :
        desc : "Whether to enable the auto-sensing of the size of the request sent to the HHA. If the size of the continuously received requests is 128 bytes or 64 bytes, the size of the prefetched request is automatically adjusted. 0--disable 1--enable adaptive size adjustment."
        get : "cat /sys/class/misc/prefetch/refillsize_com_ada_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/refillsize_com_ada_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "refillsize_pre_ada_en"
    info :
        desc : "Whether to enable the adaptation of the size of the request sent to the HHA. If the size of the continuously received request is 128 bytes or 64 bytes, the size of the normal request is automatically adjusted. 0--disable 1--enable adaptive size adjustment."
        get : "cat /sys/class/misc/prefetch/refillsize_pre_ada_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/refillsize_pre_ada_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "sequence_opt_en"
    info :
        desc : "Whether change the L3T processing to serial mode when blocking. 0--limit 1--enable."
        get : "cat /sys/class/misc/prefetch/sequence_opt_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/sequence_opt_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_clr_level"
    info :
        desc : "Number of requests that fail to find the corresponding prefetch buffer and lower the priority of each buffer to make the existing buffer easier to replace. Range from 0~255."
        get : "cat /sys/class/misc/prefetch/prefetch_clr_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_clr_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 255
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetch_overide_level"
    info :
        desc : "Initial coverage priority for an operation to enter the prefetch buffer. If the value is incorrect, the threshold is decreased by 1. If the value is correct, the threshold is increased by 1. If the value is 0, the prefetch rule needs to be replaced. range 0~15."
        get : "cat /sys/class/misc/prefetch/prefetch_overide_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_overide_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 15
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetch_utl_ddr"
    info :
        desc : "The utilization of ddr that leads to the halving the threshold of prefetch. 0--less thean 1/2 1--1/2 2--3/4 3--almost full."
        get : "cat /sys/class/misc/prefetch/prefetch_utl_ddr | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_utl_ddr"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 3
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetch_utl_ddr_en"
    info :
        desc : "Whether to allow the automatic threshold reduction according to the utilization of ddr. 0--forbid 1--allow."
        get : "cat /sys/class/misc/prefetch/prefetch_utl_ddr_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_utl_ddr_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_utl_l3t"
    info :
        desc : "The utilization of l3t that leads to the halving the threshold of prefetch. 0--less thean 1/2 1--1/2 2--3/4 3--almost full."
        get : "cat /sys/class/misc/prefetch/prefetch_utl_l3t | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_utl_l3t"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 3
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetch_utl_l3t_en"
    info :
        desc : "Whether to allow the automatic threshold reduction according to the utilization of l3t. 0--forbid 1--allow."
        get : "cat /sys/class/misc/prefetch/prefetch_utl_l3t_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_utl_l3t_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_vague_en"
    info :
        desc : "Whether to enable fuzzy match for prefetch. After the function is enabled, the prefetch summarizes the same 16 KB address rule. The four 4 KB address rules are the same and can be used together. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/prefetch_vague_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_vague_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_core_en"
    info :
        desc : "Core prefetch enable: Bit 1 indicates that the core request needs to be prefetched. range 0~15."
        get : "cat /sys/class/misc/prefetch/prefetch_core_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_core_en"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 15
        step : 1
        items : 
        dtype : "int"
  -
    name : "prefetch_match_en"
    info :
        desc : "Whether to enable the prefetch operation after the prefetch hit. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/prefetch_match_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_match_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_start_level"
    info :
        desc : "The number of missing addresses that leads to prefetch. 0--32 1--2 n-1--n, can be 0-31."
        get : "cat /sys/class/misc/prefetch/prefetch_start_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_start_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 31
        step : 1
        items : 
        dtype : "int"
  -
    name : "pime_timeout_num"
    info :
        desc : "The maximum count of timeout. Range from 0 to 65535."
        get : "cat /sys/class/misc/prefetch/pime_timeout_num | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/pime_timeout_num"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 65535
        step : 1
        items : 
        dtype : "int"
  -
    name : "reg_ctrl_spillprefetch"
    info :
        desc : "Snoop type configuration of the spill. 0--type of request 1--prefetch"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_spillprefetch | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_spillprefetch"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_mpamen"
    info :
        desc : "Enable HHA MPAM scheduling. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_mpamen | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_mpamen"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_mpamqos"
    info :
        desc : "Enable QoS for modifying the DDR read/write command based on the MPAM monitoring and control bandwidth. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_mpamqos | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_mpamqos"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_poison"
    info :
        desc : "Enable HHA to return poison. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_poison | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_poison"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_compress_spec"
    info :
        desc : "Enable the random read of 128-byte data in HHA memory data compression. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_compress_spec | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_compress_spec"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_writeevict_drop"
    info :
        desc : "Enable the discard of WriteEvictI. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/reg_ctrl_writeevict_drop | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_writeevict_drop"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_prefetch_drop"
    info :
        desc : "Prefetch operation discard enable. 0--disable 1--enable."
        get : "cat /sys/class/misc/prefetch/reg_ctrl_prefetch_drop | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_prefetch_drop"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_dmcassign"
    info :
        desc : "DDR access address alignment enable. 0--The DDR read operation uses the wrap mode, and the address is 32-byte-aligned. The DDR write operation is always in INCR mode, and the address is aligned with the access boundary. 1--The DDR read operation is always in INCR mode, and the address is aligned with the access boundary. The DDR write operation is always in INCR mode, and the address is aligned with the access boundary."
        get : "cat /sys/class/misc/prefetch/reg_ctrl_dmcassign | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_dmcassign"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_rdatabyp"
    info :
        desc : "DDR read data bypass memory enable in the HHA. 0--disable 1--The internal data of the HHA is bypassed, and the DDR read data can be transmitted quickly."
        get : "cat /sys/class/misc/prefetch/reg_ctrl_rdatabyp | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_rdatabyp"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_excl_clear_dis"
    info :
        desc : "Whether to disable the function of periodically clearing HHA non-cacheable exclusive monitor. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_excl_clear_dis | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_excl_clear_dis"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_excl_eventen"
    info :
        desc : "Enable HHA non-cacheable exclusive monitor event. An event can be sent to wake up the CPU when an address is successfully written or corrupted. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_excl_eventen | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_excl_eventen"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_ctrl_eccen"
    info :
        desc : "Enable the memory ECC error correction in the HHA. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_ctrl_eccen | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_ctrl_eccen"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_readoncesnp_dis"
    info :
        desc : "Disable NCA Readonce fixed snoop. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_readoncesnp_dis | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_readoncesnp_dis"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_exter_stash"
    info :
        desc : "L3T configuration of extern snoop stash. 0--forbid 1--allow"
        get : "cat /sys/class/misc/prefetch/reg_cc_exter_stash | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_exter_stash"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_writebacki_spill_full"
    info :
        desc : "Enable fixed 128-byte data spill of the WritebackI operation. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_writebacki_spill_full | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_writebacki_spill_full"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_writeevicti_spill_full"
    info :
        desc : "Enable fixed 128-byte data spill of the WriteEvictI operation. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_writeevicti_spill_full | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_writeevicti_spill_full"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_stashonce_full"
    info :
        desc : "Enable fixed 128-byte data stash of the StashOnce operation. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_stashonce_full | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_stashonce_full"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_atomicstashl2"
    info :
        desc : "Enable L2 stash of atomic operations. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_atomicstashl2 | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_atomicstashl2"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_atomicstashl3"
    info :
        desc : "Enable L3 stash of atomic operations. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_atomicstashl3 | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_atomicstashl3"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_atomicstashclr"
    info :
        desc : "Clear L3 stash monitor of atomic operations. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_atomicstashclr | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_atomicstashclr"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_cmo_snpme"
    info :
        desc : "Enable snoop me for CMO operations. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_cmo_snpme | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_cmo_snpme"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_makee_change"
    info :
        desc : "Enable HHA MakeE conversion to readE when the HHA MakeE is not self-hit. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_makee_change | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_makee_change"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_ioc_hitsca_dis"
    info :
        desc : "Disable the function of recording CAIDs when the HHA I/O cache hits the exact directory. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_cc_ioc_hitsca_dis | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_ioc_hitsca_dis"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_passdirty"
    info :
        desc : "Enable HHA pass dirty. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_passdirty | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_passdirty"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_snpdrop"
    info :
        desc : "Enable Snoop Drop. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_snpdrop | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_snpdrop"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_cc_spill"
    info :
        desc : "Enable local multi-partition sharing. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_cc_spill | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_cc_spill"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_precisionsnp_dis"
    info :
        desc : "Disable HHA precise snoop based on shared directories. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_precisionsnp_dis | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_precisionsnp_dis"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_notonly_excl"
    info :
        desc : "Whether to create new entries for exclusive operations in the HHA share directory buffer. 0--only for exclusive operations 1--for all of operations"
        get : "cat /sys/class/misc/prefetch/reg_notonly_excl | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_notonly_excl"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_buffer_share_dis"
    info :
        desc : "Disable HHA share directory buffer. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_buffer_share_dis | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_buffer_share_dis"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_miss_allindex"
    info :
        desc : "Enable that HHA miss queues are related based on index. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_miss_allindex | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_miss_allindex"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_miss_cbackth"
    info :
        desc : "Enable HHA miss queue copyback request to use second threshold. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_miss_cbackth | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_miss_cbackth"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_miss_normalth"
    info :
        desc : "Enable HHA miss queue common request to use second threshold. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_miss_normalth | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_miss_normalth"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_miss_tosdir"
    info :
        desc : "Enable HHA only to allow miss alloc to be sent to sdir. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_miss_tosdir | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_miss_tosdir"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_entry_except"
    info :
        desc : "Exclude the same entry address in HHA. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_entry_except | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_entry_except"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_dir_precision"
    info :
        desc : "Configuration of HHA precise directory. 0--disable to allow vague directory recording 1--enable to forbid vague directory recording"
        get : "cat /sys/class/misc/prefetch/reg_dir_precision | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_dir_precision"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_dir_replace_alg"
    info :
        desc : "Directory replacement algorithm configuration. 0--EDIR random+SDIR random 1--EDIR random+SDIR polling 2--EDIR PLRU+SDIR random 3--EDIR PLRU+SDIR polling"
        get : "cat /sys/class/misc/prefetch/reg_dir_replace_alg | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_dir_replace_alg"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 3
        step : 1
        items : 
        dtype : "int"
  -
    name : "strict_order"
    info :
        desc : "Keep the order of HHA operation queue strictly. 0--enable 1--unable"
        get : "cat /sys/class/misc/prefetch/strict_order | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/strict_order"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "prefetch_comb"
    info :
        desc : "Read operation and prefetchtgt merge enable. 0--The read operation can be merged with the fetchtgt operation. 1--The read operation and the fetchtgt merge operation are not allowed."
        get : "cat /sys/class/misc/prefetch/prefetch_comb | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/prefetch_comb"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "evict_green"
    info :
        desc : "Unblocking configuration of the evict in PQ. 0--evict can't be blocked 1--evict can be blocked"
        get : "cat /sys/class/misc/prefetch/evict_green | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/evict_green"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "block_retry"
    info :
        desc : "Whether to perform retry configuration directly when the MPAM hardlim flow bandwidth exceeds the configured one such that enters CMD. 0--retry directly 1--don't retry directly and be scheduled with other flows"
        get : "cat /sys/class/misc/prefetch/block_retry | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/block_retry"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "buffer_prio"
    info :
        desc : "Priority configuration for the ingress queue of the CMD buffer request and PGNT application. 0--CMD buffer priors to pgnt 1--CMD buffer and pgnt have equivalent priority"
        get : "cat /sys/class/misc/prefetch/buffer_prio | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/buffer_prio"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "half_wr_rdddr_delay"
    info :
        desc : "Enables the DDR read delay during 64-byte full write operations after compression. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/half_wr_rdddr_delay | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/half_wr_rdddr_delay"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "wback_cnfl_rdhalf"
    info :
        desc : "DDR size configuration that is reread when the writeback conflict occurs. 0--depend on Writeback address and size 1--size=128B"
        get : "cat /sys/class/misc/prefetch/wback_cnfl_rdhalf | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/wback_cnfl_rdhalf"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_pendprecision"
    info :
        desc : "Enable precise pend. 0--pend is precisely depend on flit 1--pend=1"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_pendprecision | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_pendprecision"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_combrdddr"
    info :
        desc : "Reread DDR after multiple adjacent narrow write operations are merged."
        get : "cat /sys/class/misc/prefetch/reg_funcdis_combrdddr | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_combrdddr"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_scramble"
    info :
        desc : "Ingress queue scrambling. 0--enable 1--disable"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_scramble | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_scramble"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_stashidpg"
    info :
        desc : "Whether to enable the partial good conversion of the Stash TGTID."
        get : "cat /sys/class/misc/prefetch/reg_funcdis_stashidpg | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_stashidpg"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_rdatatime"
    info :
        desc : "HHA receives DMC read data anti-starvation threshold configuration. 0--threshold=8 1--threshold=4"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_rdatatime | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_rdatatime"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_dmcutl"
    info :
        desc : "DMC usage source selection. 0--from DDRC 1--from queue processing utilization ratio inside HHA"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_dmcutl | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_dmcutl"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_cancelexcept"
    info :
        desc : "The pipeline index check excludes requests that are not actually queried (for example, prefetchtgt). 0--enable exclusion 1--disable exclusion"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_cancelexcept | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_cancelexcept"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_ccixcbupdate"
    info :
        desc : "Whether to update the directory in the CCIX copyback of the multi-CA. 0--allow 1--forbid"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_ccixcbupdate | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_ccixcbupdate"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_updateopen"
    info :
        desc : "Block the update dir command in the processing queue based on index. 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/reg_funcdis_updateopen | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_updateopen"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_funcdis_comb"
    info :
        desc : "Whether to merge write operations whose size is less than 128 bytes. 0--enable 1--disable the merge function of the write operation."
        get : "cat /sys/class/misc/prefetch/reg_funcdis_comb | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_funcdis_comb"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "reg_prefetchtgt_outstanding"
    info :
        desc : "Outstanding configuration for the HHA to read data from the DDR prefetch. When the read/write operation sent by the HHA to the DDR exceeds the threshold, the prefetchtgt operation is forbidden to read the DDR data and the operation is directly discarded. This configuration and reg_prefetch_outstanding control the prefetch threshold at the same time. Threshold ranges from 0 to 127."
        get : "cat /sys/class/misc/prefetch/reg_prefetchtgt_outstanding | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_prefetchtgt_outstanding"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 127
        step : 1
        items : 
        dtype : "int"
  -
    name : "reg_prefetchtgt_level"
    info :
        desc : "Threshold for the HHA to read data from the DDR prefetch. When the DDR read/write operations in the HHA processing queue exceed the threshold, the prefetchtgt operation is forbidden to read the DDR data and the operation is directly discarded. This configuration and reg_prefetch_outstanding control the prefetch threshold at the same time. Threshold ranges from 0 to 127."
        get : "cat /sys/class/misc/prefetch/reg_prefetchtgt_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_prefetchtgt_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 127
        step : 1
        items : 
        dtype : "int"
  -
    name : "reg_spec_rd_level"
    info :
        desc : "DDR threshold configuration for speculation read. When the DDR read and write commands in the HHA processing queue exceed the threshold, speculative reading of the DDR is prohibited. After the directory is queried, the system determines whether to read the DDR based on the directory query result. Note: The value 0x08 or 0x10 is recommended. Range from 0 to 127"
        get : "cat /sys/class/misc/prefetch/reg_spec_rd_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_spec_rd_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 127
        step : 1
        items : 
        dtype : "int"
  -
    name : "reg_drop_level"
    info :
        desc : "Prefetch drop threshold configuration. When the number of DDR read and write commands in the HHA processing queue exceeds the threshold, some prefetch read commands can be discarded. Range from 0 to 127."
        get : "cat /sys/class/misc/prefetch/reg_drop_level | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/reg_drop_level"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 127
        step : 1
        items : 
        dtype : "int"
  -
    name : "dvmsnp_outstanding"
    info :
        desc : "Outstanding value of the DVMSNP of the MN. Note 1: If dvmsnp_perf_en is enabled, the configured value is valid. The maximum value of outstanding can be 5 when the TaiShan core is used. Otherwise, overflow errors occur. Note 2: The SMMU cannot match the Dvmsnp outstanding value 5. Therefore, you need to set the switch to 3 for Totem and Infinite of 1383. Totem and Nimbus of 1620: Set DVM outstanding to 5. However, do not configure POE for the DVMSNP broadcast node. The POE uses a private page table and does not require DVMSNP. Range from 0 to 15.(Note: 0 represents that outstanding level is 1)"
        get : "cat /sys/class/misc/prefetch/dvmsnp_outstanding | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/dvmsnp_outstanding"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 15
        step : 1
        items : 
        dtype : "int"
  -
    name : "dvmreq_outstanding"
    info :
        desc : "Outstanding value of the DVMREQ of the MN. Note 1: If dvmreq_perf_en is enabled, the configured value is valid. The maximum value of outstanding can be 9 when there are four chips. Otherwise, an overflow error occurs. Note 2: In the case of two chips, the maximum outstanding value of totem can be 10, and the maximum outstanding value of nimbus or infinite is 24. This ensures the best performance. Note 3: In the case of a single chip, there is no restriction on the outstanding configuration of the totem. Range from 0 to 31.(Note: 0 represents that outstanding level is 1)"
        get : "cat /sys/class/misc/prefetch/dvmreq_outstanding | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/dvmreq_outstanding"
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 31
        step : 1
        items : 
        dtype : "int"
  -
    name : "dvmsnp_perf_en"
    info :
        desc : "Whether to enable the outstanding level for the dvmsnp.(Note: After the function is enabled, the dvmsnp outstanding value of the MN is equal to the value of dvmsnp_outstanding.) 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/dvmsnp_perf_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/dvmsnp_perf_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "dvmreq_perf_en"
    info :
        desc : "Whether to enable the outstanding level for the dvmreq.(Note: After the function is enabled, the dvmreq outstanding value of the MN is equal to the value of dvmreq_outstanding.) 0--disable 1--enable"
        get : "cat /sys/class/misc/prefetch/dvmreq_perf_en | grep -e 'register(1)' | grep -oP ': [0-9]*' | grep -oP '[0-9]*'"
        set : "echo $value > /sys/class/misc/prefetch/dvmreq_perf_en"
        needrestart : "false"
        type : "discrete"
        options :
          - "0"
          - "1"
        dtype : "string"
  -
    name : "nginx.access_log"
    info :
        desc : "Enabling or Disabling nginx access_log"
        get : cat /etc/nginx/nginx.conf | grep "access_log" | awk -F ';' '{print $1}' | awk '{$1="";print}'| awk '$1=$1'
        set : option=$(echo $value); sed -i "s#access_log.*#access_log $option;#g" /etc/nginx/nginx.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "/var/log/nginx/access.log  main"
          - "off"
        dtype : "string"
  -
    name : "nginx.error_log"
    info :
        desc : "Enabling or Disabling nginx error_log"
        get : cat /etc/nginx/nginx.conf | grep "error_log" | awk -F ';' '{print $1}' | awk '{$1="";print}' | awk '$1=$1'
        set : sed -i 's#error_log.*#error_log $value;#g' /etc/nginx/nginx.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "/var/log/nginx/error.log"
          - "/dev/null"
        dtype : "string"
  -
    name : "mariadb.key_buffer_size"
    info :
        desc : "Index parameters of the myisam storage engine"
        get : "cat /etc/my.cnf | grep key_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/key_buffer_size.*/key_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1048576
          - 536870912
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "mariadb.max_allowed_packet"
    info :
        desc : "Maximum number of received packets"
        get : "cat /etc/my.cnf | grep max_allowed_packet | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/max_allowed_packet.*/max_allowed_packet = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1048576
          - 104857600
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "mariadb.table_open_cache"
    info :
        desc : "Table cache for storing data"
        get : "cat /etc/my.cnf | grep table_open_cache | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/table_open_cache.*/table_open_cache = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 16
          - 1000000
        step : 2
        items : 
        dtype : "int"
  -
    name : "mariadb.back_log"
    info :
        desc : "The number of new requests stored in the stack"
        get : "cat /etc/my.cnf | grep back_log | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/back_log.*/back_log = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 16
          - 65536
        dtype : "int"
  -
    name : "mariadb.sort_buffer_size"
    info :
        desc : "Cache used for sorting"
        get : "cat /etc/my.cnf | grep sort_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/sort_buffer_size.*/sort_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 256
          - 104857600
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.read_buffer_size"
    info :
        desc : "the buffer allocated to each thread during sequential table scanning."
        get : "cat /etc/my.cnf | grep read_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/read_buffer_size.*/read_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1024
          - 104857600
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.read_rnd_buffer_size"
    info :
        desc : "the buffer allocated to each thread when the table is read randomly"
        get : "cat /etc/my.cnf | grep read_rnd_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/read_rnd_buffer_size.*/read_rnd_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1024
          - 104857600
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.myisam_sort_buffer_size"
    info :
        desc : "the buffer required for reordering when the MyISAM table changes"
        get : "cat /etc/my.cnf | grep myisam_sort_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/myisam_sort_buffer_size.*/myisam_sort_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1024
          - 104857600
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.thread_cache_size"
    info :
        desc : "Number of threads saved in the cache that are reused"
        get : "cat /etc/my.cnf | grep thread_cache_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/thread_cache_size.*/thread_cache_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 8
          - 1000
        dtype : "int"
  -
    name : "mariadb.max_connections"
    info :
        desc : "the max number of connections"
        get : "cat /etc/my.cnf | grep max_connections | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/max_connections.*/max_connections = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 10
          - 65536
        dtype : "int"
  -
    name : "mariadb.max_heap_table_size"
    info :
        desc : "size of a memory table that can be created"
        get : "cat /etc/my.cnf | grep max_heap_table_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/max_heap_table_size.*/max_heap_table_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1024
          - 104857600
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.innodb_buffer_pool_size"
    info :
        desc : "size of innodb buffer pool"
        get : "cat /etc/my.cnf | grep innodb_buffer_pool_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/innodb_buffer_pool_size.*/innodb_buffer_pool_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1024
          - 1.37E+11
        step : 1024
        items : 
        dtype : "int"
  -
    name : "mariadb.innodb_log_buffer_size"
    info :
        desc : "size of innodb log buffer"
        get : "cat /etc/my.cnf | grep innodb_log_buffer_size | awk -F '=' '{print $2}' | awk '$1=$1'"
        set : "sed -i 's/innodb_log_buffer_size.*/innodb_log_buffer_size = $value/g' /etc/my.cnf"
        needrestart : "true"
        type : "discrete"
        scope :
          - 1048576
          - 104857600
        step : 1048576
        items : 
        dtype : "int"
  -
    name : "redis.tcp-backlog"
    info :
        desc : "tcp backlog"
        get : "cat /etc/redis.conf | grep tcp-backlog | awk '{print $2}'"
        set : "sed -i 's/tcp-backlog.*/tcp-backlog $value/g' /etc/redis.conf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 16
          - 65536
        dtype : "int"
  -
    name : "redis.tcp-keepalive"
    info :
        desc : "closes the connection after holding for a few seconds"
        get : "cat /etc/redis.conf | grep tcp-keepalive | awk '{print $2}'"
        set : "sed -i 's/tcp-keepalive.*/tcp-keepalive $value/g' /etc/redis.conf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 3600
        dtype : "int"
  -
    name : "redis.supervised"
    info :
        desc : "service supervise"
        get : "cat /etc/redis.conf | grep supervised  | awk '{print $2}'"
        set : "sed -i 's/supervised .*/supervised  $value/g' /etc/redis.conf"
        needrestart : "true"
        type : "discrete"
        options :
          - "no"
          - "upstart"
          - "systemd"
          - "auto"
        dtype : "string"
  -
    name : "redis.databases"
    info :
        desc : "number of databases"
        get : "cat /etc/redis.conf | grep databases | awk '{print $2}'"
        set : "sed -i 's/databases.*/databases $value/g' /etc/redis.conf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 100
        dtype : "int"
  -
    name : "redis.rdbcompression"
    info :
        desc : "whether to compress character strings using LZF when backing up .rdb files"
        get : "cat /etc/redis.conf | grep rdbcompression  | awk '{print $2}'"
        set : "sed -i 's/rdbcompression .*/rdbcompression  $value/g' /etc/redis.conf"
        needrestart : "true"
        type : "discrete"
        options :
          - "yes"
          - "no"
        dtype : "string"
  -
    name: "redis.client-timeout"
    info:
      desc: "close idle connections for specific seconds"
      get: grep -P '^timeout' /etc/redis.conf | awk '{print $2}'
      set: sed -i "s/^timeout.*/timeout $value/g" /etc/redis.conf
      needrestart: "true"
      type: "continuous"
      dtype: "int"
      scope:
        - 0
        - 100
      step: 1
      ref: 0
  -
    name: "redis.maxmemory"
    info:
      desc: "sets maximum host's memory limit to be allocated to the Redis."
      get: grep -P '^maxmemory' /etc/redis.conf | awk '{print $2}'
      set: if grep -P '^maxmemory' /etc/redis.conf; then sed  -i "s/^maxmemory.*/maxmemory ${value}gb/g" /etc/redis.conf; else sed -i "/# maxmemory <bytes>/a maxmemory ${value}gb" /etc/redis.conf; fi
      needrestart: "true"
      type: "continuous"
      dtype: "int"
      scope:
        - 0
        - 8
      step: 1
  -
    name: "redis.RDB"
    info:
      desc: "save DB on disk, could be disabled if just for cache."
      get: grep -P '^save' /etc/redis.conf | awk '{print $1 $2}'
      set: if [ "${value}" = "off" ]; then sed -i "s/^save.*/#&/g" /etc/redis.conf; fi
      needrestart: "true"
      type: "discrete"
      dtype: "string"
      options:
        - "on"
        - "off"
  -
    name: "redis.AOF"
    info:
      desc: "logs every write operation received by the server."
      get: grep -P '^appendonly' /etc/redis.conf | awk '{print $2}'
      set: sed -i "s/^appendonly.*/appendonly $value/g" /etc/redis.conf
      needrestart: "true"
      type: "discrete"
      dtype: "string"
      options:
        - "yes"
        - "no"
      ref: "no"
  -
    name: "redis.unixsocket"
    info:
      desc: "use unix domain sockets to communicate.(benefit when client and server running on same box)"
      get: value="not set"; if grep -P '^maxclients' /etc/redis.conf; then value="$(grep -P '^unixsocket' /etc/redis.conf)"; fi ;echo "${value}"
      set: if [ "$value" = "yes" ]; then sed -i "/# unixsocketperm /a unixsocket /tmp/redis.sock" /etc/redis.conf; sed -i "/^unixsocket /a unixsocketperm 700" /etc/redis.conf; fi
      needrestart: "true"
      type: "discrete"
      dtype: "string"
      options:
        - "no"
  -
    name: "redis.loglevel"
    info:
      desc: "Redis loglevel, most detailed and thus more expensive for host's resources."
      get: grep 'loglevel' /etc/redis.conf | awk '{print $2}'
      set: sed -i "s/^loglevel.*/loglevel $value/g" /etc/redis.conf
      needrestart: "true"
      type: "discrete"
      dtype: "string"
      options:
        - "debug"
        - "verbose"
        - "notice"
        - "warning"
  -
    name : "mysql.innodb_io_capacity"
    info :
        desc : "Defines the number of I/O operations per second (IOPS) available to InnoDB background tasks."
        get : "cat /etc/my.cnf | grep 'innodb_io_capacity' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_io_capacity.*$/innodb_io_capacity=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 100
          - 10000
        dtype : "int"
  -
    name : "mysql.innodb_write_io_threads"
    info :
        desc : "The number of I/O threads for write operations in InnoDB."
        get : "cat /etc/my.cnf | grep 'innodb_write_io_threads' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_write_io_threads.*$/innodb_write_io_threads=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 2
          - 200
        dtype : "int"
  -
    name : "mysql.innodb_read_io_threads"
    info :
        desc : "The number of I/O threads for read operations in InnoDB."
        get : "cat /etc/my.cnf | grep 'innodb_read_io_threads' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_read_io_threads.*$/innodb_read_io_threads=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 2
          - 30
        dtype : "int"
  -
    name : "mysql.innodb_spin_wait_delay"
    info :
        desc : "The maximum delay between polls for a spin lock."
        get : "cat /etc/my.cnf | grep 'innodb_spin_wait_delay' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_spin_wait_delay.*$/innodb_spin_wait_delay=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 2
          - 30
        dtype : "int"
  -
    name : "mysql.innodb_sync_spin_loops"
    info :
        desc : "The number of times a thread waits for an InnoDB mutex to be freed before the thread is suspended."
        get : "cat /etc/my.cnf | grep 'innodb_sync_spin_loops' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_sync_spin_loops.*$/innodb_sync_spin_loops=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 10
          - 500
        dtype : "int"
  -
    name : "mysql.innodb_log_file_size"
    info :
        desc : "The size in bytes of each log file in a log group."
        get : "cat /etc/my.cnf | grep 'innodb_log_file_size' | awk -F '=' '{print $2}' | awk -F 'M' '{print $1}'"
        set : "sed -i 's/^innodb_log_file_size.*$/innodb_log_file_size=$valueM/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 10
          - 1024
        dtype : "int"
  -
    name : "mysql.innodb_log_files_in_group"
    info :
        desc : "The number of log files in the log group."
        get : "cat /etc/my.cnf | grep 'innodb_log_files_in_group' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_log_files_in_group.*$/innodb_log_files_in_group=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "mysql.innodb_buffer_pool_instances"
    info :
        desc : "The number of regions that the InnoDB buffer pool is divided into."
        get : "cat /etc/my.cnf | grep 'innodb_buffer_pool_instances' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_buffer_pool_instances.*$/innodb_buffer_pool_instances=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "mysql.innodb_log_buffer_size"
    info :
        desc : "The size in bytes of the buffer that InnoDB uses to write to the log files on disk."
        get : "cat /etc/my.cnf | grep 'innodb_log_buffer_size' | awk -F '=' '{print $2}' | awk -F 'M' '{print $1}'"
        set : "sed -i 's/^innodb_log_buffer_size.*$/innodb_log_buffer_size=$valueM/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 8
          - 1024
        dtype : "int"
  -
    name : "mysql.innodb_page_cleaners"
    info :
        desc : "The number of page cleaner threads that flush dirty pages from buffer pool instances."
        get : "cat /etc/my.cnf | grep 'innodb_page_cleaners' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_page_cleaners.*$/innodb_page_cleaners=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "mysql.innodb_lru_scan_depth"
    info :
        desc : "A parameter that influences the algorithms and heuristics for the flush operation for the InnoDB buffer pool."
        get : "cat /etc/my.cnf | grep 'innodb_lru_scan_depth' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_lru_scan_depth.*$/innodb_lru_scan_depth=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 20
          - 2000
        dtype : "int"
  -
    name : "mysql.innodb_thread_concurrency"
    info :
        desc : "Defines the maximum number of threads permitted inside of InnoDB."
        get : "cat /etc/my.cnf | grep 'innodb_thread_concurrency' | awk -F '=' '{print $2}'"
        set : "sed -i 's/^innodb_thread_concurrency.*$/innodb_thread_concurrency=$value/g' /etc/my.cnf"
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 300
        dtype : "int"
  -
    name : "etcd.snapshot-count"
    info :
        desc : "Number of committed transactions to trigger a snapshot to disk."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_SNAPSHOT_COUNT' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_SNAPSHOT_COUNT.*$/ETCD_SNAPSHOT_COUNT="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 10000
          - 300000
        step : 10000
        dtype : "int"
  -
    name : "etcd.heartbeat-interval"
    info :
        desc : "Time (in milliseconds) of a heartbeat interval."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_HEARTBEAT_INTERVAL' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_HEARTBEAT_INTERVAL.*$/ETCD_HEARTBEAT_INTERVAL="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 50
          - 500
        step : 50
        dtype : "int"
  -
    name : "etcd.election-timeout"
    info :
        desc : "Time (in milliseconds) for an election to timeout."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_ELECTION_TIMEOUT' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_ELECTION_TIMEOUT.*$/ETCD_ELECTION_TIMEOUT="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 500
          - 3000
        step : 100
        dtype : "int"
  -
    name : "etcd.max-snapshots"
    info :
        desc : "Maximum number of snapshot files to retain (0 is unlimited)."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_MAX_SNAPSHOTS' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_MAX_SNAPSHOTS.*$/ETCD_MAX_SNAPSHOTS="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 30
        dtype : "int"
  -
    name : "etcd.max-wals"
    info :
        desc : "Maximum number of wal files to retain (0 is unlimited)."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_MAX_WALS' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_MAX_WALS.*$/ETCD_MAX_WALS="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 30
        dtype : "int"
  -
    name : "etcd.log-levels"
    info :
        desc : "Configures log level. Only supports debug, info, warn, error, panic, or fatal."
        get : cat /etc/etcd/etcd.conf | grep 'ETCD_LOG_LEVEL' | awk -F '"' '{print $2}'
        set : sed -i 's/^ETCD_LOG_LEVEL.*$/ETCD_LOG_LEVEL="$value"/g' /etc/etcd/etcd.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "debug"
          - "info"
          - "warn"
          - "error"
          - "panic"
          - "fatal"
        dtype : "string"
  -
    name : "kafka.num_network_threads"
    info :
        desc : "The number of threads that the server uses for reciving requests from the network and sending responses to the network."
        get : cat /opt/kafka/config/server.properties | grep 'num.network.threads' | awk -F '=' '{print $2}'
        set : sed -i 's/^num.network.threads.*$/num.network.threads=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "kafka.num_io_threads"
    info :
        desc : "The number of threads that the server uses for processing requests, which may include disk I/O."
        get : cat /opt/kafka/config/server.properties | grep 'num.io.threads' | awk -F '=' '{print $2}'
        set : sed -i 's/^num.io.threads.*$/num.io.threads=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "kafka.socket_send_buffer_bytes"
    info :
        desc : "The send buffer (SO_SNDBUF) used by the socket server."
        get : cat /opt/kafka/config/server.properties | grep 'socket.send.buffer.bytes' | awk -F '=' '{print $2}'
        set : sed -i 's/^socket.send.buffer.bytes.*$/socket.send.buffer.bytes=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 10240
          - 1024000
        step : 10240
        dtype : "int"
  -
    name : "kafka.socket_receive_buffer_bytes"
    info :
        desc : "The receive buffer (SO_RCVBUF) used by the socket server."
        get : cat /opt/kafka/config/server.properties | grep 'socket.receive.buffer.bytes' | awk -F '=' '{print $2}'
        set : sed -i 's/^socket.receive.buffer.bytes.*$/socket.receive.buffer.bytes=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 10240
          - 1024000
        step : 10240
        dtype : "int"
  -
    name : "kafka.socket_request_max_bytes"
    info :
        desc : "The maximum size of a request that the socket server will accept (protection against OOM)."
        get : cat /opt/kafka/config/server.properties | grep 'socket.request.max.bytes' | awk -F '=' '{print $2}'
        set : sed -i 's/^socket.request.max.bytes.*$/socket.request.max.bytes=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 1048576
          - 1048576000
        step : 1048576
        dtype : "int"
  -
    name : "kafka.log_flush_interval_messages"
    info :
        desc : "The number of messages to accept before forcing a flush of data to disk."
        get : cat /opt/kafka/config/server.properties | grep 'log.flush.interval.messages' | awk -F '=' '{print $2}'
        set : sed -i 's/^log.flush.interval.messages.*$/log.flush.interval.messages=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 5000
          - 50000
        step : 1000
        dtype : "int"
  -
    name : "kafka.log_flush_interval_ms"
    info :
        desc : "The maximum amount of time a message can sit in a log before we force a flush."
        get : cat /opt/kafka/config/server.properties | grep 'log.flush.interval.ms' | awk -F '=' '{print $2}'
        set : sed -i 's/^log.flush.interval.ms.*$/log.flush.interval.ms=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 500
          - 5000
        step : 100
        dtype : "int"
  -
    name : "kafka.log_segment_bytes"
    info :
        desc : "The maximum size of a log segment file. When this size is reached a new log segment will be created."
        get : cat /opt/kafka/config/server.properties | grep 'log.segment.bytes' | awk -F '=' '{print $2}'
        set : sed -i 's/^log.segment.bytes.*$/log.segment.bytes=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 104857600
          - 5368709120
        step : 104857600
        dtype : "int"
  -
    name : "kafka.zookeeper_connection_timeout_ms"
    info :
        desc : "Timeout in ms for connecting to zookeeper."
        get : cat /opt/kafka/config/server.properties | grep 'zookeeper.connection.timeout.ms' | awk -F '=' '{print $2}'
        set : sed -i 's/^zookeeper.connection.timeout.ms.*$/zookeeper.connection.timeout.ms=$value/g' /opt/kafka/config/server.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 500
          - 50000
        step : 100
        dtype : "int"
  -
    name : "zookeeper.autopurge_purgeInterval"
    info :
        desc : "Purge task interval in hours. Set to 0 to disable auto purge feature."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'autopurge.purgeInterval' | awk -F '=' '{print$2}'
        set : sed -i "s/autopurge.purgeInterval.*/autopurge.purgeInterval=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "continuous"
        scope :
          - 0
          - 5
        dtype : "int"
  -
    name : "zookeeper.autopurge_snapRetainCount"
    info :
        desc : "The number of snapshots to retain in dataDir."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'autopurge.snapRetainCount' | awk -F '=' '{print$2}'
        set : sed -i "s/autopurge.snapRetainCount.*/autopurge.snapRetainCount=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "zookeeper.tickTime"
    info :
        desc : "The number of milliseconds of each tick."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'tickTime' | awk -F '=' '{print$2}'
        set : sed -i "s/tickTime.*/tickTime=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "discrete"
        scope :
          - 500
          - 10000
        step : 500
        dtype : "int"
  -
    name : "zookeeper.initLimit"
    info :
        desc : "The number of ticks that the initial synchronization phase can take."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'initLimit' | awk -F '=' '{print$2}'
        set : sed -i "s/initLimit.*/initLimit=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "continuous"
        scope :
          - 5
          - 50
        dtype : "int"
  -
    name : "zookeeper.syncLimit"
    info :
        desc : "The number of ticks that can pass between sending a request and getting an acknowledgement."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'syncLimit' | awk -F '=' '{print$2}'
        set : sed -i "s/syncLimit.*/syncLimit=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 50
        dtype : "int"
  -
    name : "zookeeper.maxClientCnxns"
    info :
        desc : "The maximum number of client connections.."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'maxClientCnxns' | awk -F '=' '{print$2}'
        set : sed -i "s/maxClientCnxns.*/maxClientCnxns=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "discrete"
        scope :
          - 5
          - 5000
        step : 5
        dtype : "int"
  -
    name : "zookeeper.maxSessionTimeout"
    info :
        desc : "The maximum number of session timeout."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'maxSessionTimeout' | awk -F '=' '{print$2}'
        set : sed -i "s/maxSessionTimeout.*/maxSessionTimeout=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "discrete"
        scope :
          - 100000
          - 100000000
        step : 100000
        dtype : "int"
  -
    name : "zookeeper.preAllocSize"
    info :
        desc : "Pre-provisioned disk space for subsequent writes to the transaction log."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'preAllocSize' | awk -F '=' '{print$2}'
        set : sed -i "s/preAllocSize.*/preAllocSize=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "discrete"
        scope :
          - 65536
          - 5242880
        step : 65536
        dtype : "int"
  -
    name : "zookeeper.snapCount"
    info :
        desc : "Trigger a snapshot after every snapCount transaction log output."
        get : cat /opt/zookeeper/conf/zoo.cfg | grep 'snapCount' | awk -F '=' '{print$2}'
        set : sed -i "s/snapCount.*/snapCount=$value/" /opt/zookeeper/conf/zoo.cfg
        needrestart : "false"
        type : "discrete"
        scope :
          - 10000
          - 10000000
        step : 10000
        dtype : "int"
  -
    name : "sqlite.synchronous"
    info :
        desc : "Query or change the setting of the 'synchronous' flag."
        get : cat /root/.sqliterc | grep "synchronous" | awk -F "=" '{print$2}'
        set : sed -i "s/synchronous.*/synchronous=$value/" /root/.sqliterc
        needrestart : "false"
        type : "discrete"
        options :
          - "OFF"
          - "NORMAL"
          - "FULL"
          - "EXTRA"
        dtype : "string"
  -
    name : "sqlite.journal_mode"
    info :
        desc : "Queries or sets the journal mode for databases associated with the current database connection."
        get : cat /root/.sqliterc | grep "journal_mode" | awk -F "=" '{print$2}'
        set : sed -i "s/journal_mode.*/journal_mode=$value/" /root/.sqliterc
        needrestart : "false"
        type : "discrete"
        options :
          - "DELETE"
          - "TRUNCATE"
          - "PERSIST"
          - "MEMORY"
          - "WAL"
          - "OFF"
        dtype : "string"
  -
    name : "sqlite.cache_size"
    info :
        desc : "Query or change the suggested maximum number of database disk pages that SQLite will hold in memory at once per open database file."
        get : cat /root/.sqliterc | grep "temp_store" | awk -F "=" '{print$2}'
        set : sed -i "s/temp_store.*/temp_store=$value/" /root/.sqliterc
        needrestart : "false"
        type : "continuous"
        scope :
          - 10
          - 200
        dtype : "int"
  -
    name : "sqlite.temp_store"
    info :
        desc : "Query or change the setting of the 'temp_store' parameter."
        get : cat /root/.sqliterc | grep "temp_store" | awk -F "=" '{print$2}'
        set : sed -i "s/temp_store.*/temp_store=$value/" /root/.sqliterc
        needrestart : "false"
        type : "discrete"
        options :
          - "DEFAULT"
          - "FILE"
          - "MEMORY"
        dtype : "string"
  -
    name : "sqlite.case_sensitive_like"
    info :
        desc : "This pragma uses sqlite3_create_function() to overload the LIKE and GLOB functions, which may override previous implementations of LIKE and GLOB registered by the application."
        get : cat /root/.sqliterc | grep "journal_mode" | awk -F "=" '{print$2}'
        set : sed -i "s/journal_mode.*/journal_mode=$value/" /root/.sqliterc
        needrestart : "false"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "karaf.defaultServiceLog_level"
    info :
        desc : "Log level when the pax-logging service is not available."
        get : cat $KARAF_HOME/etc/system.properties | grep "org.ops4j.pax.logging.DefaultServiceLog.level" | awk -F "=" '{print$2}'
        set : sed -i "s/org.ops4j.pax.logging.DefaultServiceLog.level.*/org.ops4j.pax.logging.DefaultServiceLog.level=$value/" $KARAF_HOME/etc/system.properties
        needrestart : "true"
        type : "discrete"
        options :
          - "FATAL"
          - "ERROR"
          - "WARN"
          - "INFO"
          - "DEBUG"
          - "TRACE"
        dtype : "string"
  -
    name : "karaf.shell_histroy_maxSize"
    info :
        desc : "Sets the maximum size of the shell command history."
        get : cat $KARAF_HOME/etc/system.properties | grep "karaf.shell.history.maxSize" | awk -F "=" '{print$2}'
        set : sed -i "s/karaf.shell.history.maxSize.*/karaf.shell.history.maxSize=$value/" $KARAF_HOME/etc/system.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 0
          - 1000
        step : 50
        dtype : "int"
  -
    name : "karaf.shell_histroy_file_maxSize"
    info :
        desc : "Sets the maximum size of the local shell command history file."
        get : cat $KARAF_HOME/etc/system.properties | grep "karaf.shell.history.file.maxSize" | awk -F "=" '{print$2}'
        set : sed -i "s/karaf.shell.history.file.maxSize.*/karaf.shell.history.file.maxSize=$value/" $KARAF_HOME/etc/system.properties
        needrestart : "true"
        type : "discrete"
        scope :
          - 1000
          - 100000
        step : 1000
        dtype : "int"
  -
    name : "karaf.cleanAll"
    info :
        desc : "Deletes the entire karaf.data directory at every start."
        get : cat $KARAF_HOME/etc/system.properties | grep "karaf.clean.all" | awk -F "=" '{print$2}'
        set : sed -i "s/karaf.clean.all.*/karaf.clean.all=$value/" $KARAF_HOME/etc/system.properties
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "karaf.cleanCache"
    info :
        desc : "Deletes the karaf.data/cache directory at every start."
        get : cat $KARAF_HOME/etc/system.properties | grep "karaf.clean.cache" | awk -F "=" '{print$2}'
        set : sed -i "s/karaf.clean.cache.*/karaf.clean.cache=$value/" $KARAF_HOME/etc/system.properties
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "lighttpd.server_network_backend"
    info :
        desc : "The basic network interface for all platforms at the syscalls read() and write()."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.network-backend' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.network-backend.*$/server.network-backend="$value"/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "sendfile"
          - "writev"
        dtype : "string"
  -
    name : "lighttpd.server_max_fds"
    info :
        desc : "The max fds value for lighttpd."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.max-fds' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.max-fds.*$/server.max-fds=$value/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 510
          - 5120
        step : 512
        dtype : "int"
  -
    name : "lighttpd.server_listen_backlog"
    info :
        desc : "Listen-backlog is the size of the listen() backlog queue requested when the lighttpd server ask the kernel to listen() on the provided network address."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.listen-backlog' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.listen-backlog.*$/server.listen-backlog=$value/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 128
          - 2048
        step : 128
        dtype : "int"
  -
    name : "lighttpd.server_stat_cache_engine"
    info :
        desc : "Stat() call caching."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.stat-cache-engine' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.stat-cache-engine.*$/server.stat-cache-engine="$value"/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "disable"
          - "simple"
          - "fam"
        dtype : "string"
  -
    name : "lighttpd.server_max_keep_alive_idle"
    info :
        desc : "How many seconds to keep a keep-alive connection open, until we consider it idle."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.max-keep-alive-idle' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.max-keep-alive-idle.*$/server.max-keep-alive-idle=$value/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "lighttpd.server_max_read_idle"
    info :
        desc : "Time to read from a socket before we consider it idle."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.max-read-idle' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.max-read-idle.*$/server.max-read-idle=$value/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 100
        dtype : "int"
  -
    name : "lighttpd.server_max_write_idle"
    info :
        desc : "Time to write from a socket before we consider it idle."
        get : cat /etc/lighttpd/lighttpd.conf | grep 'server.max-write-idle' | awk -F '"' '{print $2}'
        set : sed -i 's/^server.max-write-idle.*$/server.max-write-idle=$value/g' /etc/lighttpd/lighttpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 100
        dtype : "int"
  -
    name : "storm.topology_workerSharedThreadPoolSize"
    info :
        desc : "Size of the shared thread pool used by Workers."
        get : cat /etc/storm/storm.config | grep "topology.worker.shared.thread.pool.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^topology.worker.shared.thread.pool.size.*$/topology.worker.shared.thread.pool.size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.messagingNettySocketBacklog"
    info :
        desc : "Sets the TCP backlog parameter to specify the maximum number of connections in the socket queue."
        get : cat /etc/storm/storm.config | grep "storm.messaging.netty.socket.backlog" | awk -F "=" '{print $2}'
        set : sed -i 's/^storm.messaging.netty.socket.backlog.*$/storm.messaging.netty.socket.backlog=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.topology_transferBufferSize"
    info :
        desc : "Size of the shared thread pool used by Workers."
        get : cat /etc/storm/storm.config | grep "topology.transfer.buffer.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^topology.transfer.buffer.size.*$/topology.transfer.buffer.size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.messagingNettyBufferSize"
    info :
        desc : "Size of the transmit/receive buffer in bytes."
        get : cat /etc/storm/storm.config | grep "storm.messaging.netty.buffer_size" | awk -F "=" '{print $2}'
        set : sed -i 's/^storm.messaging.netty.buffer_size.*$/storm.messaging.netty.buffer_size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.topology_disruptorBatchSize"
    info :
        desc : "Number of messages sent in a batch in the internal message queue."
        get : cat /etc/storm/storm.config | grep "topology.disruptor.batch.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^topology.disruptor.batch.size.*$/topology.disruptor.batch.size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.messagingNettyTransferBatchSize"
    info :
        desc : "If the Netty message layer is busy, the Netty client attempts to collect as many messages as possible, up to the specified size in bytes."
        get : cat /etc/storm/storm.config | grep "storm.messaging.netty.transfer.batch.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^storm.messaging.netty.transfer.batch.size.*$/storm.messaging.netty.transfer.batch.size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 2147483647
        dtype : "int"
  -
    name : "storm.topology_fallBackOnJavaSerialization"
    info :
        desc : "Whether to use Java serialization in the topology."
        get : cat /etc/storm/storm.config | grep "topology.disruptor.batch.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^topology.disruptor.batch.size.*$/topology.disruptor.batch.size=$value/g' /etc/storm/storm.config
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "prometheus.web_maxConnections"
    info :
        desc : "Maximum number of simultaneous connections."
        get : cat /etc/default/prometheus | grep "web.max-connections" | awk -F "=" '{print $2}'
        set : sed -i "s/web.max-connections.*/web.max-connections=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 1024
        dtype : "int"
  -
    name : "prometheus.storage_remote_flushDeadline"
    info :
        desc : "How long to wait flushing sample on shutdown or config reload."
        get : cat /etc/default/prometheus | grep "storage.remote.flush-deadline" | awk -F "=" '{print $2}'
        set : sed -i "s/storage.remote.flush-deadline.*/storage.remote.flush-deadline=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 1024
        dtype : "int"
  -
    name : "prometheus.storage_remote_readConcurrentLimit"
    info :
        desc : "Maximum number of concurrent remote read calls. 0 means no limit."
        get : cat /etc/default/prometheus | grep "storage.remote.read-concurrent-limit" | awk -F "=" '{print $2}'
        set : sed -i "s/storage.remote.read-concurrent-limit.*/storage.remote.read-concurrent-limit=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "continuous"
        scope :
          - 0
          - 100
        dtype : "int"
  -
    name : "prometheus.query_timeout"
    info :
        desc : "Maximum time a query may take before being aborted."
        get : cat /etc/default/prometheus | grep "query.timeout" | awk -F "=" '{print $2}'
        set : sed -i "s/query.timeout.*/query.timeout=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "discrete"
        options :
          - "10s"
          - "30s"
          - "1m"
          - "2m"
          - "5m"
        dtype : "string"
  -
    name : "prometheus.query_maxSamples"
    info :
        desc : "Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than this into memory, so this also limits the number of samples a query can return."
        get : cat /etc/default/prometheus | grep "query.max-samples" | awk -F "=" '{print $2}'
        set : sed -i "s/query.max-samples.*/query.max-samples=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "discrete"
        scope :
          - 100000
          - 100000000
        step : 100000
        dtype : "int"
  -
    name : "prometheus.log_level"
    info :
        desc : "Only log messages with the given severity or above."
        get : cat /etc/default/prometheus | grep "log.level" | awk -F "=" '{print $2}'
        set : sed -i "s/log.level.*/log.level=$value/" /etc/default/prometheus
        needrestart : "false"
        type : "discrete"
        options :
          - "debug"
          - "info"
          - "warn"
          - "error"
        dtype : "string"
  -
    name : "cassandra.num_tokens"
    info :
        desc : "The more tokens, relative to other nodes, the larger the proportion of data that this node will store."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "num_tokens" | awk -F ":" '{print $2}'
        set : sed -i "s/num_tokens.*/num_tokens:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 1024
        dtype : "int"
  -
    name : "cassandra.hinted_handoff_enabled"
    info :
        desc : "Hinted handoff is a Cassandra feature that optimizes the cluster consistency process and anti-entropy when a replica-owning node is not available, due to network issues or other problems, to accept a replica from a successful write operation."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "hinted_handoff_enabled" | awk -F ":" '{print $2}'
        set : sed -i "s/hinted_handoff_enabled.*/hinted_handoff_enabled:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "cassandra.max_hint_window_in_ms"
    info :
        desc : "Defines the maximum amount of time a dead host will have hints generated."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "max_hint_window_in_ms" | awk -F ":" '{print $2}'
        set : sed -i "s/max_hint_window_in_ms.*/max_hint_window_in_ms:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "discrete"
        scope :
          - 100000
          - 108000000
        step : 100000
        dtype : "int"
  -
    name : "cassandra.hinted_handoff_throttle_in_kb"
    info :
        desc : "Maximum throttle in KBs per second, per delivery thread."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "hinted_handoff_throttle_in_kb" | awk -F ":" '{print $2}'
        set : sed -i "s/hinted_handoff_throttle_in_kb.*/hinted_handoff_throttle_in_kb:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "discrete"
        scope :
          - 128
          - 102400
        step : 128
        dtype : "int"
  -
    name : "cassandra.max_hints_delivery_threads"
    info :
        desc : "Number of threads with which to deliver hints."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "max_hints_delivery_threads" | awk -F ":" '{print $2}'
        set : sed -i "s/max_hints_delivery_threads.*/max_hints_delivery_threads:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "cassandra.credentials_validity_in_ms"
    info :
        desc : "Validity period for credentials cache."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "credentials_validity_in_ms" | awk -F ":" '{print $2}'
        set : sed -i "s/credentials_validity_in_ms.*/credentials_validity_in_ms:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 10000
        step : 100
        dtype : "int"
  -
    name : "cassandra.key_cache_save_period"
    info :
        desc : "Duration in seconds after which Cassandra should save the key cach."
        get : cat $CASSANDRA_HOME/conf/cassandra.yaml | grep "key_cache_save_period" | awk -F ":" '{print $2}'
        set : sed -i "s/key_cache_save_period.*/key_cache_save_period:$value/" $CASSANDRA_HOME/conf/cassandra.yaml
        needrestart : "false"
        type : "discrete"
        scope :
          - 0
          - 86400
        step : 600
        dtype : "int"
  -
    name : "glusterfs.nfs_disabled"
    info :
        desc : "Specifies whether to disable NFS exports of individual volumes."
        get : "gluster volumn info $VOL_NAME | grep 'nfs.disabled' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME nfs.disabled $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "off"
          - "on"
        dtype : "string"
  -
    name : "glusterfs.changelog"
    info :
        desc : "Enables the changelog translator to record all the file operations."
        get : "gluster volumn info $VOL_NAME | grep 'changelog' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME changelog $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "off"
          - "on"
        dtype : "string"
  -
    name : "glusterfs.client_eventThreads"
    info :
        desc : "Specifies the number of network connections to be handled simultaneously by the client processes accessing a Red Hat Gluster Storage node."
        get : "gluster volumn info $VOL_NAME | grep 'client.event-threads' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME client.event-threads $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "off"
          - "on"
        dtype : "string"
  -
    name : "glusterfs.cluster_granularEntryHeal"
    info :
        desc : "If set to enable, stores more granular information about the entries which were created or deleted from a directory while a brick in a replica was down."
        get : "gluster volumn info $VOL_NAME | grep 'cluster.granular-entry-heal' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME cluster.granular-entry-heal $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "enable"
          - "disable"
        dtype : "string"
  -
    name : "glusterfs.cluster_readFreqThreshold"
    info :
        desc : "If set to enable, stores more granular information about the entries which were created or deleted from a directory while a brick in a replica was down."
        get : "gluster volumn info $VOL_NAME | grep 'cluster.read-freq-threshold' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME cluster.read-freq-threshold $value"
        needrestart : "false"
        type : "continuous"
        scope :
          - 0
          - 20
        dtype : "int"
  -
    name : "glusterfs.cluster_dataSelfHeal"
    info :
        desc : "Specifies whether proactive data self-healing on replicated volumes is activated."
        get : "gluster volumn info $VOL_NAME | grep 'cluster.data-self-heal' | awk -F ':' '{print $2}'"
        set : "gluster volumn set $VOL_NAME cluster.data-self-heal $value"
        needrestart : "false"
        type : "discrete"
        options :
          - "off"
          - "on"
        dtype : "string"
  -
    name : "puppet.autoflush"
    info :
        desc : "Whether to refresh logs to disks in real time."
        get : cat /etc/puppetlabs/puppet/puppet.conf | grep "autoflush" | awk -F "=" '{print $2}'
        set : sed -i 's/^autoflush.*$/autoflush=$value/g' /etc/puppetlabs/puppet/puppet.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "puppet.autosign"
    info :
        desc : "Whether to auto-authorize signature profile."
        get : cat /etc/puppetlabs/puppet/puppet.conf | grep "autosign" | awk -F "=" '{print $2}'
        set : sed -i 's/^autosign.*$/autosign=$value/g' /etc/puppetlabs/puppet/puppet.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "puppet.runinterval"
    info :
        desc : "Client execution interval. The default value is 30m."
        get : cat /etc/storm/storm.config | grep "runinterval" | awk -F "=" '{print $2}'
        set : sed -i 's/^runinterval.*$/runinterval=$valuem/g' /etc/storm/storm.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 60
        dtype : "int"
  -
    name : "puppet.ignorecache"
    info :
        desc : "Whether to ignore local cache."
        get : cat /etc/puppetlabs/puppet/puppet.conf | grep "ignorecache" | awk -F "=" '{print $2}'
        set : sed -i 's/^ignorecache.*$/ignorecache=$value/g' /etc/puppetlabs/puppet/puppet.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "httpd.StartServers"
    info :
        desc : "Number of started subprocesses."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "StartServers" | awk -F " " '{print $2}'
        set : sed -i 's/^StartServers.*$/StartServers $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "httpd.MinSpareThreads"
    info :
        desc : "Minimum number of worker threads reserved for spare."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "MinSpareThreads" | awk -F " " '{print $2}'
        set : sed -i 's/^MinSpareThreads.*$/MinSpareThreads $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "httpd.MaxSpareThreads"
    info :
        desc : "Maximum number of worker threads reserved for spare."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "MaxSpareThreads" | awk -F " " '{print $2}'
        set : sed -i 's/^MaxSpareThreads.*$/MaxSpareThreads $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "httpd.ThreadsPerChild"
    info :
        desc : "Number of worker threads for the server process."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "ThreadsPerChild" | awk -F " " '{print $2}'
        set : sed -i 's/^ThreadsPerChild.*$/ThreadsPerChild $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "httpd.MaxRequestWorkers"
    info :
        desc : "Maximum number of worker threads on the server."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "MaxRequestWorkers" | awk -F " " '{print $2}'
        set : sed -i 's/^MaxRequestWorkers.*$/MaxRequestWorkers $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "httpd.MaxConnectionsPerChild"
    info :
        desc : "Maximum number of process connections on the server. The value 0 indicates that the number is not limited."
        get : cat /etc/httpd/conf.modules.d/01-cgi.conf | grep "MaxConnectionsPerChild" | awk -F " " '{print $2}'
        set : sed -i 's/^MaxConnectionsPerChild.*$/MaxConnectionsPerChild $valuem/g' /etc/httpd/conf.modules.d/01-cgi.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 128
        dtype : "int"
  -
    name : "ansible.forks"
    info :
        desc : "Number of concurrent ansible executions."
        get : cat /etc/ansible/ansible.cfg | grep 'forks' | awk -F '=' '{print $2}'
        set : sed -i 's/^forks.*$/forks=$value/g' /etc/ansible/ansible.cfg
        needrestart : "false"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "ansible.gathering"
    info :
        desc : "Plays will gather facts by default, which contain information about the remote system."
        get : cat /etc/ansible/ansible.cfg | grep "gathering.*=" | awk -F "=" '{print $2}'
        set : sed -i 's/^gathering.*$/gathering=$value/g' /etc/ansible/ansible.cfg
        needrestart : "false"
        type : "discrete"
        options :
          - "smart"
          - "implicit"
          - "explicit"
        dtype : "string"
  -
    name : "ansible.hash_behaviour"
    info :
        desc : "Set behaviour when inventory variables overlap."
        get : cat /etc/ansible/ansible.cfg | grep "hash_behaviour" | awk -F "=" '{print $2}'
        set : sed -i 's/^hash_behaviour.*$/hash_behaviour=$value/g' /etc/ansible/ansible.cfg
        needrestart : "false"
        type : "discrete"
        options :
          - "replace"
          - "merge"
        dtype : "string"
  -
    name : "ansible.log_path"
    info :
        desc : "Path of log file."
        get : cat /etc/ansible/ansible.cfg | grep "log_path" | awk -F "=" '{print $2}'
        set : sed -i 's/^log_path.*$/log_path=$value/g' /etc/ansible/ansible.cfg
        needrestart : "false"
        type : "discrete"
        options :
          - "/dev/null"
          - "/var/log/ansible.log"
        dtype : "string"
  -
    name : "infinispan.shutdown_hookBehavior"
    info :
        desc : "Behavior when JVM shutdown JVM."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "shutdown" | grep "hookBehavior" | awk -F 'hookBehavior' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/hookBehavior="[^\"]*"/hookBehavior="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "DEFAULT"
          - "REGISTER"
          - "DONT_REGISTER"
        dtype : "string"
  -
    name : "infinispan.locking_useLockStriping"
    info :
        desc : "If set to true, a shared lock is placed on each entry."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "locking" -A3 | grep "useLockStriping" | awk -F 'useLockStriping' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/useLockStriping="[^\"]*"/useLockStriping="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "infinispan.locking_isolationLevel"
    info :
        desc : "Level of isolation."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "locking" -A3 | grep "isolationLevel" | awk -F 'isolationLevel' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/isolationLevel="[^\"]*"/isolationLevel="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "NONE"
          - "SERIALIZABLE"
          - "REPEATABLE_READ"
          - "READ_COMMITTED"
          - "READ_UNCOMMITTED"
        dtype : "string"
  -
    name : "infinispan.locking_concurrencyLevel"
    info :
        desc : "Level of concurrency."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "locking" -A3 | grep "concurrencyLevel" | awk -F 'concurrencyLevel' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/concurrencyLevel="[^\"]*"/concurrencyLevel="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "infinispan.jmxStatistics"
    info :
        desc : "JMX statistics."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "jmxStatistics" | awk -F 'enabled' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/jmxStatistics enabled="[^\"]*"/jmxStatistics enabled="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "infinispan.invocationBatching"
    info :
        desc : "Invocation batching."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "invocationBatching" | awk -F 'enabled' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/invocationBatching enabled="[^\"]*"/invocationBatching enabled="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "infinispan.lazyDeserialization"
    info :
        desc : "lazy deserialization."
        get : cat $INFINISPAN_HOME/server/conf/infinispan.xml | grep "lazyDeserialization" | awk -F 'enabled' '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/lazyDeserialization enabled="[^\"]*"/lazyDeserialization enabled="$value"/g' $INFINISPAN_HOME/server/conf/infinispan.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "neo4j.logs_httpRotationKeepNumber"
    info :
        desc : "Number of HTTP logs to keep."
        get : cat $NEO4J_HOME/conf/neo4j.conf | grep 'dbms.logs.http.rotation.keep_number' | awk -F '=' '{print $2}'
        set : sed -i 's/^dbms.logs.http.rotation.keep_number.*$/dbms.logs.http.rotation.keep_number=$value/g' $NEO4J_HOME/conf/neo4j.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "neo4j.logs_debugLevel"
    info :
        desc : "Log level for the debug log."
        get : cat $NEO4J_HOME/conf/neo4j.conf | grep "dbms.logs.debug.level" | awk -F "=" '{print $2}'
        set : sed -i 's/^dbms.logs.debug.level.*$/dbms.logs.debug.level=$value/g' $NEO4J_HOME/conf/neo4j.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "DEBUG"
          - "INFO"
          - "WARN"
          - "ERROR"
        dtype : "string"
  -
    name : "neo4j.memory_heapMaxSize"
    info :
        desc : "Java Heap Size: by default the Java heap size is dynamically calculated based on available system resources."
        get : cat $NEO4J_HOME/conf/neo4j.conf | grep "dbms.memory.heap.max_size" | awk -F "=" '{print $2}'
        set : sed -i 's/^dbms.memory.heap.max_size.*$/dbms.memory.heap.max_size=$value/g' $NEO4J_HOME/conf/neo4j.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "128m"
          - "256m"
          - "512m"
          - "1g"
          - "2g"
          - "4g"
        dtype : "string"
  -
    name : "neo4j.memory_pageCacheSize"
    info :
        desc : "The amount of memory to use for mapping the store files."
        get : cat $NEO4J_HOME/conf/neo4j.conf | grep "dbms.memory.pagecache.size" | awk -F "=" '{print $2}'
        set : sed -i 's/^dbms.memory.pagecache.size.*$/dbms.memory.pagecache.size=$value/g' $NEO4J_HOME/conf/neo4j.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "256m"
          - "512m"
          - "1g"
          - "2g"
          - "4g"
          - "8g"
          - "16g"
        dtype : "string"
  -
    name : "elasticsearch.transport_tcp_compress"
    info :
        desc : "Specifies to compress data or not during TCP transmission."
        get : cat $ES_HOME/config/elasticsearch.yml | grep "transport.tcp.compress" | awk -F ':' '{print $2}'
        set : sed -i 's/transport.tcp.compress.*$/transport.tcp.compress:$value/g' $ES_HOME/config/elasticsearch.yml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "elasticsearch.http_max_content_length"
    info :
        desc : "Setting the maximum content capacity."
        get : cat $ES_HOME/config/elasticsearch.yml | grep "http.max_content_length" | awk -F ':' '{print $2}' | awk -F 'mb' '{print $1}'
        set : sed -i 's/http.max_content_length.*$/http.max_content_length:$valuem/g' $ES_HOME/config/elasticsearch.yml
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "elasticsearch.gateway_recover_after_time"
    info :
        desc : "Setting the Timeout Period for Initializing the Data Recovery Process."
        get : cat $ES_HOME/config/elasticsearch.yml | grep "gateway.recover_after_time" | awk -F ':' '{print $2}' | awk -F 'm' '{print $1}'
        set : sed -i 's/gateway.recover_after_time.*$/gateway.recover_after_time:$value/g' $ES_HOME/config/elasticsearch.yml
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "elasticsearch.discovery_zen_ping_multicast_enabled"
    info :
        desc : "Setting Whether to Enable Multicast Discovery Nodes."
        get : cat $ES_HOME/config/elasticsearch.yml | grep "discovery.zen.ping.multicast.enabled" | awk -F ':' '{print $2}'
        set : sed -i 's/discovery.zen.ping.multicast.enabled.*$/discovery.zen.ping.multicast.enabled:$value/g' $ES_HOME/config/elasticsearch.yml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "elasticsearch.gateway_recover_after_nodes"
    info :
        desc : "Configuring Data Restoration When N Nodes in a Cluster Are Started."
        get : cat $ES_HOME/config/elasticsearch.yml | grep "gateway.recover_after_nodes" | awk -F ':' '{print $2}'
        set : sed -i 's/gateway.recover_after_nodes.*$/gateway.recover_after_nodes:$value/g' $ES_HOME/config/elasticsearch.yml
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "questdb.http_multipart_header_buffer_size"
    info :
        desc : "HeaderParser buffer size in bytes."
        get : cat $QUESTDB_HOME/conf/server.conf | grep "http.multipart.header.buffer.size" | awk -F '=' '{print $2}'
        set : sed -i 's/^http.multipart.header.buffer.size.*$/http.multipart.header.buffer.size=$value/g' $QUESTDB_HOME/conf/server.conf
        type : "discrete"
        scope :
          - 8
          - 1028
        step : 8
        dtype : "int"
  -
    name : "questdb.http_receive_buffer_size"
    info :
        desc : "Size of receive buffer."
        get : cat $QUESTDB_HOME/conf/server.conf | grep "http.receive.buffer.size" | awk -F '=' '{print $2}' | awk -F 'm' '{print $1}'
        set : sed -i 's/^http.receive.buffer.size.*$/http.receive.buffer.size=$valuem/g' $QUESTDB_HOME/conf/server.conf
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "questdb.http_request_header_buffer_size"
    info :
        desc : "Size of request header buffer."
        get : cat $QUESTDB_HOME/conf/server.conf | grep "http.request.header.buffer.size" | awk -F '=' '{print $2}' | awk -F 'k' '{print $1}'
        set : sed -i 's/^http.request.header.buffer.size.*$/http.request.header.buffer.size=$valuek/g' $QUESTDB_HOME/conf/server.conf
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "questdb.http_send_buffer_size"
    info :
        desc : "Size of send data buffer."
        get : cat $QUESTDB_HOME/conf/server.conf | grep "http.send.buffer.size" | awk -F '=' '{print $2}' | awk -F 'm' '{print $1}'
        set : sed -i 's/^http.send.buffer.size.*$/http.send.buffer.size=$valuem/g' $QUESTDB_HOME/conf/server.conf
        type : "continuous"
        scope :
          - 1
          - 64
        dtype : "int"
  -
    name : "questdb.http_keepAlive_timeout"
    info :
        desc : "Size of send data buffer."
        get : cat $QUESTDB_HOME/conf/server.conf | grep "http.keep-alive.timeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^http.keep-alive.timeout.*$/http.keep-alive.timeout=$value/g' $QUESTDB_HOME/conf/server.conf
        type : "continuous"
        scope :
          - 1
          - 1000
        dtype : "int"
  -
    name : "postfix.smtpd_client_connection_rate_limit"
    info :
        desc : "Frequency control of IP address connections."
        get : cat /etc/postfix/main.cf | grep "smtpd_client_connection_rate_limit" | awk -F '=' '{print $2}'
        set : sed -i 's/^smtpd_client_connection_rate_limit.*$/smtpd_client_connection_rate_limit=$value/g' /etc/postfix/main.cf
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "postfix.default_process_limit"
    info :
        desc : "Maximum number of processes that can run concurrently in the postfix system."
        get : cat /etc/postfix/main.cf | grep "default_process_limit" | awk -F '=' '{print $2}'
        set : sed -i 's/^default_process_limit.*$/default_process_limit=$value/g' /etc/postfix/main.cf
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "postfix.default_destination_concurrency_limit"
    info :
        desc : "Setting the maximum number of concurrent connections to the same destination host after the connection is initialized."
        get : cat /etc/postfix/main.cf | grep "default_destination_concurrency_limit" | awk -F '=' '{print $2}'
        set : sed -i 's/^default_destination_concurrency_limit.*$/default_destination_concurrency_limit=$value/g' /etc/postfix/main.cf
        type : "continuous"
        scope :
          - 1
          - 64
        dtype : "int"
  -
    name : "postfix.default_destination_recipient_limit"
    info :
        desc : "Controls the number of recipients that a postfix delivery agent can send the same email to."
        get : cat /etc/postfix/main.cf | grep "default_destination_recipient_limit" | awk -F '=' '{print $2}'
        set : sed -i 's/^default_destination_recipient_limit.*$/default_destination_recipient_limit=$value/g' /etc/postfix/main.cf
        type : "discrete"
        scope :
          - 5
          - 500
        step : 5
        dtype : "int"
  -
    name : "postfix.queue_run_delay"
    info :
        desc : "Set how often queue management scans the deferred mail queue."
        get : cat /etc/postfix/main.cf | grep "queue_run_delay" | awk -F '=' '{print $2}'
        set : sed -i 's/^queue_run_delay.*$/queue_run_delay=$value/g' /etc/postfix/main.cf
        type : "discrete"
        scope :
          - 100
          - 10000
        step : 100
        dtype : "int"
  -
    name : "zabbix_server.LogFileSize"
    info :
        desc : "Maximum size of log file in MB."
        get : cat /etc/zabbix/zabbix_server.conf | grep "LogFileSize" | awk -F '=' '{print $2}'
        set : sed -i 's/^LogFileSize.*$/LogFileSize=$value/g' /etc/zabbix/zabbix_server.conf
        type : "continuous"
        scope :
          - 0
          - 1024
        dtype : "int"
  -
    name : "zabbix_server.DebugLevel"
    info :
        desc : "Specifies debug level."
        get : cat /etc/zabbix/zabbix_server.conf | grep "DebugLevel" | awk -F '=' '{print $2}'
        set : sed -i 's/^DebugLevel.*$/DebugLevel=$value/g' /etc/zabbix/zabbix_server.conf
        type : "continuous"
        scope :
          - 0
          - 5
        dtype : "int"
  -
    name : "zabbix_server.HistoryStorageDateIndex"
    info :
        desc : "Enable preprocessing of history values in history storage to store values in different indices based on date."
        get : cat /etc/zabbix/zabbix_server.conf | grep "HistoryStorageDateIndex" | awk -F '=' '{print $2}'
        set : sed -i 's/^HistoryStorageDateIndex.*$/HistoryStorageDateIndex=$value/g' /etc/zabbix/zabbix_server.conf
        type : "continuous"
        scope :
          - 0
          - 1
        dtype : "int"
  -
    name : "zabbix_server.StartPreprocessors"
    info :
        desc : "Number of pre-forked instances of preprocessing workers."
        get : cat /etc/zabbix/zabbix_server.conf | grep "StartPreprocessors" | awk -F '=' '{print $2}'
        set : sed -i 's/^StartPreprocessors.*$/StartPreprocessors=$value/g' /etc/zabbix/zabbix_server.conf
        type : "continuous"
        scope :
          - 1
          - 1000
        dtype : "int"
  -
    name : "zabbix_server.CacheUpdateFrequency"
    info :
        desc : "How often Zabbix will perform update of configuration cache, in seconds."
        get : cat /etc/zabbix/zabbix_server.conf | grep "CacheUpdateFrequency" | awk -F '=' '{print $2}'
        set : sed -i 's/^CacheUpdateFrequency.*$/CacheUpdateFrequency=$value/g' /etc/zabbix/zabbix_server.conf
        type : "continuous"
        scope :
          - 1
          - 3600
        dtype : "int"
  -
    name : "squid.half_closed_clients"
    info :
        desc : "Half closed clients."
        get : cat /etc/squid/squid.conf | grep "half_closed_clients" | awk -F ' ' '{print $2}'
        set : sed -i 's/^half_closed_clients.*$/half_closed_clients $value/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "on"
          - "off"
        dtype : "string"
  -
    name : "squid.cache_swap_high"
    info :
        desc : "Maximum percentage of cache swap."
        get : cat /etc/squid/squid.conf | grep "cache_swap_high" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^cache_swap_high.*$/cache_swap_high $value%/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 100
        dtype : "int"
  -
    name : "squid.cache_swap_low"
    info :
        desc : "Minimum percentage of cache swap."
        get : cat /etc/squid/squid.conf | grep "cache_swap_low" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^cache_swap_low.*$/cache_swap_low $value%/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 100
        dtype : "int"
  -
    name : "squid.maximum_object_size"
    info :
        desc : "Maximun of object size in kb."
        get : cat /etc/squid/squid.conf | grep "maximum_object_size" | awk -F ' ' '{print $2}' | awk -F 'KB' '{print $1}'
        set : sed -i 's/^maximum_object_size.*$/maximum_object_size $valueKB/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 128
          - 2048
        step : 64
        dtype : "int"
  -
    name : "squid.cache_mem"
    info :
        desc : "Size of the physical memory of the hot object of the demand user."
        get : cat /etc/squid/squid.conf | grep "cache_mem" | awk -F ' ' '{print $2}' | awk -F 'MB' '{print $1}'
        set : sed -i 's/^cache_mem.*$/cache_mem $valueMB/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 128
        dtype : "int"
  -
    name : "vsftpd.anonymous_enable"
    info :
        desc : "Allow anonymous FTP or not."
        get : cat /etc/squid/squid.conf | grep "anonymous_enable" | awk -F '=' '{print $2}'
        set : sed -i 's/^anonymous_enable.*$/anonymous_enable=$value/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "NO"
          - "YES"
        dtype : "string"
  -
    name : "vsftpd.xferlog_enable"
    info :
        desc : "Activate logging of uploads/downloads."
        get : cat /etc/squid/squid.conf | grep "xferlog_enable" | awk -F '=' '{print $2}'
        set : sed -i 's/^xferlog_enable.*$/xferlog_enable=$value/g' /etc/squid/squid.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "NO"
          - "YES"
        dtype : "string"
  -
    name : "vsftpd.accept_timeout"
    info :
        desc : "Timeout interval for accepting an FTP data connection."
        get : cat /etc/vsftpd/vsftpd.conf | grep "connect_timeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^connect_timeout.*$/connect_timeout=$value/g' /etc/vsftpd/vsftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 3600
        dtype : "int"
  -
    name : "vsftpd.connect_timeout"
    info :
        desc : "Timeout interval for establishing a data connection in port mode."
        get : cat /etc/vsftpd/vsftpd.conf | grep "connect_timeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^connect_timeout.*$/connect_timeout=$value/g' /etc/vsftpd/vsftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 3600
        dtype : "int"
  -
    name : "vsftpd.data_connection_timeout"
    info :
        desc : "Timeout interval for establishing an FTP data connection."
        get : cat /etc/vsftpd/vsftpd.conf | grep "data_connection_timeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^data_connection_timeout.*$/data_connection_timeout=$value/g' /etc/vsftpd/vsftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 3600
        dtype : "int"
  -
    name : "proftpd.ftpd_full_access"
    info :
        desc : "Allows the ftp daemon to read and write all files on the system."
        get : cat /etc/proftpd.conf | grep "ftpd_full_access" | awk -F '=' '{print $2}'
        set : sed -i 's/ftpd_full_access.*$/ftpd_full_access=$value/g' /etc/proftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 1
        dtype : "int"
  -
    name : "proftpd.ftpd_use_fusefs"
    info :
        desc : "Allows the ftp daemon to read and write files on ntfs/fusefs-mounted filesystems."
        get : cat /etc/proftpd.conf | grep "ftpd_use_fusefs" | awk -F '=' '{print $2}'
        set : sed -i 's/ftpd_use_fusefs.*$/ftpd_use_fusefs=$value/g' /etc/proftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 1
        dtype : "int"
  -
    name : "proftpd.ftpd_use_passive_mode"
    info :
        desc : "Allows the ftp daemon to bind to all unreserved ports for passive mode."
        get : cat /etc/proftpd.conf | grep "ftpd_use_passive_mode" | awk -F '=' '{print $2}'
        set : sed -i 's/ftpd_use_passive_mode.*$/ftpd_use_passive_mode=$value/g' /etc/proftpd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 1
        dtype : "int"
  -
    name : "cachefilesd.brun"
    info :
        desc : "If the amount of free space in the cache is higher than this value, culling stops."
        get : cat /etc/cachefilesd.conf | grep "brun" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^brun.*$/brun $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "cachefilesd.bcull"
    info :
        desc : "If the number of free space in the cache is less than this value, culling starts."
        get : cat /etc/cachefilesd.conf | grep "bcull" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^bcull.*$/bcull $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "cachefilesd.bstop"
    info :
        desc : "If the number of free space in the cache falls below this value, no new disk space or files are allocated for the cache until sufficient space is culled."
        get : cat /etc/cachefilesd.conf | grep "bstop" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^bstop.*$/bstop $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "cachefilesd.frun"
    info :
        desc : "If the number of available files in the cache is greater than this value, culling stops."
        get : cat /etc/cachefilesd.conf | grep "frun" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^frun.*$/frun $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "cachefilesd.fcull"
    info :
        desc : "If the number of available files in the cache is less than this value, culling starts."
        get : cat /etc/cachefilesd.conf | grep "fcull" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^fcull.*$/fcull $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "cachefilesd.fstop"
    info :
        desc : "If the number of available files in the cache falls below this value, no new disk space or files are allocated for the cache until sufficient space is culled."
        get : cat /etc/cachefilesd.conf | grep "fstop" | awk -F ' ' '{print $2}' | awk -F '%' '{print $1}'
        set : sed -i 's/^fstop.*$/fstop $value%/g' /etc/cachefilesd.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 0
          - 99
        dtype : "int"
  -
    name : "influxdb.logging_enabled"
    info :
        desc : "If log messages are printed for the meta service."
        get : cat /etc/influxdb/influxdb.conf | grep "logging-enabled" | awk -F "=" '{print $2}'
        set : sed -i "s/logging-enabled.*/logging-enabled=$value/" /etc/influxdb/influxdb.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "influxdb.wal_logging_enabled"
    info :
        desc : "These are the WAL settings for the storage engine >= 0.9.3."
        get : cat /etc/influxdb/influxdb.conf | grep "wal-logging-enabled" | awk -F "=" '{print $2}'
        set : sed -i "s/wal-logging-enabled.*/wal-logging-enabled=$value/" /etc/influxdb/influxdb.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "influxdb.trace_logging_enabled"
    info :
        desc : "Trace logging provides more verbose output around the tsm engine."
        get : cat /etc/influxdb/influxdb.conf | grep "trace-logging-enabled" | awk -F "=" '{print $2}'
        set : sed -i "s/trace-logging-enabled.*/trace-logging-enabled=$value/" /etc/influxdb/influxdb.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "influxdb.query_log_enabled"
    info :
        desc : "Whether queries should be logged before execution."
        get : cat /etc/influxdb/influxdb.conf | grep "query-log-enabled" | awk -F "=" '{print $2}'
        set : sed -i "s/query-log-enabled.*/query-log-enabled=$value/" /etc/influxdb/influxdb.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "influxdb.cache_max_memory_size"
    info :
        desc : "CacheMaxMemorySize is the maximum size a shard's cache can reach before it starts rejecting writes."
        get : cat /etc/influxdb/influxdb.conf | grep "cache-max-memory-size" | awk -F '=' '{print $2}'
        set : sed -i 's/cache-max-memory-size.*$/cache-max-memory-size=$value/g' /etc/influxdb/influxdb.conf 
        needrestart : "true"
        type : "discrete"
        scope :
          - 524288
          - 524288000
        step : 524288
        dtype : "int"
  -
    name : "splunk.connectionTimeout"
    info :
        desc : "Connection timeout."
        get : cat $SPLUNK_HOME/etc/system/default/outputs.conf | grep "connectionTimeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^connectionTimeout.*$/connectionTimeout=$value%/g' $SPLUNK_HOME/etc/system/default/outputs.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 30
          - 600
        step : 30
        dtype : "int"
  -
    name : "splunk.readTimeout"
    info :
        desc : "Read timeout."
        get : cat $SPLUNK_HOME/etc/system/default/outputs.conf | grep "readTimeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^readTimeout.*$/readTimeout=$value%/g' $SPLUNK_HOME/etc/system/default/outputs.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 30
          - 600
        step : 30
        dtype : "int"
  -
    name : "splunk.writeTimeout"
    info :
        desc : "Write timeout."
        get : cat $SPLUNK_HOME/etc/system/default/outputs.conf | grep "writeTimeout" | awk -F '=' '{print $2}'
        set : sed -i 's/^writeTimeout.*$/writeTimeout=$value%/g' $SPLUNK_HOME/etc/system/default/outputs.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 30
          - 600
        step : 30
        dtype : "int"
  -
    name : "splunk.heartbeatFrequency"
    info :
        desc : "Heart beat frequency."
        get : cat $SPLUNK_HOME/etc/system/default/outputs.conf | grep "heartbeatFrequency" | awk -F '=' '{print $2}'
        set : sed -i 's/^heartbeatFrequency.*$/heartbeatFrequency=$value%/g' $SPLUNK_HOME/etc/system/default/outputs.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 5
          - 60
        step : 5
        dtype : "int"
  -
    name : "splunk.maxFailuresPerInterval"
    info :
        desc : "Max failures per interval."
        get : cat $SPLUNK_HOME/etc/system/default/outputs.conf | grep "maxFailuresPerInterval" | awk -F '=' '{print $2}'
        set : sed -i 's/^maxFailuresPerInterval.*$/maxFailuresPerInterval=$value%/g' $SPLUNK_HOME/etc/system/default/outputs.conf
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 10
        dtype : "int"
  -
    name : "rabbitmq-server.num_tcp_acceptors"
    info :
        desc : "Number of Erlang processes that will accept connections for the TCP listeners."
        get : cat /etc/rabbitmq/rabbitmq.config | grep "num_tcp_acceptors" | awk -F ',' '{print $2}' | awk -F '}' '{print $1}'
        set : sed -i 's/{num_tcp_acceptors,.*}/{num_tcp_acceptors, $value}/g' /etc/rabbitmq/rabbitmq.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "rabbitmq-server.num_ssl_acceptors"
    info :
        desc : "Number of Erlang processes that will accept connections for the TLS listeners."
        get : cat /etc/rabbitmq/rabbitmq.config | grep "num_ssl_acceptors" | awk -F ',' '{print $2}' | awk -F '}' '{print $1}'
        set : sed -i 's/{num_ssl_acceptors,.*}/{num_ssl_acceptors, $value}/g' /etc/rabbitmq/rabbitmq.config
        needrestart : "true"
        type : "continuous"
        scope :
          - 1
          - 20
        dtype : "int"
  -
    name : "rabbitmq-server.handshake_timeout"
    info :
        desc : "Maximum time for AMQP 0-8/0-9/0-9-1 handshake."
        get : cat /etc/rabbitmq/rabbitmq.config | grep "handshake_timeout" | awk -F ',' '{print $2}' | awk -F '}' '{print $1}'
        set : sed -i 's/{handshake_timeout,.*}/{handshake_timeout, $value}/g' /etc/rabbitmq/rabbitmq.config
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 10000
        step : 100
        dtype : "int"
  -
    name : "rabbitmq-server.ssl_handshake_timeout"
    info :
        desc : "Maximum time for AMQP 0-8/0-9/0-9-1 handshake."
        get : cat /etc/rabbitmq/rabbitmq.config | grep "handshake_timeout" | awk -F ',' '{print $2}' | awk -F '}' '{print $1}'
        set : sed -i 's/{handshake_timeout,.*}/{handshake_timeout, $value}/g' /etc/rabbitmq/rabbitmq.config
        needrestart : "false"
        type : "discrete"
        scope :
          - 100
          - 10000
        step : 100
        dtype : "int"
  -
    name : "rabbitmq-server.heartbeat"
    info :
        desc : "Sets the default AMQP 0-9-1 heartbeat timeout in seconds."
        get : cat /etc/rabbitmq/rabbitmq.config | grep "heartbeat" | awk -F ',' '{print $2}' | awk -F '}' '{print $1}'
        set : sed -i 's/{heartbeat,.*}/{heartbeat, $value}/g' /etc/rabbitmq/rabbitmq.config
        needrestart : "false"
        type : "discrete"
        scope :
          - 5
          - 100
        step : 5
        dtype : "int"
  -
    name : "activemq.persistent"
    info :
        desc : "Persistent message."
        get : cat $ACTIVEMQ_HOME/conf/activemq.xml | grep "persistent" | awk -F "persistent=" '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/persistent="[^\"]*"/persistent="$value"/' $ACTIVEMQ_HOME/conf/activemq.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "activemq.maxPageSize"
    info :
        desc : "The maximum number of messages to page in from the store at one time."
        get : cat $ACTIVEMQ_HOME/conf/activemq.xml | grep "maxPageSize" | awk -F "maxPageSize=" '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/maxPageSize="[^\"]*"/maxPageSize="$value"/' $ACTIVEMQ_HOME/conf/activemq.xml
        needrestart : "true"
        type : "discrete"
        scope :
          - 5
          - 500
        step : 5
        dtype : "int"
  -
    name : "activemq.enableAudit"
    info :
        desc : "When true the broker will track duplicate messages."
        get : cat $ACTIVEMQ_HOME/conf/activemq.xml | grep "enableAudit" | awk -F "enableAudit=" '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/enableAudit="[^\"]*"/enableAudit="$value"/' $ACTIVEMQ_HOME/conf/activemq.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "activemq.useCache"
    info :
        desc : "If true persistent messages are cached for fast retrieval from store."
        get : cat $ACTIVEMQ_HOME/conf/activemq.xml | grep "useCache" | awk -F "useCache=" '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/useCache="[^\"]*"/useCache="$value"/' $ACTIVEMQ_HOME/conf/activemq.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "activemq.sendFailIfNoSpace"
    info :
        desc : "If true, will cause a send to fail with a javax.jms.ResourceAllocationException when the destination has reached is resource limits (memory or storage)."
        get : cat $ACTIVEMQ_HOME/conf/activemq.xml | grep "sendFailIfNoSpace" | awk -F "sendFailIfNoSpace=" '{print $2}' | awk -F '"' '{print $2}'
        set : sed -i 's/sendFailIfNoSpace="[^\"]*"/sendFailIfNoSpace="$value"/' $ACTIVEMQ_HOME/conf/activemq.xml
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "rocketmq.mapedFileSizeCommitLog"
    info :
        desc : "Size of commit log files."
        get : cat $ROCKETMQ_HOME/distribution/conf/broker.conf | grep "mapedFileSizeCommitLog" | awk -F "=" '{print $2}'
        set : sed -i 's/^mapedFileSizeCommitLog.*$/mapedFileSizeCommitLog=$value/' $ROCKETMQ_HOME/distribution/conf/broker.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 1048576
          - 2147483648
        step : 1048576
        dtype : "int"
  -
    name : "rocketmq.mapedFileSizeConsumeQueue"
    info :
        desc : "ConsumeQueue Default Storage Quantity of Each File."
        get : cat $ROCKETMQ_HOME/distribution/conf/broker.conf | grep "mapedFileSizeConsumeQueue" | awk -F "=" '{print $2}'
        set : sed -i 's/^mapedFileSizeConsumeQueue.*$/mapedFileSizeConsumeQueue=$value/' $ROCKETMQ_HOME/distribution/conf/broker.conf
        needrestart : "true"
        type : "discrete"
        scope :
          - 1000
          - 100000
        step : 1000
        dtype : "int"
  -
    name : "rocketmq.autoCreateTopicEnable"
    info :
        desc : "Allow Broker to Automatically Create Topics."
        get : cat $ROCKETMQ_HOME/distribution/conf/broker.conf | grep "autoCreateTopicEnable" | awk -F "=" '{print $2}'
        set : sed -i 's/^autoCreateTopicEnable.*$/autoCreateTopicEnable=$value/' $ROCKETMQ_HOME/distribution/conf/broker.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"
  -
    name : "rocketmq.autoCreateSubscriptionGroup"
    info :
        desc : "Allow Broker to Automatically Create Subscription Groups."
        get : cat $ROCKETMQ_HOME/distribution/conf/broker.conf | grep "autoCreateSubscriptionGroup" | awk -F "=" '{print $2}'
        set : sed -i 's/^autoCreateSubscriptionGroup.*$/autoCreateSubscriptionGroup=$value/' $ROCKETMQ_HOME/distribution/conf/broker.conf
        needrestart : "true"
        type : "discrete"
        options :
          - "true"
          - "false"
        dtype : "string"