La commande 'schedo' permet de gérer( afficher ou modifier) les paramètres systèmes du scheduler d'une partition AIX.

# schedo -a
              %usDelta = 100
          affinity_lim = 7
       allowMCMmigrate = 0
         big_tick_size = 1
 ded_cpu_donate_thresh = 80
            fast_locks = n/a
      fixed_pri_global = 0
             force_grq = 0
       hotlocks_enable = 0
idle_migration_barrier = 4
    krlock_confer2self = 1
  krlock_conferb4alloc = 1
         krlock_enable = 1
    krlock_spinb4alloc = 1
   krlock_spinb4confer = 1024
               maxspin = 16384
    n_idle_loop_vlopri = 100
              pacefork = 10
       proc_disk_stats = 1
               sched_D = 16
               sched_R = 16
 search_globalrq_mload = 256
  search_smtrunq_mload = 256
  setnewrq_sidle_mload = 384
   shed_primrunq_mload = 64
    sidle_S1runq_mload = 64
    sidle_S2runq_mload = 134
    sidle_S3runq_mload = 134
    sidle_S4runq_mload = 4294967040
    slock_spinb4confer = 1024
      smt_snooze_delay = 0
     smtrunq_load_diff = 2
         tb_balance_S0 = 0
         tb_balance_S1 = 2
          tb_threshold = 100
             timeslice = 1
        unboost_inflih = 1
         v_exempt_secs = 2
         v_min_process = 2
           v_repage_hi = 0
         v_repage_proc = 4
            v_sec_wait = 1
       vpm_fold_policy = 1
            vpm_xvcpus = 0

Ci-dessous, un extrait de la documentation officielle IBM.

 

                                                            Commands Reference, Volume 5, s - u

schedo Command

Purpose

       Manages processor scheduler tunable parameters.

Syntax

       schedo [ -p | -r ] [-y ] { -o Tunable[=Newvalue]}

       schedo [ -p | -r ] [-y ] { -d Tunable }

       schedo [ -p | -r ] [-y ] -D

       schedo [ -p | -r ] -a

       schedo -h [ Tunable ]

       schedo -L [Tunable ]

       schedo -x [Tunable ] Note: Multiple flags -o, -d, -x, and -L flags are allowed

Description
       Note: The schedo command can only be executed by root.

       Use the schedo command to configure scheduler tuning parameters. This command sets or displays current or next boot values for all scheduler tuning
       parameters. This command can also make permanent changes or defer changes until the next reboot. Whether the command sets or displays a parameter is
       determined by the accompanying flag. The -o flag performs both actions. It can either display the value of a parameter or set a new value for a
       parameter.

Understanding the Effect of Changing Tunable Parameters

       Misuse of this command can cause performance degradation or operating-system failure. Be sure that you have studied the appropriate tuning sections
       in the Performance management before using schedo to change system parameters.

       Before modifying any tunable parameter, you should first carefully read about all its characteristics in the Tunable Parameters section below, and
       follow any Refer To pointer, in order to fully understand its purpose.

       You must then make sure that the Diagnosis and Tuning sections for this parameter truly apply to your situation and that changing the value of this
       parameter could help improve the performance of your system.

       If the Diagnosis and Tuning sections both contain only "N/A", you should probably never change this parameter unless specifically directed by AIX
       development.

Priority-Calculation Parameters

       The priority of most user processes varies with the amount of processor time the process has used recently. The processor scheduler's priority
       calculations are based on two parameters that are set with schedo, sched_R and sched_D. The sched_R and sched_D values are in thirty-seconds (1/32);
       that is, the formula used by the scheduler to calculate the amount to be added to a process's priority value as a penalty for recent processor use
       is:

       CPU penalty = (recently used CPU value of the process) * (r/32)

       and the once-per-second recalculation of the recently used processor value of each process is:

       new recently used CPU value = (old recently used CPU value of the process) * (d/32)

       Both r (sched_R parameter) and d (sched_D parameter) have default values of 16. This maintains the processor scheduling behavior of previous
       versions of the operating system. Before experimenting with these values, you should be familiar with "Tuning the processor scheduler" in the
       Performance Management Guide.

