Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración del sistema: administración avanzada |
1. Administración de terminales y módems (descripción general)
2. Configuración de terminales y módems (tareas)
3. Gestión de puertos de serie con Service Access Facility (tareas)
4. Gestión de recursos del sistema (descripción general)
5. Visualización y cambio de la información del sistema (tareas)
6. Gestión del uso de discos (tareas)
7. Gestión de cuotas de UFS (tareas)
8. Programación de tareas del sistema (tareas)
9. Gestión de contabilidad del sistema (tareas)
10. Contabilidad del sistema (referencia)
11. Rendimiento de los recursos del sistema (descripción general)
12. Gestión de procesos del sistema (tareas)
Gestión de procesos del sistema (mapa de tareas)
Comandos para gestionar procesos del sistema
Uso de comandos y sistema de archivos /proc
Gestión de procesos con comandos de proceso (/proc)
Cómo visualizar información sobre los procesos
Terminación de un proceso (pkill, kill)
Cómo terminar un proceso (pkill)
Cómo terminar un proceso (kill)
Depuración de un proceso (pargs, preap)
Gestión de información de clase de proceso (mapa de tareas)
Gestión de información de clase de proceso
Cambio de prioridad de programación de procesos (priocntl)
Cómo visualizar información básica sobre clases de proceso (priocntl)
Cómo visualizar la prioridad global de un proceso
Cómo designar una prioridad de proceso (priocntl)
Cómo cambiar los parámetros de programación de un proceso de tiempo compartido (priocntl)
Cómo cambiar la clase de un proceso (priocntl)
Cambio de prioridad de un proceso de tiempo compartido (nice)
Resolución de problemas de procesos del sistema
13. Supervisión del rendimiento del sistema (tareas)
14. Resolución de problemas de software (descripción general)
15. Gestión de los mensajes del sistema
16. Gestión de archivos del núcleo central (tareas)
17. Gestión de información sobre la caída del sistema (tareas)
18. Resolución de diversos problemas de software (tareas)
19. Resolución de problemas de acceso a archivos (tareas)
20. Resolución de incoherencias en el sistema de archivos UFS (tareas)
21. Resolución de problemas del paquete de software (tareas)
La siguiente lista identifica las clases de programación de procesos que se pueden configurar en el sistema. También se incluye el rango de prioridad de usuario para la clase de tiempo compartido.
Las clases de programación de procesos posibles son las siguientes:
Reparto equitativo (FSS)
Fija (FX)
Sistema (SYS)
Interactivo (IA)
Tiempo real (RT)
La prioridad proporcionada por el usuario oscila entre -60 y +60.
La prioridad de un proceso se hereda del proceso principal. Esta prioridad se conoce como prioridad de modo de usuario.
El sistema busca la prioridad de modo de usuario en la tabla de parámetros de distribución de tiempo compartido. Luego, el sistema agrega prioridad (proporcionada por el usuario) en cualquier nice o priocntl y garantiza un rango entre 0 y 59 para crear una prioridad global.
La prioridad de programación de un proceso es la prioridad asignada por el programador del proceso, según las directivas de programación. El comando dispadmin muestra las directivas de programación predeterminadas. Para obtener más información, consulte la página del comando man dispadmin(1M).
Puede utilizar el comando priocntl para asignar procesos a una clase de prioridad y gestionar las prioridades del proceso. Para obtener instrucciones sobre el uso del comando priocntl para gestionar procesos, consulte Cómo designar una prioridad de proceso (priocntl).
$ priocntl -l
Ejemplo 12-5 Visualización de información básica sobre clases de proceso (priocntl)
El siguiente ejemplo muestra el resultado del comando priocntl -l.
# priocntl -l CONFIGURED CLASSES ================== SYS (System Class) TS (Time Sharing) Configured TS User Priority Range: -60 through 60 FX (Fixed priority) Configured FX User Priority Range: 0 through 60 IA (Interactive) Configured IA User Priority Range: -60 through 60
$ ps -ecl
La prioridad global se muestra en la columna PRI.
Ejemplo 12-6 Visualización de la prioridad global de un proceso
El siguiente ejemplo muestra el resultado del comando ps -ecl. Los valores de la columna PRI muestran que el proceso pageout tiene la prioridad más alta, mientras que el proceso sh tiene la prioridad más baja.
$ ps -ecl F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME COMD 19 T 0 0 0 SYS 96 f00d05a8 0 ? 0:03 sched 8 S 0 1 0 TS 50 ff0f4678 185 ff0f4848 ? 36:51 init 19 S 0 2 0 SYS 98 ff0f4018 0 f00c645c ? 0:01 pageout 19 S 0 3 0 SYS 60 ff0f5998 0 f00d0c68 ? 241:01 fsflush 8 S 0 269 1 TS 58 ff0f5338 303 ff49837e ? 0:07 sac 8 S 0 204 1 TS 43 ff2f6008 50 ff2f606e console 0:02 sh
Los roles incluyen autorizaciones y comandos con privilegios. Para obtener más información sobre los roles, consulte Configuración de RBAC (mapa de tareas) de Guía de administración del sistema: servicios de seguridad.
# priocntl -e -c class -m user-limit -p pri command-name
Ejecuta el comando .
Especifica la clase dentro de la cual se ejecutará el proceso. Las clases válidas son TS (tiempo compartido), RT (tiempo real), IA (interactivo), FSS (reparto equitativo) y FX (prioridad fija).
Al utilizar la opción -p, se especifica la cantidad máxima que se puede aumentar o reducir la prioridad.
Permite especificar la prioridad relativa en la clase RT para un subproceso de tiempo real. Para un proceso de tiempo compartido, la opción -p permite especificar la prioridad proporcionada por el usuario, que oscila entre -60 y +60.
# ps -ecl | grep command-name
Ejemplo 12-7 Designación de una prioridad de proceso (priocntl)
El siguiente ejemplo muestra cómo iniciar el comando find con la prioridad más alta posible proporcionada por el usuario.
# priocntl -e -c TS -m 60 -p 60 find . -name core -print # ps -ecl | grep find
Los roles incluyen autorizaciones y comandos con privilegios. Para obtener más información sobre los roles, consulte Configuración de RBAC (mapa de tareas) de Guía de administración del sistema: servicios de seguridad.
# priocntl -s -m user-limit [-p user-priority] -i idtype idlist
Permite establecer el límite superior del rango de prioridad de usuario y cambiar la prioridad actual.
Al utilizar la opción -p, se especifica la cantidad máxima que se puede aumentar o disminuir la prioridad.
Permite designar una prioridad.
Utiliza una combinación de xidtype y xidlist para identificar el proceso o los procesos. xidtype especifica el tipo de ID, como el ID de proceso o el ID de usuario. Utilice xidlist para identificar una lista de ID de proceso o de usuario.
# ps -ecl | grep idlist
Ejemplo 12-8 Cambio de los parámetros de programación de un proceso de tiempo compartido (priocntl)
El siguiente ejemplo muestra cómo ejecutar un comando con un segmento de tiempo de 500 milisegundos, una prioridad de 20 en la clase RT y una prioridad global de 120.
# priocntl -e -c RT -m 500 -p 20 myprog # ps -ecl | grep myprog
# priocntl -s -c class -i idtype idlist
Permite establecer el límite superior del rango prioridad de usuario y cambiar la prioridad actual.
Especifica la clase, TS para tiempo compartido o RT para tiempo real, a la cual cambia el proceso.
Utiliza una combinación de xidtype y xidlist para identificar el proceso o los procesos. xidtype especifica el tipo de ID, como el ID de proceso o el ID de usuario. Utilice xidlist para identificar una lista de ID de proceso o de usuario.
Nota - Debe ser superusuario o trabajar en un shell de tiempo real para cambiar un proceso de tiempo real o para convertirlo en proceso de tiempo real. Si, como superusuario, cambia un proceso de usuario a la clase de tiempo real, el usuario no puede, posteriormente, cambiar los parámetros de programación en tiempo real mediante el comando priocntl -s.
# ps -ecl | grep idlist
Ejemplo 12-9 Cambio de la clase de un proceso (priocntl)
El siguiente ejemplo muestra cómo cambiar todos los procesos que pertenecen al usuario 15249 para procesos en tiempo real.
# priocntl -s -c RT -i uid 15249 # ps -ecl | grep 15249
El comando nice sólo se admite para compatibilidad de retroceso con versiones anteriores de Solaris. El comando priocntl proporciona más flexibilidad en la gestión de procesos.
La prioridad de un proceso está determinada por las directivas de su clase de programación y por su número de nice. Cada proceso de tiempo compartido tiene una prioridad global. La prioridad global se calcula agregando la prioridad proporcionada por el usuario, que puede estar influenciada por el comando nice o priocntl, y la prioridad calculada por el sistema.
El número de prioridad de ejecución de un proceso es asignado por el sistema operativo. El número de prioridad está determinado por varios factores, incluidos la clase de programación del proceso, el tiempo de uso de la CPU y, en el caso de un proceso de tiempo compartido, su número de nice.
Cada proceso de tiempo compartido se inicia con un número de nice predeterminado, que hereda de su proceso principal. El número de nice se muestra en la columna NI del informe ps.
Un usuario puede disminuir la prioridad de un proceso aumentando la prioridad proporcionada por el usuario. Sin embargo, sólo un superusuario puede reducir el número de nice para aumentar la prioridad de un proceso. Esta restricción evita que los usuarios aumenten las prioridades de sus propios procesos y monopolicen una mayor porción de la CPU.
Los números de nice oscilan entre 0 y +39, donde 0 representa la prioridad más alta. El valor predeterminado de nice para cada proceso de tiempo compartido es 20. Hay dos versiones disponibles del comando: la versión estándar, /usr/bin/nice, y el comando de shell C incorporado.
Mediante este procedimiento, un usuario puede disminuir la prioridad de un proceso. Sin embargo, el superusuario puede aumentar o disminuir la prioridad de un proceso.
Nota - Esta sección describe la sintaxis del comando /usr/bin/nice, pero no el comando nice de shell C incorporado. Para obtener información sobre el comando nice de shell C, consulte la página del comando man csh(1).
El siguiente comando nice ejecuta el comando nombre-comando con una prioridad inferior aumentando el número de nice 5 unidades.
$ /usr/bin/nice -5 command-name
En el comando anterior, el signo menos indica que lo que aparece a continuación es una opción. Este comando también se puede especificar de la siguiente manera:
% /usr/bin/nice -n 5 command-name
El siguiente comando nice disminuye la prioridad del comando nombre-comando aumentando el número de nice 10 unidades (valor predeterminado de aumento), sin sobrepasar el valor máximo de 39.
% /usr/bin/nice command-name
El siguiente comando nice aumenta la prioridad del comando nombre-comando disminuyendo el número de nice 10 unidades, sin sobrepasar el valor mínimo de 0.
# /usr/bin/nice --10 command-name
En el comando anterior, el primer signo menos indica que lo que aparece a continuación es una opción. El segundo signo menos indica un número negativo.
El siguiente comando nice disminuye la prioridad del comando nombre-comando aumentando el número de nice 5 unidades, sin sobrepasar el valor máximo de 39.
# /usr/bin/nice -5 command-name
Véase también
Para obtener más información, consulte la página del comando man nice(1).