Tema5

663 views

Published on

  • Be the first to comment

  • Be the first to like this

Tema5

  1. 1. Tema 5.Gestión de los recursos del sistema
  2. 2. Índice1. Introducción2. Control y gestión de la actividad de la CPU3. Control y gestión de la memoria4. Control y gestión de dispositivos de entrada/salida ´ Tema 5. Gestion de los recursos del sistema – p. 2/25
  3. 3. 1. IntroducciónEs muy importante tener información esencial del rendimiento delsistema: procesos en ejecución, cantidad de memoria disponible,espacio disponible en disco, no de particiones, etc.Al determinar un problema de rendimiento del sistema se debe:1. Definir el problema con todo el detalle que sea posible2. Determinar la causa o causas del problema3. Formular explícitamente los objetivos para mejorar el rendimiento del sistema4. Diseñar e implementar las modificaciones al sistema o bien los programas o aplicaciones diseñados para llevar a cabo los objetivos de mejora5. Monitorizar el sistema para determinar si los cambios realizados han sido efectivos6. Ir de nuevo al primer paso y volver a empezar, habrá un nuevo problema a resolver ´ Tema 5. Gestion de los recursos del sistema – p. 3/25
  4. 4. 2. Control y gestión de la actividad de la CPU uptime ⇒ hora actual, cuánto tiempo lleva en marcha el sistema, número de usuarios conectados, y carga media del sistema en los últimos 1, 5 y 15 minutos Valores altos implican que el sistema se está usando mucho, pero ¿cuándo se considera que un valor es alto? Valores bajos no significan que el tiempo de respuesta vaya a ser bajo [pilar@ditec-por1 TEMA5]$ uptime 18:00:41 up 3 min, 1 users, load average: 1.53, 0.97, 0.40 pstree ⇒ visualiza un árbol de los procesos en ejecución init-+-apmd |-atd |-gpm |-login---bash---startx---xinit-+-X | ‘-startkde-+-kwrapper | ‘-ssh-agent |-5*[mingetty] ‘-xinetd ´ Tema 5. Gestion de los recursos del sistema – p. 4/25
  5. 5. 2. Control y gestión de la actividad de la CPU ps ⇒ información sobre los procesos en ejecución USER ⇒ usuario que lanzó el programa PID ⇒ identificador del proceso PPID ⇒ identificador del proceso padre %CPU ⇒ porcentaje entre el tiempo usado realmente y el que lleva en ejecución %MEM ⇒ fracción de memoria consumida (es una estimación) VSZ ⇒ tamaño virtual del proceso (código+datos+pila) en KB RSS ⇒ memoria real usada en KB TTY ⇒ terminal asociado con el proceso STAT ⇒ estado del proceso: R: en ejecución o listo N: prioridad baja (> 0) L: páginas bloqueadas en memoria S: durmiendo <: prioridad alta (< 0) s: líder de sesión T: parado l: tiene multi-thread Z: proceso Zombie +: proceso foreground D: durmiendo ininterrumpible (normalmente E/S) ´ Tema 5. Gestion de los recursos del sistema – p. 5/25
  6. 6. 2. Control y gestión de la actividad de la CPU ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 1732 560 ? S 15:42 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? SN 15:42 0:00 [ksoftirqd/0]root 3 0.0 0.0 0 0 ? S< 15:42 0:00 [events/0]root 4 0.0 0.0 0 0 ? S< 15:42 0:00 [khelper]root 1825 0.0 0.0 1600 560 ? Ss 15:42 0:00 rsyslogd -c 3root 1907 0.0 0.0 4744 1004 ? Ss 15:42 0:00 crondroot 1995 0.0 0.0 1536 424 tty1 Ss+ 15:43 0:00 /sbin/mingetty ttypilar 2463 0.0 0.1 4948 1540 pts/6 Ss+ 15:48 0:00 bashpilar 2494 0.0 0.3 9488 3304 pts/4 S+ 15:49 0:01 vim tema5.texpilar 2521 0.0 0.2 4276 2444 pts/2 S 15:50 0:00 gv tema5.ps ps al | lessF UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND0 500 2414 2397 15 0 4948 1524 wait Ss pts/3 0:00 /bin/bash0 500 2494 2444 16 0 9488 3340 - S+ pts/4 0:01 vim tema5.te0 500 2521 2406 15 0 4276 2444 - S pts/2 0:00 gv tema5.ps0 500 2811 2414 17 0 4608 708 - R+ pts/3 0:00 ps al0 500 2812 2414 15 0 4228 708 pipe_w S+ pts/3 0:00 less ´ Tema 5. Gestion de los recursos del sistema – p. 6/25
  7. 7. 2. Control y gestión de la actividad de la CPU top ⇒ proporciona una visión continuada de la actividad del procesador en tiempo real, muestra las tareas que más uso hacen de la CPU, y tiene una interfaz interactiva para manipular procesos Las cinco primeras líneas muestran información general del sistema: las estadísticas de la orden uptime estadísticas sobre los procesos del sistema (número de procesos, procesos en ejecución, durmiendo, parados o zombies) el estado actual de la CPU (porcentaje en uso por usuarios, por el sistema, por procesos con valor nice positivo, por procesos esperando E/S, desocupada, tratando interrupciones hardware o software, en espera involuntaria por virtualización) la memoria (memoria total disponible, usada, libre, cantidad usada en buffers y en memoria caché de página) el espacio de swap (swap total disponible, usada y libre) ´ Tema 5. Gestion de los recursos del sistema – p. 7/25
  8. 8. 2. Control y gestión de la actividad de la CPU top (continúa. . . ) Los datos de la parte inferior son similares a los del ps, excepto: SHR ⇒ La cantidad de memoria compartida usada por la tarea Los procesos mostrados los ordena decrecientemente por el uso de la CPU La lista se actualiza de forma interactiva, normalmente cada 5 segundos La orden top permite realizar una serie de tareas sobre los procesos, como por ejemplo: Cambiar la prioridad de alguno utilizando la opción “r” Matar o enviar una señal con la opción “k” Ordenarlos según diferentes criterios (por PID con “N”, uso de CPU con “P”, tiempo con “A”, etc.) Con “n” se cambia el número de procesos que se muestran Para salir se utiliza la letra “q” ´ Tema 5. Gestion de los recursos del sistema – p. 8/25
  9. 9. toptop - 18:02:30 up 5 min, 1 users, load average: 0.53, 0.79, 0.39Tasks: 111 total, 3 running, 108 sleeping, 0 stopped, 0 zombieCpu(s): 18.0%us, 6.5%sy, 0.0%ni, 68.7%id, 1.5%wa, 3.5%hi, 1.8%si, 0.0%stMem: 1034268k total, 572476k used, 461792k free, 85168k buffersSwap: 2168764k total, 0k used, 2168764k free, 372724k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2186 root 19 0 150m 17m 2676 R 69.2 1.8 2:10.35 X 2399 pilar 15 0 38296 12m 8508 S 17.4 1.3 0:11.18 gnome-terminal 2948 root 11 -5 3920 640 544 D 4.3 0.1 0:00.48 find 2388 pilar 15 0 34532 15m 12m S 0.3 1.6 0:32.25 kicker 2397 pilar 16 0 34428 14m 11m R 0.2 1.5 0:11.58 konsole 2886 pilar 16 0 2004 1008 788 R 0.2 0.1 0:05.51 top 7 root 10 -5 0 0 0 S 0.1 0.0 0:00.24 kacpid 1 root 16 0 1732 560 480 S 0.0 0.1 0:01.06 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.06 events/0 ´ Tema 5. Gestion de los recursos del sistema – p. 9/25
  10. 10. 2. Control y gestión de la actividad de la CPU mpstat Muestra estadísticas del procesador (o procesadores) junto con la media global de todos los datos mostrados CPU ⇒ número del procesador %user ⇒ porcentaje de uso de la CPU con tareas a nivel de usuario %nice ⇒ porcentaje de uso de la CPU con tareas a nivel de usuario con prioridad “nice” (> 0) %sys ⇒ porcentaje de uso de la CPU para tareas del sistema (no incluye el tratamiento de interrupciones) (modo núcleo) %iowait ⇒ porcentaje de tiempo que la CPU estaba “desocupada” durante el cual el sistema tiene pendientes peticiones de e/s de disco %irq ⇒ porcentaje de tiempo que la CPU gasta con interrupciones %soft ⇒ porcentaje de tiempo que la CPU gasta con interrupciones software %steal ⇒ porcentaje de tiempo empleado en una espera involuntaria de una CPU virtual mientras que el “hypervisor” está sirviendo otro procesador virtual (temas de virtualización) ´ Tema 5. Gestion de los recursos del sistema – p. 10/25
  11. 11. 2. Control y gestión de la actividad de la CPU Estadísticas (continúa . . . ) %idle ⇒ porcentaje de tiempo que la CPU estaba “desocupada” y el sistema no tiene peticiones de disco pendientes intr/s ⇒ no de interrupciones por segundo recibidas por el procesador Sintáxis: mpstat [intervalo] [número] intervalo ⇒ Cada cuántos segundos debe mostrar los datos número ⇒ Cuántos muestreos se solicitan Ejemplo de uso de mpstat[pilar@colon TEMA5] mpstat 2 5Linux 2.6.23.1-21.fc7 (momo.inf.um.es) 21/02/089:56:06 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s9:56:08 all 11,87 0,00 5,05 82,32 0,00 0,76 0,00 0,00 1171,219:56:10 all 1,77 0,00 1,27 94,94 0,25 1,77 0,00 0,00 1183,169:56:12 all 3,05 0,00 1,02 94,67 0,00 1,27 0,00 0,00 1177,669:56:14 all 1,27 0,00 1,27 95,17 0,00 2,29 0,00 0,00 1176,149:56:16 all 2,78 0,00 2,03 93,67 0,00 1,52 0,00 0,00 1191,92Media: all 4,16 0,00 2,13 92,14 0,05 1,52 0,00 0,00 1180,02 ´ Tema 5. Gestion de los recursos del sistema – p. 11/25
  12. 12. 2. Control y gestión de la actividad de la CPU vmstat ⇒ Información sobre la memoria virtual (tb de procesos) r: número de procesos esperando su tiempo de ejecución b: número de procesos en espera ininterrumpible us: tiempo de usuario como porcentaje de tiempo total (modo usuario) sy: tiempo de sistema como porcentaje de tiempo total (modo núcleo) id: tiempo de inactividad como porcentaje de tiempo total wa: tiempo usado en espera de E/S st: mismo campo que steal de la orden mpstat$ vmstat 2 5procs ----------memory--------- --swap-- ---io--- ---system- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 4 132 27952 159652 554488 0 0 6 99 40 11 1 1 56 43 00 4 132 27984 159652 554512 0 0 0 154 1114 627 0 1 0 99 00 4 132 27984 159652 554512 0 0 0 152 1069 329 0 0 0 99 00 4 132 27984 159656 554516 0 0 0 172 1098 681 1 1 0 98 00 4 132 27984 159656 554516 0 0 0 152 1081 660 3 0 5 92 0 ´ Tema 5. Gestion de los recursos del sistema – p. 12/25
  13. 13. 2. Control y gestión de la actividad de la CPU w ⇒ quién está conectado y qué está haciendo JCPU: tiempo usado por todos los procesos asociados a ese terminal (incluye los procesos en background actuales, pero no los pasados) PCPU: tiempo de CPU usado por el proceso actual ¿A qué orden se corresponde la primera línea mostrada? [pilar@dtec pilar]$ w 17:47:49 up 8:52, 5 users, load average: 0.02, 0.09, 0.11 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT pilar tty1 - 10:57am 6:50m 0.12s 0.04s -bash pilar pts/0 - 10:58am 5:36 0.55s 0.01s /bin/bash pilar pts/2 - 10:58am 6:49m 0.05s 0.05s /bin/bash pilar pts/4 - 10:58am 7.00s 9.57s 3.68s vim tema5.tex pilar pts/5 - 5:20pm 0.00s 0.08s 0.02s w ´ Tema 5. Gestion de los recursos del sistema – p. 13/25
  14. 14. 2. Control y gestión de la actividad de la CPU ulimit ⇒ permite controlar los recursos disponibles para una shell y los procesos lanzados por esa shell (cada shell tendrá su restricción) [pilar@ditec TEMA5]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 55296 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited ´ Tema 5. Gestion de los recursos del sistema – p. 14/25
  15. 15. 2. Control y gestión de la actividad de la CPUNúmero nice y prioridad de procesos Linux realiza una planificación por prioridades dinámicas Al lanzar un proceso se le asigna un valor de prioridad estática, número nice. (Por defecto hereda la prioridad estática de su proceso padre) La prioridad dinámica del proceso se calcula en función del número nice, junto con el consumo de CPU realizado Valores bajos (negativos) ⇒ más prioridad Valores altos (positivos) ⇒ menos prioridad Rango de prioridad estática: -20 (máxima) a 20 (mínima) Valor especial: 19 ⇒ sólo se le da la CPU cuando nadie más la quiera Asignar un valor negativo o que disminuya (mejore) la prioridad del pro- ceso sólo puede hacerlo el rootnice -incremento orden_a_ejecutar ⇒ nice -5 konqueror ⇒ Aumentar en 5nice −−10 konqueror ⇒ Decrementar (mejorar) en 10 (sólo puede hacerlo el root)renice nueva_prioridad pid ⇒ renice 14 890 ⇒ prioridad 14 al proceso 890 ´ Tema 5. Gestion de los recursos del sistema – p. 15/25
  16. 16. 2. Control y gestión de la actividad de la CPUSeñales En ocasiones es necesario enviar señales a los procesos: pararlos (SIGSTOP-19), eliminarlos, hacer que continúen (SIGCONT-18), etc. kill [-señal] pid’s ⇒ enviar una señal kill pid’s ⇒ se le dice al proceso que termine, de forma “correcta”, puede ser capturada, envía la señal SIGTERM (15) La señal SIGKILL (9), no puede ser capturada y es seguro que el proceso finaliza killall [-señal] orden ⇒ enviar una señal a todos los procesos «orden», p.e.: killall -15 bash pkill ó skill ⇒ enviar una señal usando el nombre u otros atributos o criterios (uid, gid, terminal, . . . ) Hay procesos que no mueren a pesar de recibir la señal KILL: Procesos zombies Procesos que esperan una petición de E/S realizada a un dispositivo de disco Procesos que esperan un recurso vía NFS que no está disponible ´ Tema 5. Gestion de los recursos del sistema – p. 16/25
  17. 17. 2. Control y gestión de la actividad de la CPUProcesos por lotes Ejecutar tareas a una determinada hora: at at ⇒ ejecutar órdenes a una determinada hora Puede recibir como parámetro un fichero de texto con las órdenes a ejecutar Puede recibir las órdenes a ejecutar de teclado, con un prompt especial (>), (para finalizar Ctrl+D) atd ⇒ demonio encargado de ejecutar las órdenes atq ⇒ consultar la lista de órdenes atrm ⇒ eliminar órdenes [pilar@xxx ˜]$ at 18:40 at> /sbin/controlimpresora at> <EOT> # Finalizar con Ctrl+D job 10 at 2010-01-29 18:40 ´ Tema 5. Gestion de los recursos del sistema – p. 17/25
  18. 18. 2. Control y gestión de la actividad de la CPUProcesos por lotes Ejecutar tareas periódicamente: cron crond ⇒ demonio encargado de ejecutar las órdenes crontab ⇒ establecer las tareas a ejecutar -e ⇒ añadir/modificar tareas -l ⇒ listar las tareas /etc/crontab ⇒ fichero de configuración del administrador /etc/cron.d ⇒ directorio en el que el administrador puede copiar ficheros con formato del crontab que ejecutará cron Formato: minutos hora día_mes mes día_semana tarea5 9 * * * /home/pilar/tareadiaria # 9:0515 14 1 * * $HOME/tareames # 14:15 el primer d´a del mes ı0 22 * * 1-5 $HOME/tareasemanal # 22:00 de lunes a viernes23 0-23/2 * * * $HOME/tareacada2horas # 2, 4, 6, etc., y 23minutos5 4 * * sun $HOME/tareadomingos # Domingo a las 4:050 9 1 * 5 $HOME/otratarea # ¿Cu´ndo? a anacron ejecuta tareas periódicamente, con una frecuencia de un día, (menor precisión que cron, pero complementario) ´ Tema 5. Gestion de los recursos del sistema – p. 18/25
  19. 19. 3. Control y gestión de la memoria El intercambio y la paginación posibilitan la memoria virtual Gestión de RAM + Swap (o zona de intercambio) vmstat swpd: La cantidad de memoria virtual (espacio de intercambio) empleada en KB’s free: La cantidad de memoria sin usar en KB’s buff: La cantidad de memoria empleada como buffers para E/S en KB’s cache: La cantidad de memoria empleada como caché si: Cantidad de memoria traída del espacio de intercambio desde disco en KB/s so: Cantidad de memoria intercambiada al disco en KB/s bi: Bloques recibidos desde un dispositivo de bloques (en bloques/s) bo: Bloques enviados a un dispositivo de bloques (en bloques/s) in: El número de interrupciones por segundo, incluyendo el reloj cs: El número de cambios de contexto por segundo$ vmstat 2 3procs ----------memory--------- --swap-- ---io--- ---system- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 4 132 27952 159652 554488 0 0 6 99 40 11 1 1 56 43 00 4 132 27984 159652 554512 0 0 0 154 1114 627 0 1 0 99 00 4 132 27984 159652 554512 0 0 0 152 1069 329 0 0 0 99 0 ´ Tema 5. Gestion de los recursos del sistema – p. 19/25
  20. 20. 3. Control y gestión de la memoriaEspacio para paginación: ¿Qué tamaño es el adecuado para la partición de intercambio? Depende: Memoria requerida por los trabajos, tamaño de los programas, número de trabajos simultáneos, etc. Demanda del sistema En portátiles: para posibilitar la hibernación, al menos tanto espacio como memoria RAM Se puede utilizar una partición de intercambio o bien un fichero de paginación, ¿qué opción es la mejor? Se puede asignar valores de prioridad, usando la opción pri=valor (números altos significan mayor prioridad) En tiempo de arranque se activan todas las zonas de intercambio o paginación indicadas en el fichero /etc/fstab /dev/sda2 swap swap defaults,pri=5 0 0 /.fichero_swap swap swap defaults,pri=3 0 0 ´ Tema 5. Gestion de los recursos del sistema – p. 20/25
  21. 21. 3. Control y gestión de la memoriaEspacio para paginación: swapon ⇒ activar una partición swapoff ⇒ desactivar una partición. Al desactivar una partición o fichero de paginación ¿cuándo puede usarse para otras cosas? ¿Cómo se crea un fichero de paginación? (Una vez creado hay que añadirlo al fichero /etc/fstab para que se active en cada arranque) dd if=/dev/zero of=/.fichero_swap bs=1048576 count=1024 mkswap /.fichero_swap sync swapon /.fichero_swap free ⇒ obtener información sobre el estado de la memoria, (los campos tienen el mismo significado que en top) total used free shared buffers cached Mem: 643136 623088 20048 0 47660 458060 -/+ buffers/cache: 117368 525768 Swap: 265064 54432 210632 ´ Tema 5. Gestion de los recursos del sistema – p. 21/25
  22. 22. 4. Control y gestión de los dispositivos de entrada/salida Espacio en disco df ⇒ para cada sistema de ficheros informa de su capacidad, del espacio libre y el usado, y del punto de montaje S.ficheros Bloques de 1K Usado Dispon Uso% Montado en /dev/sda3 497699 244502 227493 52% / /dev/sda4 474321 388512 61310 86% /seguridad ser_nfs:/home 3211399 1082140 1963168 36% /home Si el sistema de ficheros raíz se quedase sin espacio (al 100% ocupado) el sistema tendría problemas para funcionar normalmente, por ejemplo no podría arrancar (¿por qué?) Con la opción “-i” muestra la información sobre los nodos-i [root@colon ˜]# df -i /dev/sda1 S.ficheros Nodos-i NUsados NLibres NUso% Montado en /dev/sda1 2317440 263110 2054330 12% / Si el sistema de ficheros raíz se quedase sin nodos-i libres también tendría problemas de funcionamiento (¿por qué?) ´ Tema 5. Gestion de los recursos del sistema – p. 22/25
  23. 23. 4. Control y gestión de los dispositivos de entrada/salida Espacio en disco du ⇒ cantidad de espacio de disco utilizado por un directorio, los ficheros que hay en él y todos sus subdirectorios La última línea contabiliza el espacio de disco total usado por el directorio, sus ficheros y sus subdirectorios ¡Ojo! du cuenta bloques del sistema de ficheros, estén o no completamente ocupados. (Para un fichero de 100 bytes cuenta 4 KB) $ du $ du -h 1000 ./TEMA2 1000K ./TEMA2 1176 ./TEMA1 1.2M ./TEMA1 400 ./TEMA3/figuras 400K ./TEMA3/figuras 4312 ./TEMA3 4.3M ./TEMA3 612 ./PRACTICAS 612K ./PRACTICAS 3332 ./TEMA4 3.3M ./TEMA4 1384 ./TEMA5 1.4M ./TEMA5 11824 . 12M . ´ Tema 5. Gestion de los recursos del sistema – p. 23/25
  24. 24. 4. Control y gestión de los dispositivos de entrada/salida Control dispositivos de E/S iostat [intervalo] [número] ⇒ presenta estadísticas sobre la CPU y los dispositivos y particiones de E/S tps ⇒ no de transferencias por segundo Blk_read/s ⇒ no de bloques leídos por segundo Blk_wrtn/s ⇒ no de bloques escritos por segundo Blk_read ⇒ no total de bloques leídos Blk_wrtn ⇒ no total de bloques escritos avg-cpu: %user %nice %sys %iowait %steal %idle 7,11 0,00 2,67 19,17 0,0 71,05 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 30,89 1599,02 125,43 882867 69256 avg-cpu: %user %nice %sys %iowait %steak %idle 2,50 0,00 7,50 90,00 0,0 0,00 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 128,00 10292,00 0,00 20584 0 ´ Tema 5. Gestion de los recursos del sistema – p. 24/25
  25. 25. 4. Control y gestión de los dispositivos de entrada/salida Control dispositivos de E/S sar ⇒ Muestra información sobre la actividad del sistema (CPU, discos, memoria, dispositivos de red, . . . ) -b ⇒ Estadísticas de E/S y transferencias rtps ⇒ peticiones de lectura por segundo wtps ⇒ peticiones de escritura por segundo bread/s ⇒ Sectores/sg leídos de un dispositivo (512 bytes) bwrtn/s ⇒ Sectores/sg escritos sar -b 2 10 // Formato: opciones [intervalo] [n´mero] u Linux 2.6.19-1.2911.fc6 (momo.inf.um.es) 26/02/07 14:03:59 tps rtps wtps bread/s bwrtn/s 14:04:01 66,50 0,00 66,50 0,00 42127,92 14:04:03 90,91 4,04 86,87 32,32 76707,07 sar puede mostrar nuevas estadísticas o mostrar las almacenadas desde que el sistema arrancó (guardadas en /var/log/sa/) ´ Tema 5. Gestion de los recursos del sistema – p. 25/25

×