Memory-Load-Control Parameters

       The operating system scheduler performs memory load control by suspending processes when memory is over committed. The system does not swap out
       processes; instead pages are stolen as they are needed to fulfill the current memory requirements. Typically, pages are stolen from suspended
       processes. Memory is considered over committed when the following condition is met:
       p * h s
            where: p is the number of pages written to paging space in the last second

            h is an integer specified by the v_repage_hi parameter

            s is the number of page steals that have occurred in the last second

       A process is suspended when memory is over committed and the following condition is met:
       r * p f
            where: r r is the number of repages that the process has accumulated in the last second

            p is an integer specified by the v_repage_proc parameter

            f is the number of page faults that the process has experienced in the last second

       In addition, fixed-priority processes and kernel processes are exempt from being suspended.

       The term repages refers to the number of pages belonging to the process, which were reclaimed and are soon after referenced again by the process.

       The user also can specify a minimum multiprogramming level with the v_min_process parameter. Doing so ensures that a minimum number of processes
       remain active throughout the process-suspension period. Active processes are those that are runnable and waiting for page I/O. Processes that are
       waiting for events and processes that are suspended are not considered active, nor is the wait process considered active.

       Suspended processes can be added back into the mix when the system has stayed below the over committed threshold for n seconds, where n is specified
       by the v_sec_wait parameter. Processes are added back into the system based, first, on their priority and, second, on the length of their suspension
       period.

       Before experimenting with these values, you should be thoroughly familiar with "VMM memory load control tuning with the schedo command" in the
       Performance Management Guide.

Time-Slice-Increment Parameter

       The schedo command can also be used to change the amount of time the operating system allows a given process to run before the dispatcher is called
       to choose another process to run (the time slice). The default value for this interval is a single clock tick (10 milliseconds). The timeslice
       tuning parameter allows the user to specify the number of clock ticks by which the time slice length is to be increased.

       In AIX Version 4, this parameter only applies to threads with the SCHED_RR scheduling policy. See Scheduling Policy for Threads.

fork() Retry Interval Parameter

       If a fork() subroutine call fails because there is not enough paging space available to create a new process, the system retries the call after
       waiting for a specified period of time. That interval is set with the pacefork tuning parameter.

Special Terminology for Symmetric Multithreading

       Multiple run queues are supported. Under this scheme each processor has it's own run queue. Power 5 processors support symmetric multithreading,
       where each physical processor has two execution engines, called hardware threads. Each hardware thread is essentially equivalent to a single
       processor. Symmetric multithreading is enabled by default, but it can be disabled (or re-enabled) dynamically. When symmetric multithreading is

       enabled, each hardware thread services a separate run queue. For example, on a 4-way system when symmetric multithreading is disabled or not
       present, there are 4 run queues in addition to the global run queue. When symmetric multithreading is enabled, there are 8 run queues in addition to
       the global run queue.

       The hardware threads belonging to the same physical processor are referred to as sibling threads. A primary sibling thread is the first hardware
       thread of the physical processor. A secondary sibling thread is the second hardware thread of the physical processor.

Virtual Processor Management

       More virtual processors can be defined than are needed to handle the work in a partition. The overhead of dispatching virtual processors can be
       reduced by using fewer virtual processors without a decrease in overall processor usage or a lack of virtual processors. Virtual processors are not
       dynamically removed from the partition, but instead are not used and are used again only when additional work is available. Each virtual processor
       uses a maximum of one physical processor. The number of virtual processes needed is determined by rounding up the sum of the physical processor
       utilization and the vpm_xvcpus tunable:

       number = ceiling( p_util + vpm_xvcpus)

       Where number is the number of virtual processors that are needed, p_util is the physical processor utilization, and vpm_xvcpus is a tunable that
       specifies the number of additional virtual processors to enable. If number is less than the number of currently enabled virtual processors, a
       virtual processor will be disabled. If number is greater than the number of currently enabled virtual processors, a disabled virtual processor will
       be enabled. Threads that are attached to a disabled virtual processor are still allowed to run on the disabled virtual processor.

Node Load

       The node load, or simply load, is the average run queue depth across all run queues, including the global run queue multiplied by 256, and is
       strongly smoothed over time. For example, a load of 256 means that if we have 16 CPUs (including symmetric multithreading CPUs), then we have had
       approximately 16 runnable jobs in the system for the last few milliseconds.

Flags
       -a
            Displays the current, reboot (when used in conjunction with -r) or permanent (when used in conjunction with -p) value for all tunable
            parameters, one per line in pairs Tunable = Value. For the permanent option, a value is only displayed for a parameter if its reboot and
            current values are equal. Otherwise NONE displays as the value.
       -d Tunable
            ResetsTunable to its default value. If a tunable needs to be changed (that is, it is currently not set to its default value, and -r is not used
            in combination, it won't be changed but a warning is displayed.
       -D
            Resets all tunables to their default value. If tunables needing to be changed are of type Bosboot or Reboot, or are of type Incremental and
            have been changed from their default value, and -r is not used in combination, they will not be changed but a warning displays.
       -h [Tunable]
            Displays help about the Tunable parameter if one is specified. Otherwise, displays the schedo command usage statement.
       -L [ Tunable ]
            Lists the characteristics of one or all tunables, one per line, using the following format:

            NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
                 DEPENDENCIES
            --------------------------------------------------------------------------------
            v_repage_hi               0      0      0      0      2047M                    D
            --------------------------------------------------------------------------------
            v_repage_proc             4      4      4      0      2047M                    D
            --------------------------------------------------------------------------------
            v_sec_wait                1      1      1      0      2047M  seconds           D
            --------------------------------------------------------------------------------
            ...
            where:
                CUR = current value
                DEF = default value
                BOOT = reboot value
                MIN = minimal value

                MAX = maximum value
                UNIT = tunable unit of measure
                TYPE = parameter type: D (for Dynamic), S (for Static), R (for Reboot),
                       B (for Bosboot), M (for Mount), I (for Incremental), C (for Connect), and d (for Deprecated)
                DEPENDENCIES = list of dependent tunable parameters, one per line
       -o Tunable [=Newvalue]
            Displays the value or sets Tunable to Newvalue. If a tunable needs to be changed (the specified value is different than current value), and is
            of type Bosboot or Reboot, or if it is of type Incremental and its current value is bigger than the specified value, and -r is not used in
            combination, it will not be changed but a warning displays.

            When -r is used in combination without a new value, the nextboot value for tunable is displayed. When -p is used in combination without a new
            value, a value displays only if the current and next boot values for tunable are the same. Otherwise NONE displays as the value.
       -p
            Makes changes apply to both current and reboot values, when used in combination with -o, -d or -D, that is, turns on the updating of the
            /etc/tunables/nextboot file in addition to the updating of the current value. These combinations cannot be used on Reboot and Bosboot type
            parameters because their current value can't be changed.

            When used with -a or -o without specifying a new value, values are displayed only if the current and next boot values for a parameter are the
            same. Otherwise NONE displays as the value.
       -r
            Makes changes apply to reboot values when used in combination with -o, -d or -D, that is, turns on the updating of the /etc/tunables/nextboot
            file. If any parameter of type Bosboot is changed, the user will be prompted to run bosboot.

            When used with -a or -o without specifying a new value, next boot values for tunables display instead of current values.
       -x [Tunable]
            Lists characteristics of one or all tunables, one per line, using the following (spreadsheet) format:

            tunable,current,default,reboot,min,max,unit,type,{dtunable }
            where:
                current = current value
                default = default value
                reboot = reboot value
                min = minimal value
                max = maximum value
                unit = tunable unit of measure
                type = parameter type: D (for Dynamic), S (for Static), R (for Reboot),
                           B (for Bosboot),M (for Mount), I (for Incremental),
                           C (for Connect), and d (for Deprecated)
                dtunable = space separated list of dependent tunable parameters
       -y
            Suppresses the confirmation prompt before executing the bosboot command.

       Any change (with -o, -d or -D) to a parameter of type Mount results in a message displaying to warn the user that the change is only effective for
       future mountings.

       Any change (with -o, -d or -D flags) to a parameter of type Connect will result in inetd being restarted, and in a message being displayed to warn
       the user that the change is only effective for future socket connections.

       Any attempt to change (with -o, -d or -D) a parameter of type Bosboot or Reboot without -r, results in an error message.

       Any attempt to change (with-o, -d or -D but without -r) the current value of a parameter of type Incremental with a new value smaller than the
       current value, results in an error message.

Tunable Parameters Type

       All the tunable parameters manipulated by the tuning commands (no, nfso, vmo, ioo, raso, and schedo) have been classified into these categories:
       Dynamic
            If the parameter can be changed at any time

       Static
            If the parameter can never be changed
       Reboot
            If the parameter can only be changed during reboot
       Bosboot
            If the parameter can only be changed by running bosboot and rebooting the machine
       Mount
            If changes to the parameter are only effective for future file systems or directory mounts
       Incremental
            If the parameter can only be incremented, except at boot time
       Connect
            If changes to the parameter are only effective for future socket connections
       Deprecated
            If changing this parameter is no longer supported by the current release of AIX.

       For parameters of type Bosboot, whenever a change is performed, the tuning commands automatically prompt the user to ask if they want to execute the
       bosboot command. For parameters of type Connect, the tuning commands automatically restart the inetd daemon.

       Note that the current set of parameters managed by the schedo command only includes Dynamic, and Reboot types.

Compatibility Mode

       When running in pre 5.2 compatibility mode (controlled by the pre520tune attribute of sys0, see AIX 5.2 compatibility mode in the Performance
       management), reboot values for parameters, except those of type Bosboot, are not really meaningful because in this mode they are not applied at boot
       time.

       In pre 5.2 compatibility mode, setting reboot values to tuning parameters continues to be achieved by imbedding calls to tuning commands in scripts
       called during the boot sequence. Parameters of type Reboot can therefore be set without the -r flag, so that existing scripts continue to work.

       This mode is automatically turned ON when a machine is MIGRATED to AIX 5.2. For complete installations, it is turned OFF and the reboot values for
       parameters are set by applying the content of the /etc/tunables/nextboot file during the reboot sequence. Only in that mode are the -r and -p flags
       fully functional. See Kernel Tuning in the AIX 5L Version 5.3 Performance Tools Guide and Reference for more information.

Tunable Parameters
       affinity_lim
              Purpose:
                   Sets the number of intervening dispatches after which the SCHED_FIFO2 policy no longer favors a thread.
              Values:
                     *    Default: 7
                     *    Range: 0 to 100
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   Once a thread is running with SCHED_FIFO2 policy, tuning of this variable may or may not have an effect on the performance of the thread
                   and workload. Ideal values should be determined by trial and error.
              Refer To:
                   Scheduling policy for threads
       allowMCMmigrate
              Purpose:
                   Enables (1) or disables (0) the weakening of barriers for migration threads between MCMs under light load conditions.
              Values:
                     *    Default: 0 (disabled)
                     *    Range: 0 to 1
                     *    Type: Boolean
              Diagnosis:
                   N/A
              Tuning:

                   N/A
       big_tick_size
              Purpose:
                   Sets physical tick interval & synchronizes ticks across cpus.
              Values:
                     *    Default: 1
                     *    Range: 1 to 100
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   This value multiplied by 10 ms is the tick interval, and should evenly divide into 100. Use of this parameter will make system
                   statistics less accurate.
       fixed_pri_global
              Purpose:
                   Keep fixed priority threads on global run queue.
              Values:
                     *    Default: 0
                     *    Range: 0 to 1
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   If 1, then fixed priority threads are placed on the global run queue.
              Refer To:
                   Scheduler run queue
       force_grq
              Purpose:
                   Keep non-MPI threads on the global run queue.
              Values:
                     *    Default: 0
                     *    Range: 0 or 1
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   If set to 1, only MPI and bound threads will use local run queues, which may hurt performance.
       hotlocks_enable
              Purpose:
                   Enables (1) or disables (0) the hardware priority boosting of hot locks.
              Values:
                     *    Default: 0 (disabled)
                     *    Range: 0...1
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       idle_migration_barrier
              Purpose:
                   Used to determine when threads can be migrated to other processors.
              Values:
                     *    Default: 4
                     *    Range: 0 to 100
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:

                   This value is divided by 16 and then multiplied by the load average. The resulting value is used to determine if jobs should be migrated
                   to other nodes (essentially does load balancing).
       krlock_confer2self
              Purpose:
                   Enables (1) or disables (0) conferring to self after trying to acquire krlock krlock_spinb4confer times. This parameter only applies to
                   the 64-bit kernel.
              Values:
                     *    Default: 0 (disabled)
                     *    Range: 0...1
                     *    Type: Dynamic (Reboot when 32-bit kernel is running.)
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       krlock_conferb4alloc
              Purpose:
                   Enables (1) or disables (0) conferring after spinning slock_spinb4confer before trying to acquire or allocating krlock. This parameter
                   only applies to the 64-bit kernel.
              Values:
                     *    Default: 1
                     *    Range: 0...1
                     *    Type: Dynamic (Reboot when 32-bit kernel is running.)
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       krlock_enable
              Purpose:
                   Enables (1) or disables (0) krlocks. This parameter only applies to the 64-bit kernel.
              Values:
                     *    Default: 1 (enabled)
                     *    Range: 0...1
                     *    Type: Dynamic (Reboot when 32-bit kernel is running.)
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       krlock_spinb4alloc
              Purpose:
                   Number of additional acquisition attempts after spinning slock_spinb4confer, and conferring (if krlock_conferb4alloc is on), before
                   allocating krlock. This parameter only applies to the 64-bit kernel.
              Values:
                     *    Default: 1
                     *    Range: 1...MAXINT
                     *    Type: Dynamic (Reboot when 32-bit kernel is running.)
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       krlock_spinb4confer
              Purpose:
                   Number of krlock acquisition attempts before conferring to the krlock holder (or self). This parameter only applies to the 64-bit
                   kernel.
              Values:
                     *    Default: 1024
                     *    Range: 0...MAXINT
                     *    Type: Dynamic (Reboot when 32-bit kernel is running.)
              Diagnosis:

                   N/A
              Tuning:
                   N/A
       maxspin
              Purpose:
                   Sets the number of times to spin on a kernel lock before going to sleep.
              Values:
                     *    Default: 1 on uniprocessor systems, -1 on MP systems, which means to spin up to 232 times
                     *    Range: -1 to 232
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   Increasing the value or setting it to -1 on MP systems may reduce idle time; however, it may also waste processor time in some
                   situations. Increasing it on uniprocessor systems is not recommended.
              Refer To:
                   Use of the schedo command to modify the MAXSPIN parameter
       n_idle_loop_vlopri
              Purpose:
                   Number of times to run the low hardware priority loop each time in idle loop if no new work is found.
              Values:
                     *    Default: 100
                     *    Range: 0...1000000
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       pacefork
              Purpose:
                   The number of clock ticks to wait before retrying a failed fork call that has failed for lack of paging space.
              Values:
                     *    Default: 10
                     *    Range: a positive number of clock ticks bigger than 10
                     *    Type: Dynamic
              Diagnosis:
                   System is running out of paging space and process cannot be forked.
              Tuning:
                   The system will retry a failed fork five times. For example, if a fork() subroutine call fails because there is not enough paging space
                   available to create a new process, the system retries the call after waiting the specified number of clock ticks.
              Refer To:
                   The fork() retry interval parameter
       sched_D
              Purpose:
                   Sets the short term processor usage delay rate.
              Values:
                     *    Default: 16
                     *    Range: 0 to 32
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   The default is to decay short-term processor usage by 1/2 (16/32) every second. Decreasing this value enables foreground processes to
                   avoid competition with background processes for a longer time.
              Refer To:
                   Thread-Priority-Value calculation
       sched_R
              Purpose:

                   Sets the weighting factor for short-term processor usage in priority calculations.
              Values:
                     *    Default: 16
                     *    Range: 0 to 32
                     *    Type: Dynamic
              Diagnosis:
                   Run: ps al. If you find that the PRI column has priority values for foreground processes (those with NI values of 20) that are higher
                   than the PRI values of some background processes (NI values > 20), you can reduce the r value.
              Tuning:
                   The default is to include 1/2 (16/32) of the short term processor usage in the priority calculation. Decreasing this value makes it
                   easier for foreground processes to compete.
              Refer To:
                   Thread-Priority-Value calculation
       search_globalrq_mload
              Purpose:
                   Minimum load above which secondary sibling threads will look for work in the global run queue in the dispatcher.
              Values:
                     *    Default: 256
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       search_smtrunq_mload
              Purpose:
                   Minimum load above which the dispatcher will also search the run queues belonging to its sibling hardware threads. This is meant for
                   load balancing on a physical processor and is not the same as idle load balancing as this check is made in the dispatcher when choosing
                   the next job to be dispatched. This works in conjunction with the smtrunq_load_diff tunable.
              Values:
                     *    Default: 256
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       setnewrq_sidle_mload
              Purpose:
                   Minimum system load above which idle secondary sibling threads will be considered for new work even when primary is not idle.
              Values:
                     *    Default: 384
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       shed_primrunq_mload
              Purpose:
                   The maximum load below which the secondary sibling threads will try to shed work onto the primary sibling thread's run queue.
              Values:
                     *    Default: 64
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:

                   N/A
       sidle_s1runq_mload
              Purpose:
                   The minimum load above which idle load balancing for secondary sibling threads will search for work in the primary sibling thread's run
                   queue.
              Values:
                     *    Default: 64
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       sidle_S2runq_mload
              Purpose:
                   Minimum load above which secondary sibling threads will look for work among other run queues owned by CPUs within their S2 affinity
                   domain during idle load balancing.
              Values:
                     *    Default: 134
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   It is recommended that this tunable never be set to a value that is less than the value of sidle_S1runq_mload.
       sidle_S3runq_mload
              Purpose:
                   Minimum load above which secondary sibling threads will look for work among other run queues owned by CPUs within their S3 affinity
                   domain during idle load balancing.
              Values:
                     *    Default: 134
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   It is recommended that this tunable never be set to a value that is less than the value of sidle_S2runq_mload.
       sidle_S4runq_mload
              Purpose:
                   Minimum load above which secondary sibling threads will look for work on any local run queues.
              Values:
                     *    Default: 4294967040
                     *    Range: 0...4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   It is recommended that this tunable never be set to a value that is less than the value of sidle_S3runq_mload.
       slock_spinb4confer
              Purpose:
                   Number of attempts for a simple lock before conferring.
              Values:
                     *    Default: 1024
                     *    Range: 0...MAXINT
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:

                   N/A
       smt_snooze_delay
              Purpose:
                   Amount of time in microseconds in idle loop without useful work before snoozing (calling h_cede). A value of -1 indicates to disable
                   snoozing, a value of 0 indicates to snooze immediately.
              Values:
                     *    Default: 0
                     *    Range: -1..100000000 (100 secs)
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       smtrunq_load_diff
              Purpose:
                   Minimum load difference between dibling run queue loads for a task to be stolen from the sibling's run queue. This is enabled only when
                   the load is greater than the value for the search_smtrunq_mload tunable.
              Values:
                     *    Default: 2
                     *    Range: 1..4294967040
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       tb_balance_s0
              Purpose:
                   Controls SMT-cores busy balancing. This balancing attempts to keep compute-bound threads spread across physical resources.
              Values:
                     *    Default: 0 (balancing disabled)
                     *    Range: 0, 1, or 2. A value of 1 indicates balancing enabled within MCMs (S2 groups).
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       tb_balance_s1
              Purpose:
                   Controls chipset busy balancing. This balancing attempts to keep compute-bound threads spread across physical resources.
              Values:
                     *    Default: 1 (balancing enabled system-wide)
                     *    Range: 0, 1, or 2. A value of 0 indicates balancing disabled. A value of 1 indicates balancing enabled within MCMs (S2 groups).
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       tb_threshold
              Purpose:
                   Number of ticks to consider a thread busy for optimization purposes for thread_busy load balancing. This balancing attempts to keep
                   compute-bound threads spread across physical resources.
              Values:
                     *    Default: 100 (1 second)
                     *    Range: 10 to 1000 (0.1 to 10 seconds)
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:

                   N/A
       timeslice
              Purpose:
                   The number of clock ticks a thread can run before it is put back on the run queue.
              Values:
                     *    Default: 1
                     *    Range: a positive integer value
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   Increasing this value can reduce overhead of dispatching threads. The value refers to the total number of clock ticks in a timeslice and
                   only affects fixed-priority processes.
              Refer To:
                   Modification of the scheduler time slice with the schedo command
       unboost_inflih
              Purpose:
                   Enables (1) or disables (0) the unboost of the hot lock priority in the flih. When disabled, the unboost occurs in the dispatcher.
              Values:
                     *    Default: 1 (enabled)
                     *    Range: 0...1
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   N/A
       %usDelta
              Purpose:
                   Used to adjust system clock with each clock tick in the correction range -1 to +1 seconds.
              Values:
                     *    Default: 100
                     *    Range: 0 to 100
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   This is used to adjust clock drifts.
       v_exempt_secs
              Purpose:
                   Sets the number of seconds that a recently resumed process that was previously suspended is exempt from suspension.
              Values:
                     *    Default: 2
                     *    Range: 0 or a positive number
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   This parameter is only examined if thrashing is occurring.
              Refer To:
                   VMM memory load control facility and VMM memory load control tuning with the schedo command.
       v_min_process
              Purpose:
                   Sets the minimum number of processes that are exempt from suspension.
              Values:
                     *    Default: 2
                     *    Range: 0 or a positive number
                     *    Type: Dynamic
              Diagnosis:

                   N/A
              Tuning:
                   This number is in addition to kernel processes, processes with fixed priority less than 60, processes with pinned memory, or processes
                   awaiting events. This parameter is only examined if there are threads on the suspended queue.
              Refer To:
                   VMM memory load control facility and VMM memory load control tuning with the schedo command.
       v_repage_hi
              Purpose:
                   Sets the system wide criteria used to determine when process suspension begins and ends (system is thrashing).
              Values:
                     *    Default: 6 unless system RAM is 128 MB or more (in this case it is 0)
                     *    Range: 0 or a positive number
                     *    Type: Dynamic
              Diagnosis:
                   If v_repage_hi * page_outs/sec is > page_steals, then processes may get suspended.
              Tuning:
                   If system is paging and causing scheduler to think it is thrashing but thrashing is not actually occurring, then it may be useful to
                   desensitize the algorithm by decreasing the -h value or setting it to 0.
              Refer To:
                   VMM memory load control facility and VMM memory load control tuning with the schedo command.
       v_repage_proc
              Purpose:
                   Sets the per-process criterion used to determine which processes to suspend.
              Values:
                     *    Default: 4
                     *    Range: 0 or a positive number
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   This requires a higher level of repaging by a given process before it is a candidate for suspension by memory load control. This
                   parameter is examined only if thrashing is occurring.
              Refer To:
                   VMM memory load control facility and VMM memory load control tuning with the schedo command.
       v_sec_wait
              Purpose:
                   Sets the number of seconds to wait after thrashing ends before making suspended processes runnable.
              Values:
                     *    Default: 1
                     *    Range: 0 or a positive number
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:
                   This parameter is examined only if thrashing is occurring.
              Refer To:
                   VMM memory load control facility and VMM memory load control tuning with the schedo command.
       vpm_xvcpus
              Purpose:
                   Specifies the number of virtual processors to enable in addition to the number of virtual processors that are needed to consume the
                   physical processor utilization.
              Values:
                     *    Default: 0 (on)
                     *    Range: -1 to INT_MAX
                     *    Type: Dynamic
              Diagnosis:
                   N/A
              Tuning:

                   A value of -1 disables this functionality.
Examples
       1    To list the current and reboot value, range, unit, type and dependencies of all tunables parameters managed by the schedo command, enter:

            schedo -L
       2    To list (spreadsheet format) the current and reboot value, range, unit, type and dependencies of all tunables parameters managed by the schedo
            command, enter:

            schedo -x
       3    To reset v_sec_wait to default, enter:

            schedo -d v_sec_wait
       4    To display help on sched_R, enter:

            schedo -h sched_R
       5    To set v_min_process to 4 after the next reboot, enter:

            schedo -r -o v_min_process=4
       6    To permanently reset all schedo tunable parameters to default, enter:

            schedo -p -D
       7    To list the reboot value for all schedo parameters, enter:

            schedo -r -a

Related Information

       The vmo command, ioo command, no command, nfso command, raso command, tunchange command, tunsave command, tunrestore command, tuncheck command, and
       tundefault command.

       Kernel Tuning in AIX 5L Version 5.3 Performance Tools Guide and Reference

       AIX 5.2 compatibility mode in Performance management.

icon phone
Téléphone/Whatsapp : +33 (0)6 83 84 85 74
icon phone