Está en la página 1de 34

Una Introduccin a la Monitorizacin de Recursos en UNIX

Una Introduccin a la Monitorizacin y Ajuste de Recursos en UNIX


(Versin 1.5) Puedes descargar la ltima versin de este documento de: http://blog.unlugarenelmundo.es/?page_id=127

Jos Mara Morales Vzquez


josemaria@morales-vazquez.com

Resumen: Una de las actividades ms importantes a la hora de realizar pruebas de prestaciones es la monitorizacin de los servidores objeto de las pruebas con el fin de comprender que es lo que est pasando en ellos y cual es la causa de que devuelvan un determinado rendimiento en cada momento de la realizacin de dichas pruebas. Cuando realizamos pruebas sobre un servidor NT, las herramientas de prestaciones suelen conectar directamente con el monitor del sistema operativo (perfmon) proporcionndonos de forma grfica y/o analtica los mismos datos que este presenta a travs de su utilidad grfica de monitorizacin. Cuando realizamos pruebas de prestaciones sobre servidores UNIX, es decir en el 95% de los casos, los medios que nos proporcionan las herramientas de prestaciones suelen ser insuficientes y se limitan a un subconjunto de datos tomados de la ejecucin remota de comandos que recogen estadsticas publicadas por el sistema con rmstat o rexec:vmstat o iostat. No obstante, no tenemos porque conformarnos con estos datos cuando disponemos de toda una amplia coleccin de comandos que nos permiten recoger medidas directamente a travs del sistema operativo. El principal problema al que nos enfrentamos es el desconocimiento de los mismos. Los comandos de identificacin del hardware o el software de una mquina no suelen ser estndar y aqu aparecen los propios de las plataformas Solaris, los mas extendidos en ambientes de produccin. Los dems comandos, bien hayan tenido su origen en plataformas UNIX o LINUX pueden encontrarse disponibles en la actualidad para la prctica totalidad de las plataformas existentes.

Una Introduccin a la Monitorizacin de Recursos en UNIX

ndice
1. Introduccin. 2. Algunos conceptos previos. 3. Identificacin de recursos en un sistema UNIX. 3.1. Identificacin del hard are en un sistema !un !olaris. 3.2. Identificacin del soft are en un sistema !un !olaris. 3.3. Identificacin de la configuracin en un sistema !un !olaris. 3.4. Identificacin de usuarios en un sistema !un !olaris. 4. $omandos de monitori%acin. 4.1. $omandos de monitori%acin polivalentes. 4.2. &onitori%acin de $'U(s. 4.3. &onitori%acin de 'rocesos. 4.4. &onitori%acin de *iscos. 4.,. &onitori%acin de la red. 4.6. &onitori%acin de la &emoria. 4.). -isuali%ando los l.mites de nuestro sistema. ,. 'lanificacin programada de la monitori%acin. 6. A/ustando algunos par0metros. ). 1i2liograf.a. 3 4 6 6 " 1# 11 12 12 16 1) 1+ 21 23 2, 2) 3# 34

Una Introduccin a la Monitorizacin de Recursos en UNIX

1. Introduccin.
As como en el mundo de los ordenadores domsticos y estaciones de trabajo ms del 80% de los sistemas operativos pertenecen a la familia de Windows, en el mundo de los grandes servidores estas cifras se invierten y nos encontramos con que ms del 80% de las mquinas corren algn tipo de UNIX: Sun Solaris, IBM AIX, HP-UX, etc. La monitorizacin de recursos en sistemas operativos de Microsoft se basa fundamentalmente en el uso de la herramienta perfmon y la nica complicacin reside en elegir correctamente, de entre las miles de opciones posibles, los parmetros que nos van a reportar informacin verdaderamente til. En las mquinas UNIX tenemos dos grandes problemas. El primero se deriva de sus dimensiones: se trata casi siempre de grandes servidores de varios procesadores, con cantidades de memoria del orden de Gigabytes, multiples discos agrupados en volmenes RAID, decenas de usuarios simultneos y cientos de procesos corriendo en paralelo en cada instante de tiempo. El segundo problema suele ser nuestro gran desconocimiento del sistema operativo unido a que en UNIX las cosas no son tan sencillas como en los sistemas de la empresa de Redmon. No obstante, casi todos los datos estn ah: tan disponibles como a travs del monitor de prestaciones de Windows. Algunas veces mucho ms. El sistema operativo recoge de forma continua exhaustivas mediciones de todo lo que pasa y las almacena en ficheros de texto o en tablas temporales. Tan slo hay que conocer los comandos que nos devuelven estas mediciones y nos las presentan de forma adecuada. Como digo, lo ms importante es conocer que comando debemos de usar. Una vez hecho esto los sistemas UNIX ponen a nuestro servicio un potente manual (ejecutar man seguido del comando cuya informacin deseamos ampliar). Cuando un determinado comando no tiene entrada en el manual del sistema suele responder a la opcin H o h para presentar ayuda en lnea. Por todo ello, este documento no ser un compendio exhaustivo de todas las opciones posibles de cada uno de los comandos presentados, sino que se limitar a introducirlos y a presentar las opciones ms tiles de los mismos. En este documento se proporciona informacin de todos los comandos necesarios para realizar una completa vigilancia en una mquina UNIX. No obstante, hay que resear que en UNIX hay decenas de formas de hacer lo mismo. Dada la gran diversidad de comandos he intentado elegir los que ms informacin proporcionan, los que estn ms extendidos en las distintas versiones de UNIX o, simplemente, los que conozco. Si puedes aportar algn comando nuevo, ms til y/o que proporcione mayor o mejor informacin a los aqu expuestos comuncamelo y ser incluido en las siguientes versiones de este documento.

Una Introduccin a la Monitorizacin de Recursos en UNIX

2. Algunos conceptos previos.


Puesto que no debemos de olvidar que el objetivo final de nuestra monitorizacin es auxiliarnos en la realizacin de unas pruebas de prestaciones, creo necesario antes de empezar, la introduccin y definicin de algunos conceptos importantes. Los cuatro conceptos que no debemos de olvidar a la hora de realizar las pruebas son latencia, rendimiento, utilizacin y eficiencia:

Latencia. Bsicamente, mide el tiempo transcurrido entre la realizacin de una peticin y el comienzo de la visualizacin o ejecucin de los resultados. Se mide en unidades de tiempo (segundos, milisegundos...) Rendimiento. Demanda de trabajo capaz de ser procesada satisfactoriamente por un sistema por unidad de tiempo. Se mide en hits por segundo, Kbytes por hora, Mbytes por da, etc. Utilizacin. La utilizacin mide la fraccin de un componente o servicio que estamos usando realmente. Es uno de los parmetros mas comprometidos. Los administradores de sistemas se sienten seguros si la utilizacin es baja, pero esto limita el rendimiento. Tampoco podemos maximixar la utilizacin porque corremos el riesgo de bloquear el sistema ante un aumento inesperado de carga. Adems, muchos componentes (utilizacin de CPU, por ejemplo) ofrecen sus mejores prestaciones cuando trabajan en torno al 70-80% de su utilizacin, presentando peor comportamiento por encima de esta cifra. Eficiencia o eficacia. Se define habitualmente como el cociente entre rendimiento y utilizacin.

En el terreno que nos ocupa, nuestro objetivo ha de ser disminuir la latencia y aumentar los otros tres parmetros: rendimiento, utilizacin y eficiencia.

Calidad de servicio. En sentido amplio, se define como la satisfaccin por parte del cliente de sus distintas necesidades de acuerdo con sus requisitos. En el campo que nos ocupa, son tres los parmetros que miden la calidad del servicio: Tiempo de respuesta ante las peticiones. Probabilidad de error, rechazo o prdida de las peticiones. Cadas o interrupciones de servicio.

Una Introduccin a la Monitorizacin de Recursos en UNIX

Cuello de botella. Elemento software o hardware de un sistema que limita su rendimiento y/o las prestaciones que este ofrece. Todo sistema, por muy potente que sea, posee cuellos de botella: son los eslabones ms dbiles que nos delimitan la verdadera fuerza de nuestro sistema. No obstante, no siempre tenemos la obligacin de encontrarlos: basta con asegurar con que la calidad de servicio ser aceptable de acuerdo a los requisitos exigidos. Demanda de trabajo. Peticiones generadas por los clientes y que deben de ser atendidas por el sistema. Prestaciones del sistema. Comportamiento del sistema frente a la demanda de trabajo.

Una Introduccin a la Monitorizacin de Recursos en UNIX

3. Identificacin de recursos en un sistema UNIX.


Todos los sistemas UNIX poseen un juego de comandos para identificar el hardware instalado. Desgraciadamente estos comandos son, en la mayora de los casos, dependientes del fabricante del sistema operativo. Nos centraremos aqu en la plataforma ms importantes y extendida: Sun Solaris. Dividiremos esta informacin en cuatro apartados aunque, a veces, la informacin que ofrecen se solapa:

Identificacin del hardware. Identificacin del software. Identificacin de la configuracin. Identificacin de usuarios.

3.1. Identificacin del hardware en un sistema Sun Solaris.

Informacin proporcionada: Plataforma hardware. comando: /usr/bin/uname i salida de ejemplo:


SUNW Ultra!"nterprise

Informacin proporcionada: Procesadores. psrin#o (processors information). comando: /usr/sbin/psrin#o $ salida de ejemplo:
Status o# pro%essor & as o#: &1/17/&2 12:&':2( )ro%essor has been on!line sin%e &1/&'/&2 2&:*':&( the spar% pro%essor operates at (&& +,- and has pro%essor. Status o# pro%essor 1 as o#: &1/17/&2 12:&':2( )ro%essor has been on!line sin%e &1/&'/&2 2&:*':&7 the spar% pro%essor operates at (&& +,- and has pro%essor. Status o# pro%essor ( as o#: &1/17/&2 12:&':2( )ro%essor has been on!line sin%e &1/&'/&2 2&:*':&7 the spar% pro%essor operates at (&& +,- and has pro%essor. Status o# pro%essor ' as o#: &1/17/&2 12:&':2( )ro%essor has been on!line sin%e &1/&'/&2 2&:*':&7 the spar% pro%essor operates at (&& +,- and has pro%essor.

a spar% #loating point

a spar% #loating point

a spar% #loating point

a spar% #loating point

Una Introduccin a la Monitorizacin de Recursos en UNIX

Informacin proporcionada: Cantidad de Memoria RAM disponible. prt%on# (print system configuration). comando: /usr/sbin/prt%on# . grep +emor/ salida de ejemplo:
+emor/ si-e: (&01 +egab/tes

Informacin proporcionada: Tamao, en bytes, de las pginas de memoria. comando: /usr/bin/pagesi-e salida de ejemplo:
2102

Informacin proporcionada: Informacin del subsistema de discos comando: /usr/sbin/$3print !l salida de ejemplo:
4is5 group: rootdg 6roup: in#o: %opies: minors: 4is5: in#o: asso%: #lags: de$i%e: de$in#o: 4is5: in#o: asso%: #lags: de$i%e: de$in#o: rootdg dgid=0(1111171.1&2'.sun2' n%on#ig=de#ault nlog=de#ault 7=& %&t&d& dis5id=0(1111100.1&(2.sun2' de$i%e=%&t&d&s2 t/pe=sli%ed auto%on#ig pubpath=/de$/$3/dmp/%&t&d&s1 pri$path=/de$/$3/dmp/%&t&d&s7 publen=17172(0* pri$len=*'0& %&t1d& dis5id=0(1111177.1&*1.sun2' de$i%e=%&t&d&s2 t/pe=sli%ed auto%on#ig pubpath=/de$/$3/dmp/%&t&d&s( pri$path=/de$/$3/dmp/%&t&d&s* publen=17172(0* pri$len=*'0&

Subdis5: %&t&d&!&2 in#o: dis5=%&t&d& o##set=& len=1&27&2' asso%: $ol=root$ol ple3=root$ol!&1 8o##set=19 #lags: enable bus/ de$i%e: de$i%e=%&t&d&s2 path=/de$/$3/dmp/%&t&d&s1 dis5de$=1''/1 ... ... )le3: home!&1 in#o: len=1&(1*0 t/pe: la/out=:;N:<= state: state=<:=>?" 5ernel="N<@A"4 io=read!Brite asso%: $ol=home sd=%&t&d&!&1 #lags: bus/ %omplete ... ...

Una Introduccin a la Monitorizacin de Recursos en UNIX


?olume: in#o: t/pe: state: asso%: poli%ies: #lags: logging: appre%o$: de$i%e: perms: ... ... opt len='12&711 uset/pe=#sgen state=<:=>?" 5ernel="N<@A"4 ple3es=opt!&1 opt!&2 read=C;UN4 e3%eptions=6"N_4"=_S)<CS" open Briteba%5 t/pe=C"6>;N loglen=& serial=&/& 8disabled9 seDno=& minor=2 bde$=1'1/2 %de$=1'1/2 path=/de$/$3/ds5/rootdg/opt user=root group=root mode=&1&&

Informacin proporcionada: Diagnstico del hardware prt diag (print diagnostic information). comando: /usr/plat#orm/E$er nota7/sbin/prtdiag nota: tenemos un directorio distinto por cada plataforma de hardware diferente. El nombre de la plataforma se puede obtener con uname i o uname a). salida de ejemplo:
S/stem :on#iguration: Sun +i%ros/stems sun(u Sun "nterprise ('& 82 F UltraS)<C:!>> 201+,-9 S/stem %lo%5 #reDuen%/: 00 +,+emor/ si-e: '12 +egab/tes ========================= :)Us ========================= @rd !!! SGS SGS :)U +odule !!! !!!!!!! 1 1 * * Cun +,!!!!! 201 201 "%a%he +@ !!!!!! 2.& 2.& :)U >mpl. !!!!!! US!>> US!>> :)U +as5 !!!! 2.& 2.&

========================= +emor/ ========================= @an5 !!!! & & & & >nterl$. 6roup !!!!! none none none none So%5et Name !!!!!! 10&1 10&2 10&* 10&( Si-e 8+@9 !!!! 122 122 122 122 Status !!!!!! ;H ;H ;H ;H

========================= >; :ards ========================= No #ailures #ound in S/stem ===========================

Una Introduccin a la Monitorizacin de Recursos en UNIX

3.2. Identificacin del software en un sistema Sun Solaris

Informacin proporcionada: Versin del Sistema Operativo. comando: /usr/bin/uname !r salida de ejemplo:
'.1

Informacin proporcionada: Lista de todos los paquetes instalados. p5gin#o ( package information). comando: /usr/bin/p5gin#o !l salida de ejemplo:
)H6>NS=: N<+": :<="6;CG: <C:,: ?"CS>;N: @<S"4>C: ?"N4;C: )S=<+): >NS=4<=": "+<>A: S=<=US: J>A"S: S+:lso# lso# appli%ation spar% (.(' /usr/lo%al ?i% <bell Ste$e :hristensen <ug 2* 2&&1 11:2* ste$eIsm%.$net.net %ompletel/ installed 2* installed pathnames 22 shared pathnames ' dire%tories ( e3e%utables 1((2 blo%5s used 8appro39

)H6>NS=: SUNWar% N<+": <r%hi$e Aibraries :<="6;CG: s/stem <C:,: spar% ?"CS>;N: 11.1.& C"?=1007.&7.1'.21.(1 @<S"4>C: / ?"N4;C: Sun +i%ros/stems >n%. 4"S:: s/stem libraries in ar%hi$e 8ar9 #ormat #or so#tBare de$elopment o# stati%all/ lin5ed e3e%utables )S=<+): on207!pat%hm1110'1*0 >NS=4<=": ;%t 12 2&&1 1(:*' ,;=A>N": )lease %onta%t /our lo%al ser$i%e pro$ider S=<=US: %ompletel/ installed J>A"S: 11' installed pathnames 7 shared pathnames 2 lin5ed #iles 1& dire%tories 102(' blo%5s used 8appro39 ... ...

Una Introduccin a la Monitorizacin de Recursos en UNIX

10

3.3. Identificacin de la configuracin en un sistema Sun Solaris.

Informacin proporcionada: Nombre de la mquina. comando: /usr/bin/uname !n salida de ejemplo:


goliath

Informacin proporcionada: Informacin bsica del sistema. comando: /usr/bin/uname !a salida de ejemplo:
Sun;S sun2' '.1 6eneri%_1&'121!21 sun(u spar% SUNW Ultra!(

Informacin proporcionada: Informacin extendida del sistema. comando: /usr/bin/uname !F salida de ejemplo:
S/stem = Sun;S Node = goliath Celease = '.1 Hernel>4 = 6eneri%_1&'121!21 +a%hine = sun(u @us=/pe = Eun5noBn7 Serial = Eun5noBn7 Users = Eun5noBn7 ;"+K = & ;riginK = 1 Num:)U = 2

Informacin proporcionada: Direccin(es) IP de la mquina. i#%on#ig (interface configuration). comando: /usr/sbin/i#%on#ig !a salida de ejemplo:
lo&: #lags=2(0EU) A;;)@<:H CUNN>N6 +UA=>:<S=7 mtu 22*2 inet 127.&.&.1 netmas5 ##&&&&&& hme&: #lags=21*EU) @C;<4:<S= N;=C<>A"CS CUNN>N6 +UA=>:<S=7 mtu 1'&& inet 102.112.2.1'& netmas5 ######&& broad%ast 102.112.2.2''

Una Introduccin a la Monitorizacin de Recursos en UNIX

11

3.4. Identificacin de usuarios en un sistema Sun Solaris.

Informacin proporcionada: Usuarios conectados al sistema. comando: /usr/bin/Bho salida de ejemplo:


Lmm$ #pe httpusr pts/1' pts/17 pts/11 Man 17 &2:12 Man 17 12:'2 Man 17 12:1& 8102.112.2.1229 8102.112.2.1&29 8102.112.2.1*&9

Informacin proporcionada: Informacin sobre los ltimos logins y logouts. comando: /usr/bin/last salida de ejemplo:
Lmm$ #pe httpusr httpusr Lmm$ httpusr Lgarrid1 ls% ls% httpusr Lmm$ httpusr Lmm$ Lmm$ ... ... pts/1 pts/17 pts/1 pts/10 pts/17 pts/11 pts/11 pts/17 pts/12 pts/1 pts/17 pts/11 pts/1 pts/1 102.112.2.*2 102.112.2.1&2 102.112.2.*2 102.112.2.*2 102.112.2.1&2 102.112.2.1*& goliath %rispin 102.112.2.*1 102.112.2.*1 102.112.2.217 102.112.2.'2 pedrin pedrin =hu =hu =hu =hu =hu =hu =hu =hu =hu =hu =hu =hu =hu =hu Man Man Man Man Man Man Man Man Man Man Man Man Man Man 17 17 17 17 17 17 17 17 17 17 17 17 17 17 12:'2 12:'2 12:(1 12:20 12:1' 12:1& 1&:*' 1&:&7 1&:&( 1&:&& &0:'0 &0:27 &0:2' &0:17 ! 1*:&0 8&&:1&9 still logged in ! 12:'' 8&&:&09 ! 12:*1 8&&:&79 ! 12:'2 8&&:*19 still logged in ! 1&:'2 8&&:229 ! 1&:11 8&&:&*9 ! 12:*2 8&2:*(9 ! 12:** 8&2:*29 ! 1&:&1 8&&:&79 ! 1&:1( 8&&:(79 ! &0:'* 8&&:279 ! &0:21 8&&:&(9

Informacin proporcionada: Lista de procesos pertenecientes a un usuario. ps (process status). comando: /usr/bin/ps #u NuseridO salida de ejemplo:
U>4 Lmm$ ls% )>4 11022 1171* ))>4 1102& 11711 : & & S=>+" 12:'2:*0 &2:17:(0 ==G pts/17 pts/1' =>+" :+4 &:&& !5sh &:&& 5sh

Una Introduccin a la Monitorizacin de Recursos en UNIX

12

4. Comandos de monitorizacin.
Al igual que nos ocurra con los comandos de identificacin, los comandos de monitorizacin son difcilmente encasillables en una categora concreta de informacin. No obstante intentaremos presentarlos divididos en cinco grupos:

Comandos de monitorizacin polivalentes (memoria, CPU, discos, etc.) Monitorizacin de CPUs Monitorizacin de procesos. Monitorizacin de discos. Monitorizacin de la red.

4.1. Comandos de monitorizacin polivalentes.

$mstat (Virtual Memory Statistic). A pesar de su nombre, este comando ofrece mucho ms que un anlisis de la memoria del sistema. A travs de el podemos obtener datos del estado de los procesos, la utilizacin de la CPU, la utilizacin de memoria, el trfico en los discos, etc. Veremos, a continuacin, un breve resumen de la poderosa funcionalidad de este comando. la sintaxis de la llamada es la siguiente:
$mstat Eop%iones7 Einter$alo de medi%iPn7 EnQ de muestras7.

La primera lnea es una media de los valores tomados desde el ltimo arranque del sistema y, generalmente, no debe de tenerse en cuenta. Vemos un listado tpico tras la ejecucin de $mstat ' '
pro%s r b B & & & & & & & & & & & & & & & memor/ sBap #ree 21112 2&(72 1*07222 2211 1*0722& 7071 1*07222 70&( 1*07272 2&11 re ( 12 11 1' 7 page m# pi po #r de (' ' *0 (& & 1& * 1' 1( & 0 1 12 2& & 1* *1&( 112 & 1 1 21 01 & dis5 sr #& s& s1 s2 1 & 1 1 0 & & ' ' 11 21 & & & 1 1( & & & 11 17 & 1 & 2 in '*( 7&1 '1' '2' '2' #aults %pu s/ %s us s/ 2117 071 * * 1127 1&1* * ' (&20 1&*0 1 1 **11 1&17 & & (217 1&'* 2 1 id 0' 02 02 00 07

Veamos algunos de los datos ms importantes que nos ofrece el comando: Procesos: La columna r (ready) indica el nmero de procesos en cola de listos para su ejecucin. La columna b (blocked for resources) indica los procesos en espera de una operacin de i/o . Por ltimo, la columna w (swapped) sumariza los procesos que han sido llevados al area de swapping en los ltimos segundos. Un sistema saludable debera de cumplir las siguientes condiciones: el nmero de procesos en la columna r debera de ser permanentemente inferior a cuatro veces el nmero de CPUs del sistema. Lo contrario podra indicar saturacin en el

Una Introduccin a la Monitorizacin de Recursos en UNIX

13

tiempo de proceso. Las columna b debera de ser 0 casi siempre. valores continuamente por encima de este valor indican un cuello de botella en algn disco, interfaz de red, etc. la columna w tambin debera de valer, casi siempre, 0. Otros valores pueden indicar falta de memoria fsica. Memoria: las columna swap y free nos indican la memoria disponible para swapping y la memoria fsica disponible respectivamente. Ambas estn expresadas en kbytes. Disco: reporta informacin sobre el nmero de operaciones por segundo realizadas sobre lo cuatro primeros discos del sistema. No es una medicin muy til: ver mejor el comando sar para estos datos. CPU: Muestra el porcentaje de dedicacin de CPU en tres columnas: usuario (us), sistema (sy) y desocupado o en espera (id). sr: Nos muestra la actividad del demonio encargado de la paginacin medido en pginas por segundo. Es el indicador ms crtico que podemos tener de falta de memoria. En versiones anteriores a Solaris 8, si presenta valores por encima de 200 pginas por segundo durante un periodo razonable de tiempo, es seal de que necesitamos ms memoria. En Solaris 8 podemos decir lo mismo si esta columna es superior a cero. En Linux la ejecucin de $mstat es ligeramente diferente. En este sistema, nuestros indicadores ms valiosos de falta de memoria son dos columnas etiquetadas como so y si que indican la cantidad de swap-out y swap-in respectivamente. Valores altos durante largos periodos en estas columnas nos indican que estamos cortos de memoria.

sar (System Activity Reporter). Es, al igual que $mstat, un comando polivalente que nos permite obtener datos sobre datos de disco, utilizacin de CPU, utilizacin de memoria, etc. La sintaxis de la llamada es:
sar Eop%iones7 Einter$alo de medi%iPn7 EnQ de medi%iones7.

Ejecutado sin opciones de intervalo y nmero de ejecuciones nos muestra un resumen de las ltimas 24 horas. Veremos a continuacin algunas de las opciones ms tiles: sar u Utilizacin de la CPU. ejemplo: sar u 1& *
Sun;S goliath '.1 6eneri%_1&'121!21 sun(u 12:&0:1' 12:&0:2' 12:&0:*' 12:&0:(' Rusr ( 0 1 Rs/s * ' ( RBio 1 1 2 Ridle 02 21 22 &1/21/&2

Una Introduccin a la Monitorizacin de Recursos en UNIX


<$erage 1 * 1 20

14

Una gran aportacin frente a $mstat es que, en el listado anterior, nos separa en dos columnas independientes los datos correspondientes a la espera de i/o (wio) y la cpu desocupada (idle) que en una ejecucin de $mstat aparecen sumadas bajo la columna (id). sar r Utilizacin de memoria. Ejemplo: sar r ' 1&
Sun;S pedrin '.1 6eneri%_1&'121!21 sun(u 12:1':&' #reemem #reesBap 12:1':1& 1&2* 22&2'&2 12:1':1' 1&(( 270170* 12:1':2& 1&'' 2701717 12:1':2' 1&(( 2701'11 12:1':*& 1&72 2710(7( 12:1':*' 1127 2702&2* 12:1':(& 11*2 27022(2 12:1':(' 1122 22&**'7 12:1':'& 1&71 2702112 12:1':'' 1&&2 22&**22 <$erage 1&7& 270((21 &1/21/&2

Atencin: Las medidas estn expresadas en pginas libres (ver comando pagesize.) sar d Utilizacin de los discos.
Sun;S pedrin '.1 6eneri%_1&'121!21 sun(u 12:12:*2 12:12:*7 de$i%e #d& n#s1 sd& sd& a sd& b sd& % sd& e sd& # sd& g sd& h sd1 sd1 a sd1 % sd1 d sd1 e sd2 sd2 % sd2 d sd2 e sd* sd* % sd* d Rbus/ & & & & & & & & & & & & & & & ( & & ( 1 & & a$Due &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.( &.& &.& &.( &.& &.& &.& rSB/s & & & & & & & & & & & & & & & 2 & & 2 1 & & &1/21/&2 bl5s/s & & & & & & & & & & & & & & & 1(1 & & 1(1 *2 & & a$Bait &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& a$ser$ &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& &.& (2.2 &.& &.& (2.2 12.( &.& &.&

Una Introduccin a la Monitorizacin de Recursos en UNIX


sd* e sd21 st12 1 & & &.& &.& &.& 1 & & *2 & & &.& &.& &.& 12.( &.& &.&

15

Aqu vemos la segunda gran aportacin de este comando frente a vmstat: nos muestra el porcentaje de utilizacin de cada una de las particiones del disco (%busy) . Otras opciones interesantes de este comando son: !b. !%. !g. !p. !D. !B.

Actividad de la cach. lamadas al sistema. !nformacin de pageout. !nformacin de pagein. "stadsticas so#re la cola de procesos en espera de $%&. "stadsticas de actividad de swapping.

top. El comando top da una buena idea general de la salud de un sistema UNIX. Se trata de una herramienta de libre distribucin que, dada su gran utilidad y sencillez, est disponible en la mayora de las plataformas. La salida tpica de un comando top es la siguiente:

last pid: 207(1T load a$erages: &.27 &.*( &.(& 17:(2:&1 1'0 pro%esses: 1'2 sleeping 1 on %pu :)U states: 21.(R idle 7.(R user (.1R 5ernel 1.1R ioBait &.&R sBap +emor/: '12+ real 2&&2H #ree 1(10+ sBap in use 1*22+ sBap #ree )>4 (*(( 112 207(1 22*'& 17'0& 20&07 2010& 20112 222'0 2222' 22'&& ''' '7* 20&0' 1&2&1 US"CN<+" =,C )C> N>:" S>U" C"S S=<=" httpusr 21 '2 & *2+ 2*+ sleep httpusr 22 (0 & ('+ *(+ sleep Lmm$ 1 '* & 2*2&H 12&2H %pu/* httpusr * '2 & 7(2&H *'1&H sleep httpusr 2* '0 & 71+ 20+ sleep httpusr * (2 & 7('1H *(11H sleep httpusr * '2 & 72&2H *102H sleep httpusr * '2 & 7((2H *(2(H sleep httpusr * '2 & 7*02H *(72H sleep httpusr * '2 & 7*1&H **12H sleep httpusr * '2 & 7*2(H *(1(H sleep root 1 '2 & '1'2H 27((H sleep root 1 '2 & '11(H 20((H sleep httpusr * '2 & 172&H *22(H sleep httpusr 21 '2 & '2+ 2&+ sleep =>+" 2(1:22 17(:'0 &:&& &:&* (&:'& &:&2 &:&& &:&2 &:&2 &:&2 &:&2 (7:&2 (7:'1 &:&1 1:1* :)U 1.'1R 1.&*R &.1'R &.21R &.2&R &.2&R &.12R &.17R &.11R &.11R &.11R &.1'R &.1'R &.1&R &.&0R :;++<N4 ns!slapd ns!slapd top ns!pro3/ La$a ns!pro3/ ns!pro3/ ns!pro3/ ns!pro3/ ns!pro3/ ns!pro3/ Lre Lre ns!pro3/ La$a

Pulsando la tecla h durante la ejecucin del comando nos aparece un panel de ayuda de las opciones disponibles en el modo interactivo, desde el cual podemos enviar una seal de kill a un proceso, decirle que no nos muestre los procesos en estado idle, cambiar el nmero de procesos que se visualizan o el campo por el que estos se muestran ordenados.

Una Introduccin a la Monitorizacin de Recursos en UNIX

16

Para los fanticos de X11 existen dos comandos mucho menos funcionales que estos pero que nos pueden mostrar algunos indicadores del sistema de forma ms amigable e intuitiva: 3load y 3os$ieB.

4.2. Monitorizacin de CPUs.

mpstat (Multi Processor Statistics). En sistemas multiprocesador, muestra un informe de actividad desglosado por procesador. La ejecucin va acompaada, al igual que otros comandos similares, del intervalo de medicin y el nmero de muestras tomadas. Ejemplo: mpstat ' '&
:)U & 1 ( ' :)U & 1 ( ' :)U & 1 ( ' :)U & 1 ( ' :)U & 1 ( ' :)U & 1 ( ' min# 17 1( 11 12 min# 1& '& 2 & min# 2 *1 1& 17 min# & & 22 21 min# 1'& 112 1'& 21& min# ** & & 1& mL# & & & & mL# & & & & mL# & & & & mL# & & & & mL# & & & & mL# & & & & 3%al 712 1*&( 122( (70 3%al (2& 707 *2 2& 3%al *72 20(2 2* 20 3%al *70 (0 1271 (2 3%al (*( 12' ''1 *1* 3%al *1* (2 *0 2'2 intr *17 1(& 12* 1*7 intr *11 1*& 117 12( intr *21 127 110 12& intr *1' 1** 111 1*& intr *11 10* 110 121 intr *1* 1*2 11( 122 ithr 1&7 2( 1& 2( ithr 1&( 10 ' 0 ithr 111 11 1* 11 ithr 1&1 2& 2 12 ithr 1&* 71 * 12 ithr 1&* 2' ' 1& %sB *(0 *10 *7& (&0 %sB *1& *7* *2& (&2 %sB *2' (12 *&' ('2 %sB *7& (10 *&& (2' %sB *1( (22 *21 (11 %sB *(* *0' *12 *77 i%sB 1( 1' 1( 11 i%sB 1( 11 12 11 i%sB 11 1' 7 11 i%sB 11 1( 2 12 i%sB 1' 11 11 1( i%sB 12 1* 1& 1* migr '2 '' '1 '1 migr 1( 71 71 72 migr 7( 7* '' 21 migr 1' 7* 1( 71 migr 10 70 72 7& migr 1( 12 71 1( smt3 11 1* 1( 22 smt3 11 11 1' 10 smt3 17 1' 1& 2* smt3 11 12 1& 10 smt3 11 1* 11 2& smt3 1( 11 1& 11 srB & & & & srB & & & & srB & & & & srB & & & & srB & & & & srB & & & & s/s%l 1112 122& 1217 1*&' s/s%l 070 11&2 1212 1&21 s/s%l 02( 11*7 721 1221 s/s%l 1&2& 11'1 27' 112* s/s%l 00& 1*70 1*(* 1'0* s/s%l 1&12 1&12 1&71 1&71 usr ' ' ( ( usr & 1 1 & usr & 2 & 1 usr 2 1 & 1 usr 1 2 2 2 usr & & & 1 s/s * ' ( 2 s/s & 2 & & s/s & 1 27 1 s/s & & 21 & s/s 2 * * ( s/s & & & 1 Bt 2 2 2 2 Bt 2 2 1 1 Bt 1 12 * 1 Bt ( * 1 * Bt 1 1 & 1 Bt 1 1 1 & idl 0& 22 20 01 idl 02 01 07 00 idl 00 70 7& 02 idl 0( 01 72 01 idl 01 0( 0' 0* idl 00 00 00 07

Al igual que hace el comando sar, separa en dos mediciones independientes el tiempo de CPU desocupada (idl) y el de espera de procesos de i/o (wt).

Una Introduccin a la Monitorizacin de Recursos en UNIX

17

4.3. Monitorizacin de Procesos.

uptime. Muestra un breve resumen del estado del sistema. Un ejemplo de la salida de este comando es la siguiente:
up 0 da/8s9 2&:'' 2 users load a$erage: &.*1 &.*0 &.(2

':27pm

Los tres ltimos datos mostrados son la carga media (load average) del sistema en los ltimos periodos de 1, 5 y 10 minutos respectivamente. La carga media del sistema se mide realizando la media de los procesos encolados a la espera de procesador y es un dato muy significativo del estado del sistema. Un sistema que mantiene permanentemente por encima de 4 veces su nmero de procesadores su load average del ltimo minuto presenta, normalmente, sntomas de sobrecarga. Ms informacin til proporcionada pro este comando: el tiempo transcurrido desde la ltima vez que se reinici el sistema y el nmero de usuarios conectados en este momento contra el. ps (Process Status). Muestra informacin sobre los procesos activos, su estado y varias medidas de alto inters referidas a ellos como el porcentaje de tiempo de procesador invertido en ellos, la memoria que consumen, tiempo acumulado de ejecucin, propietario, etc. Usndolo con la opcin aux nos muestra los procesos ordenados por porcentaje consumido de CPU. Puesto que la lista en un entorno cargado puede estar llena de innumerables procesos insignificantes, conviene realizar un filtro con el comando head, por ejemplo para ver los 10 procesos que ms CPU consumen en un momento dado ejecutamos lo siguiente:

/usr/u%b/ps au3 . head 1& La salida as obtenida es la siguiente:


US"C httpusr httpusr httpusr root httpusr httpusr httpusr httpusr httpusr httpusr )>4 (*(( 112 21101 * 2'007 27**7 2'0'2 27*(' 2'0(( 27*71 R:)U R+"+ SU (.* &.0 &.* &.* &.* &.* &.* &.2 &.2 &.2 (.' 7.1 &.7 &.& &.7 &.7 &.7 &.7 &.7 &.7 **211 ('211 11'1 & 10'2 1771 1002 112( 7&&2 11&& CSS 2222( *'12& *11& & *(01 **2& *'&( *122 *'12 *1*1 =S ?C ?S ?S ?S ?S ?S ?S ?S ?S ?S S=<C= =>+" :;++<N4 ./ns!slapd ./ns!slapd ./ns!pro3/ #s#lush ./ns!pro3/ ./ns!pro3/ ./ns!pro3/ ./ns!pro3/ ./ns!pro3/ ./ns!pro3/ !# /$ar !# /$ar !d /$ar !d !d !d !d !d !d /$ar /$ar /$ar /$ar /$ar /$ar

Man &0 2(*:12 Man &2 17*:&1 11:**:12 &:&& Man &7 1(*:*2 11:2(:22 &:&2 11:(2:12 &:&1 11:21:(1 &:&* 11:(2:'1 &:&& 11:2&:'2 &:&* 11:'&:&* &:&&

Si deseamos ordenar los procesos por el porcentaje de memoria fsica que ocupan, la opcin a usar en lugar de aux es avx. La columna etiquetada con la letra S muestra es estado del proceso. Dicho estado puede ser uno de los siguientes:

Una Introduccin a la Monitorizacin de Recursos en UNIX

18

R Ejecutndose o a la espera de CPU. <num> - Idem que el anterior. En algunos sistemas multiprocesador se indica, en lugar de la R el nmero del procesador que ejecuta el proceso. S Proceso dormido durante un tiempo inferior a 20 segundos. I Proceso dormido durante ms de 20 segundos. W Proceso en el rea de swap. D Proceso dormido a la espera de entrada/salida. T Proceso dormido por que ha sido suspendido por un usuario. N Proceso con prioridad positiva < - Proceso con prioridad negativa. > - Proceso que ha excedido su lmite de memoria. Z Proceso zombie a la espera de que su proceso padre o alguna operacin de entrada/salida finalicen antes de que acaben con el. P Proceso dormido a la espera de una peticin de pgina en disco.

Si lo que queremos son los datos concretos de un proceso cuyo pid conocemos, el comando a ejecutar es el siguiente: ps #p Epid7 o bien: /usr/u%b/ps . grep Epid7 4.4. Monitorizacin de Discos.

iostat (Input/Output Statistics). Aunque podramos calificarlo tambin como un comando polivalente, (sirve para obtener estadsticas de i/o, actividad en los terminales y dispositivos y actividad en la CPU) nosotros lo usaremos exclusivamente para obtener datos sobre la utilizacin de los discos mediante la opcin xnp. Un ejemplo de ejecucin sera iostat 3np
r/s 2.& &.& &.& &.& 2.& &.& &.& &.& &.1 &.& &.& B/s 2.& &.& &.& &.& 2.& &.& &.& &.& &.' &.& &.& 5r/s 11.2 &.& &.& &.& 11.2 &.& &.& &.& 7.& &.& &.& e3tended de$i%e statisti%s 5B/s Bait a%t$ Bs$%_t as$%_t RB Rb de$i%e **.2 &.* &.1 11.( 2&.0 1 * %1t&d& &.& &.& &.& &.& 7.1 & & %1t&d&s& &.& &.& &.& &.& 1.& & & %1t&d&s1 &.& &.& &.& &.& &.& & & %1t&d&s2 **.2 &.* &.1 11.( 2&.0 1 * %1t&d&s* &.& &.& &.& &.& '.1 & & %1t&d&s( &.& &.& &.& &.& &.& & & %1t&d&s' &.& &.& &.& &.& &.& & & %1t&d&s1 *.' &.& &.& &.7 7.& & & %1t1d& &.& &.& &.& &.& &.& & & %1t1d&s2 &.& &.& &.& &.& *.2 & & %1t1d&s*

Una Introduccin a la Monitorizacin de Recursos en UNIX


&.1 1.2 &.& &.& &.& &.& 1.2 &.& &.& &.' 1.2 &.& &.& &.& &.& 1.2 &.& &.& 7.& 11.2 &.& &.& &.& &.& 11.2 &.& &.& *.( *&.2 &.& &.& &.& &.& *&.2 &.& &.& &.& &.2 &.& &.& &.& &.& &.2 &.& &.& &.& &.1 &.& &.& &.& &.& &.1 &.& &.& &.7 11.1 &.& &.& &.& &.& 11.1 &.& &.& 7.& 2&.* &.& &.& &.& (.7 2&.* &.& &.& & & & & & & & & & & 2 & & & & 2 & & %1t1d&s( %1t2d& %1t2d&s& %1t2d&s1 %1t2d&s2 %1t2d&s* %1t2d&s( %1t2d&s' %1t2d&s1

19

d# (Disk Free). Visualiza informacin sobre la cantidad de espacio libre en el disco. Algunos ejemplos de ejecucin comentados:

Una Introduccin a la Monitorizacin de Recursos en UNIX

20

d# 5 Muestra informacin de la ocupacin, en kbytes, de todos los filesystems


Jiles/stem /de$/$3/ds5/root$ol /de$/$3/ds5/usr /pro% #d /de$/$3/ds5/$ar /de$/$3/ds5/opt sBap 5b/tes used 20&&1' *270' 12727(0 110212' & & & & 1'27111 1&0(2'7 1(&(227 12&717( 1'*1&& *2&22 a$ail %apa%it/ 22221( 1'R 2*1'' 00R & &R & &R *7177' 7'R 1(1'12 0&R 11''12 2'R +ounted on / /usr /pro% /de$/#d /$ar /opt /tmp

d# 5 E#ile s/stem7 Muestra informacin de ocupacin unicamente del sistema donde reside el directorio especificado, por ejemplo: d# 5 /$ar/tmp/presta%iones
Jiles/stem /de$/$3/ds5/$ar 5b/tes used 1'27111 1&0(211 a$ail %apa%it/ *71711 7'R +ounted on /$ar

d# 5 . Muestra informacin de ocupacin del sistema donde reside el directorio desde el que se ejecuta el comando:
Jiles/stem /de$/$3/ds5/tresdg/home 5b/tes used a$ail %apa%it/ +ounted on 12&17' 1&*('0 (100 01R /home

du (Disk Usage). Sirve para obtener el tamao de los ficheros. La opcin ms interesante es 5a, la cual muestra el tamao en kbytes de todos los ficheros y directorios de forma recursiva desde el directorio de ejecucin del comando. Un listado de ejemplo:
1 1 1 * 1 1 1 ( 11 ./.pro#ile ./.%shr% ./.login ./.sh_histor/ ./s%ripts/#oto.sh ./s%ripts/sar.aB5 ./s%ripts/sar.sh ./s%ripts .

Una Introduccin a la Monitorizacin de Recursos en UNIX

21

bonnie. Quizs no tan extendida como el resto de las herramientas vistas en este documento, bonnie es un excelente instrumento para determinar la capacidad en lectura y escritura del sistema de ficheros de nuestras mquinas. Lo siguiente es un ejemplo de ejecucin:

Jile V./@onnie.22*1V si-e: 1&(2'71&& Writing Bith put%89...done CeBriting...done Writing intelligentl/...done Ceading Bith get%89...done Ceading intelligentl/...done See5er 1...See5er 2...See5er *...start Vem...done...done...done... !!!!!!!SeDuential ;utput!!!!!!!! !!!SeDuential >nput!! !!Candom!! !)er :har! !!@lo%5!!! !CeBrite!! !)er :har! !!@lo%5!!! !!See5s!!! +a%hine +@ H/se% R:)U H/se% R:)U H/se% R:)U H/se% R:)U H/se% R:)U /se% R:)U 1&& 11'& 1'.& 1701 12.2 11(1 1(.1 2*70 22.* *22' 2&.( 12.' (.0

4.5. Monitorizacin de la red.

ping. La utilidad ping enva paquetes ICMP con eco al host deseado. Se trata de uno de los comandos ms conocidos y simples que nos puede aportar fcilmente una idea de la latencia de nuestra red. Usndolo con la opcin !s tenemos una ejecucin continua hasta que es interrumpida (por ejemplo pulsando Control+C). Al final de la ejecucin obtendremos una breve estadstica de resultados: ping s sun1&
)>N6 goliath.uni3.enterprise: '1 data b/tes 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: 1( b/tes #rom goliath.uni3.enterprise 8102.112.2.(9: W: !!!!goliath.uni3.enterprise )>N6 Statisti%s!!!! 1 pa%5ets transmitted 1 pa%5ets re%ei$ed &R pa%5et round!trip 8ms9 min/a$g/ma3 = &/1/' i%mp_seD=&. i%mp_seD=1. i%mp_seD=2. i%mp_seD=*. i%mp_seD=(. i%mp_seD='. loss time=&. time=*. time='. time=&. time=&. time=&. ms ms ms ms ms ms

Los tiempos tpicos en una red Ethernet poco congestionada varan alrededor de menos de 1 y 3 milisegundos. El round-trip o viaje de ida y vuelta mostrado al final es, quizs, el parmetro ms importante. Nos muestra como vemos tres datos: el mnimo, la media y el mximo de entre todos los pings efectuados. Tiempos muy altos o con grandes diferencias entre estos tres parmetros suelen ser sntomas de una red congestionada o en la que, de una forma u otra, tenemos prdida de paquetes en algn punto de la misma.

Una Introduccin a la Monitorizacin de Recursos en UNIX

22

tra%eroute. Nos proporciona, al igual que el comando ping, la latencia del sistema, pero en este caso desglosada por cada uno de los saltos que siguen nuestros paquetes TCP/IP. En sistemas windows tenemos un comando similar llamado tra%ert. Un ejemplo de ejecucin: tra%eroute enterprise&22
1 2 * ( E1& E1& E1& E1& ms ms ms ms 1& E1& E1& E1& ms ms ms ms E1& E1& E1& E1& ms ms ms ms mad!rout1!1.enterprise X102.112.2.1Y nb3#01.enterprise X102.112.227.'1Y 102.112.11*.'' enterprise&22 X102.112.1.(&Y

$omo vemos' en cada (salto) el comando hace una consulta inversa al servidor *+, esto retrasa la visualizacin de los resultados. %ara eliminar esta consulta ejecutamos el comando con la opcin n (!d en .indo.s). tra%eroute n enterprise&22
1 2 * ( E1& E1& E1& E1& ms ms ms ms 1& E1& E1& E1& ms ms ms ms E1& E1& E1& E1& ms ms ms ms 102.112.1(.1 102.112.227.'1 102.112.11*.'' 102.112.1.(&

time. Otro comando que nos puede proporcionar una medida de la latencia de la red. "l comando time nos ofece' entre otras cosas' el tiempo entre la ejecucin de un comando - su finalizacin. ,i queremos averiguar' por ejemplo' el tiempo que nos tarda en llegar el contenido de una p/gina .e# sin el coste de interpretacin de su contenido' podemos ejecutar lo siguiente:
time more /home/Lmm$/http/pru/inde3.html 7 /de$/null real user s/s &m&.&2s &m&.&&s &m&.&2s

netstat (Network Status). Herramienta de uso muy generalizado que sirve para diagnosticar problemas en la red y/o monitorizar la actividad en la misma. La ejecucin del comando con la opcin i da la siguiente salida:

Name lo& hme& hme1

+tu 22*2 1'&& 1'&&

Net/4est loopba%5 goliath goliath!1

<ddress lo%alhost goliath goliath!1

>p5ts (21&(21** *20122&0 0'&'222

>errs & & &

;p5ts (21&(21** *71712&2 10101*0*

;errs & & &

:ollis & & &

Zueue & & &

En la ejecucin se presenta una lnea por cada interfaz de red disponible. Brevemente, el significado de algunos de los distintos campos es el siguiente:

Una Introduccin a la Monitorizacin de Recursos en UNIX

23

Name. Nombre del interfaz de red. El interfaz lo0 es especial y loopback con el propio sistema. Ipkts. Nmero de paquetes recibidos. Ierrs. Nmero de errores en los paquetes recibidos. Opkts. Nmero de paquetes totales transmitidos. Oerrs. Nmero de errores en los paquetes transmitidos. Collis. Nmero de colisiones Queue. Paquetes perdidos

define un

Otra opcin interesante puede ser la de obtencin de estadsticas de un determinado protocolo de la familia TCP/IP. Esto lo obtenemos con la opcin s) seguida del nombre del protocolo deseado en minsculas. Un ejemplo: netstat s) t%p.
=:) t%pCto<lgorithm = ( t%pCto+a3 = 1&&&& t%p<%ti$e;pens =702*1& t%p<ttemptJails = (2&17 t%p:urr"stab = 7&& t%p;ut4ataSegs =('0*'&27* t%pCetransSegs =*(1100 t%p;ut<%5 =11*0*&(* t%p;utUrg = 111 t%p;utWin)robe = (21'& t%p;utCsts =2*'171 t%p>nSegs =(11&(1(72 t%p>n<%5Segs =(*0717121 t%p>n4up<%5 =*1(71&7 t%p>n>norderSegs =(*&(7'1(7 t%p>nUnorderSegs = *(1'1 t%p>n4upSegs = '2(*1 t%p>n)art4upSegs = *10' t%p>n)astWinSegs = & t%p>nWin)robe = '70 t%p>n:losed = 11('0 t%pCttUpdate =(*21*112* t%p=imCetrans4rop = 12& t%p=imHeepali$e)robe= 1771( t%pAisten4rop = 12 t%p,al#;pen4rop = & t%pCto+in t%p+a3:onn t%p)assi$e;pens t%p"stabCesets t%p;utSegs t%p;ut4ata@/tes t%pCetrans@/tes t%p;ut<%54ela/ed t%p;utWinUpdate t%p;ut:ontrol t%p;utJastCetrans t%p>n<%5@/tes t%p>n<%5Unsent t%p>n>norder@/tes t%p>nUnorder@/tes t%p>n4up@/tes t%p>n)art4up@/tes t%p>n)astWin@/tes t%p>nWinUpdate t%pCttNoUpdate t%p=imCetrans t%p=imHeepali$e t%p=imHeepali$e4rop t%pAisten4ropZ& = (&& = !1 =1&(&22( = 101(( =(7117&71* =2112&1&7& =(12112&'1 =20'012& = **('* =*2'(&*' =1'77'* =22'22'2(7 = & =*7*1(*12'( =*2((0'10 =102&110 =1772&(' = & = 17011 =2(2'(( =*(**&0 = (2111 = 17 = &

ntop. Utilsima herramienta para monitorizar la actividad general en la red pero que, desgraciadamente, no est tan extendida como su prima (top) entre sistemas no LINUX.

4.6. Monitorizacin de la Memoria. Antes de comenzar este punto es necesario diferenciar entre dos conceptos bien diferentes pero que a menudo se confunden y se usan de forma equivocada: paging y swapping. Un

Una Introduccin a la Monitorizacin de Recursos en UNIX

24

sistema que est haciendo paging (paginando) est escribiendo paginas de uso infrecuente de memoria a disco. mientras que un sistema que est haciendo swapping , est copiando procesos completos en ejecucin de memoria a disco. El paginado no es un sntoma de que nuestro sistema est corto de memoria, mientras que el swapping frecuente si suele ser indicativo de falta de memoria.

memstat 8Memory Statistic9. Solaris, a partir de su versin 7, introduce nuevas estadsticas para la medicin de la utilizacin de la memoria que pueden visualizarse con la herramienta memstat. Un ejemplo de ejecucin de este parmetro presenta la siguiente informacin:
memor/ !!!!!!! paging!!!!!!!!e3e%utable! !anon/mous!!!#iles/s ! !!!%pu !!! #ree re m# pi po #r de sr epi epo ep# api apo ap# #pi #po #p# us s/ Bt id (0'2( & 1 ' & & & & & & & & & & ' & & 1 1 1 07 '10(( & 1 & & & & & & & & & & & & & & & & & 1&&

Al igual que ocurra en vmstat' la primera lnea es una media desde el 0ltimo rearranque de la m/quina - es desecha#le. memstat divide la actividad de paginacin en tres categoras diferentes: ejecuta#le' annima - por operaciones del sistema de ficheros. os sistemas desahogados de memoria de#eran de tener valores de peque1a actividad en las columnas epf - apo. 2alores elevados en estas columnas indican que nuestro sistema est/ corto de memoria.

ua3. 3erramienta ha#itual en los sistemas ,olaris' aunque no pertenece al sistema operativo. +os da un report de la utilizacin de la memoria tal - como el que sigue a continuacin:
S S=<C= =>+" :;++<N4 ; 17:**:*' &:&& /usr/u%b/ps ua3 S +a/ 2( 1:10 #s#lush S +a/ 2( *:1& /et%/init ! S +a/ 2( 1:&( /usr/sbin/s/slog = +a/ 2( &:11 s%hed S +a/ 2( &:&& pageout S 11:17:'7 &:&& !%sh

US"C )>4 R:)U R+"+ SU CSS == root 117'' &.1 1.& 1((2 12&2 pts/& root * &.1 &.& & & ? root 1 &.1 &.1 22*2 12& ? root 117 &.1 1.* *222 1'*1 ? root & &.& &.& & & ? root 2 &.& &.& & & ? Lmm$ 1((2' &.& &.0 1(2( 1&22 pts/&

pmap. %osi#lemente es el mejor comando del que disponemos para conocer la utilizacin que hace de la memoria un proceso determinado en sistemas ,olaris. la ejecucin - ejemplo de salida es como sigue:

/usr/pro%/bin/pmap 3 pro%ess!id "Lemplo: /usr/pro%/bin/pmap 3 1((2'


14485: -csh Address Kbytes Resident Shared Private Permissions Mapped File

Una Introduccin a la Monitorizacin de Recursos en UNIX

25

00010000 00042000 00046000 FF200000 FF2B0000 FF300000 FF320000 FF330000 FF340000 FF378000 FF382000 FF390000 FF3A0000 FF3B0000 FF3DC000 FFBE4000 -------total Kb

144 16 136 648 40 16 8 8 168 40 8 8 8 120 8 48 -----1424

144 8 16 112 608 536 40 16 16 8 8 136 40 8 8 8 120 120 8 48 ------ -----1320 688

136 16 112 72 40 8 8 136 40 8 8 48 -----632

read/exec read/write/exec read/write/exec read/exec read/write/exec read/exec read/exec read/write/exec read/exec read/write/exec read/write/exec read/exec read/write/exec read/exec read/write/exec read/write

csh csh [ heap ] libc.so.1 libc.so.1 libc_psr.so.1 libmapmalloc.so.1 libmapmalloc.so.1 libcurses.so.1 libcurses.so.1 [ anon ] libdl.so.1 [ anon ] ld.so.1 ld.so.1 [ stack ]

#ree. No se suele ver mucho fuera de los sistemas LINUX. Permote ver un resumen del estado de la memoria de la mquina:
used 1&**'1& 111*2 *2& #ree 2'02 1&10'2& 21(12( shared 2'01 bu##ers 2(2(2 %a%hed 0*2&2&

total +em: 1&*11'2 !/S bu##ers/%a%he: SBap: 21'&1(

4.7. Visualizando los lmites de nuestro sistema.

ulimit. Permite visualizar y, en algunos casos, modificar los lmites de nuestro sistema. con la opcin aS lista todos los lmites soft actuales mientras que con la opcin a, lista los lmites hard (los de todo el sistema). Los lmites soft son lmites por defecto digamos como barreras de peligro que el propio usuario puede modificar mediante la utilidad ulimit. Los lmites hard son los lmites absolutos del sistema y nadie puede traspasarlos. Es preciso tener privilegios de root para realizar cualquier modificacin sobre ellos.. Veamos unos ejemplos de ejecucin: ulimit aS
time8se%onds9 #ile8blo%5s9 data85b/tes9 sta%585b/tes9 %oredump8blo%5s9 no#iles8des%riptors9 $memor/85b/tes9 unlimited unlimited unlimited 2102 unlimited 1( unlimited

Una Introduccin a la Monitorizacin de Recursos en UNIX ulimit a,


time8se%onds9 #ile8blo%5s9 data85b/tes9 sta%585b/tes9 %oredump8blo%5s9 no#iles8des%riptors9 $memor/85b/tes9 unlimited unlimited unlimited unlimited unlimited 1&2( unlimited

26

Una Introduccin a la Monitorizacin de Recursos en UNIX

27

5. Planificacin programada de la monitorizacin.


En todos los sistemas UNIX existe un demonio llamado cron encargado de ejecutar tareas en determinados momentos con una gran flexibilidad en la planificacin del momento de la ejecucin. Se maneja mediante el comando crontab. Para poder usar dicho comando es preciso que estemos autorizados para ello. Estamos autorizados para usar crontab si:

Nuestro identificador de usuario aparece en el fichero /et%/%ron.d/%ron.alloB o si el fichero /et%/%ron.d/%ron.alloB no existe y nuestro identificador de usuario no aparece en el fichero /et%/%ron.d/%ron.den/

La forma de usar crontab es la siguiente:


%rontab e. Edita el fichero de planificacin del usuario con el editor por defecto, tipicamente vi. %rontab l. Viualiza el contenido del fichero de planificacin del usuario.

Un fichero de planificacin consta de cero, una o ms lneas de texto. En cada lnea deben de aparecer cinco columnas de informacin separadas por uno o ms espacios. Un ejemplo vlido de fichero de planificacin es el siguiente: & *&

( ' 1& 12!17

1& [

12 12

[ &

/usr/home/Lmm$/bat1.sh /usr/home/Lmm$/bat2.sh

Primera columna: minuto de ejecucin. Rngo vlido: 0 a 59. Segunda columna: hora de ejecucin. Rango vlido: 0 a 23 Tercera columna: da de ejecucin. Rango vlido: 1 a 31 Cuarta columna: mes de ejecucin. Rango vlido: 1 a 12 Quinta columna: dia de la semana de ejecucin. Rango vlido: 0 a 6 (0 es el domingo). Sexta columna: comando a ejecutar. Debe de ser un comando vlido, con su path totalmente especificado (desde el raz en absoluto o desde el directorio $HOME en relativo) y sobre el que nuestro usuario tenga permiso de ejecucin.

Cualquiera de las cinco primeras columnas puede ser sustituida por:


Una lista de valores vlidos separados por coma, indicando que el comando se ejecutar cuando se cumpla cualquiera de ellos. Dos valores vlidos separados por un signo menos, indicando que el comando se ejecutar para todos los valores delimitados por ese rango, incluyendo los extremos. Un asterisco, significando que el comando se ejecutar para todos los valores vlidos del rango de la columna.

Una Introduccin a la Monitorizacin de Recursos en UNIX

28

Una Introduccin a la Monitorizacin de Recursos en UNIX

29

En nuestro ejemplo. la primera ejecucin: & ( ' 1& 1& 12 [ /usr/home/Lmm$/bat1.sh

se realizar a las 4, las 5 y las 10 en punto del da 10 de diciembre, independientemente del da de la semana que sea este. La segunda ejecucin: *& 12!17 [ 12 & /usr/home/Lmm$/bat2.sh

se realizar a las 12.30, 13.30, 14.30, 15.30, 16.30 y 17.30 de todos los domingos del mes de diciembre.

Una Introduccin a la Monitorizacin de Recursos en UNIX

30

6. Ajustando algunos parmetros.


Las principales plataformas de sistemas UNIX poseen pginas web con informacin acerca de como ajustar el rendimiento de sus sistemas:

AIX: IRIX: SUN:

http://www.rs6000.ibm.com/resource/technology/sizing.html http://www.sgi.com/tech/web http://www.sun.com/sun-on-net/performance/book2ref.html

Las plataformas AIX y HP-UX tienen sendas utilidades para ajustar los parmetros del kernel que afectan al rendimiento del sistema. Se llaman smit y sam respectivamente. Los parmetros que afectan al rendimiento del protocolo TCP pueden consultarse y/o modificarse mediante la utilidad ndd. Su sintaxis es la siguiente: ndd X!setY dri$er parametro X$alorY Ejemplos:

Para consultar el valor de un parmetro: ndd /de$/t%p t%p_%lose_Bait_inter$al Para modificar el valor de ese parmetro: ndd set /de$/t%p t%p_%lose_Bait_inter$al 1&&&& %ara mostrar una lista con todos los par/metros v/lidos para un driver: ndd /de$/t%p ?

"l significado de muchos de los par/metros que pueden modificarse es oscuro - puede que slo tenga sentido para nosotros con un amplio conocimiento del protocolo - su funcionamiento. "n las p/ginas .e# del servidor de ,&+ - +etscape' i%lanet' aparece una lista con algunos de los par/metros suscepti#les de ser modificados para incrementar el rendimiento de nuestros servidores con unos sucintos - a todas veces insuficientes comentarios acerca de su significado. +o o#stante' constitu-en un #uen punto de partida para comenzar. &n consejo: no ha- que olvidar anotar los valores iniciales antes de modificarlos por si es preciso dar una marcha atr/s.

Una Introduccin a la Monitorizacin de Recursos en UNIX

31

Para mquinas con sistema operativo Solaris, los ajustes recomendados son los siguientes: Parmetro tcp-close_wait_interval tcp_time_wait_interval tcp_conn_req_max_q tcp_conn_req_max_q0 tcp_ip_abort_interval tcp_keepalive_interval Valor por defecto Valor aconsejado Comentarios 240000 60000 240000 60000 Slo en Solaris 7 128 1024 1024 4096 480000 60000 7200000 900000 Ajustar este parmetro para sedes web con elevadas tasas de trfico 3000 - Incrementar este valor si las retransmisiones superan el 30% o 40% 240000 10000 200 3000 32768 1024 1 2 Mejora levemente las transmisiones de pequeas cantidades de datos 8192 32768 Para incrementar el buffer de transmisin 8192 32768 para incrementar el buffer de recepcin.

tcp_rexmit_interval_initial

tcp_rexmit_interval_max tcp_rexmit_interval_min tcp_smallest_anon_port tcp_slow_start_initial

tcp_xmit_hiwat

tcp_recv_hiwat

En el fichero /et%/s/stem tenemos otros tres parmetros que afectan muy directamente el rendimiento de nuestra mquina. Si dichos parmetros no aparecen se toman sus valores por defecto.

rlim_#d_ma3. Lmite hard (o mximo absoluto) para los descriptores de ficheros. Su valor por defecto es de 1024. Podemos mejorar el rendimiento de sedes web con elevado trfico ajustndolo a 8192. rlim_#d_%ur. Lmite soft (o current, actual) de para los descriptores de ficheros Su valor por defecto es de 64. Podemos mejorar el rendimiento subindolo, igualmente a 8192. El lmite soft nunca puede superar al hard.

Una Introduccin a la Monitorizacin de Recursos en UNIX

32

Existe una estrecha relacin entre la pila TCP/IP y el tamao mximo de los posibles descriptores de ficheros disponibles en el sistema. Un servidor no debera de aceptar ninguna conexin si no tiene descriptores de ficheros disponibles para atenderla, por tanto el valor de los parmetros t%p_%onn_reD_ma3_D& y t%p_%onn_reD_ma3_D& nunca deberan de superar el de los parmetros rlim_#d_ma3 y rlim_#d_%ur.

sD_ma3_si-e. Controla el tamao de la colas para los drivers del ssitema. Ajustndolo a 0 la hacemos infinita, es decir, el rendimiento quedar limitado unicamente por el espacio disponible en el buffer. Por defecto este parmetro tiene un valor de 2. ma3upr%. +0mero m/4imo de procesos por identificador de usuario ma3_npro%s. Nmero mximo de procesos concurrentes.

Para modificar cualquiera de estos parmetros tenemos que editar el fichero antes mencionado e incluir (o modificar la existente) una lnea con la siguiente sintaxis: set ma3upr%=21(1 Para mquinas con HP-UX, la lista de ajustes que iPlanet proporciona para la configuracin de TCP es la siguiente: Parmetro tcp_time_wait_interval tcp_conn_req_max tcp_ip_abort_interval tcp_keepalive_interval tcp_rexmit_interval_initial tcp_rexmit_interval_max tcp_rexmit_interval_min tcp_xmit_hiwater_def tcp_recv_hiwater_def Valor por defecto Valor aconsejado 60000 60000 20 1024 600000 60000 72000000 900000 1500 1500 60000 60000 500 500 32768 32768 32768 32768

Para cambiar los lmites en los descriptores de ficheros hard y soft que pueden ser abiertos por cada proceso, los parmetros a ajustar en este sistema operativo se llaman ma3#iles y ma3#iles_lim y se encuentran en el fichero /stand/s/stem. El valor por defecto de cada uno de estos parmetros es de 2048 y es recomendable que sea ajustado a 4096 para sistemas web con elevadas tasas de trfico. Los valores correspondientes al mximo nmero de procesos por identificador de usuario y concurrentes se ajustan, respectivamente, mediante los parmetros ma3upr% y npro%. El mximo nmero de ficheros abiertos se configura con el parmetro n#ile. AIX no proporciona mecanismos para configurar directamente la mayora de los parmetros del kernel. El propio sistema operativo modifica dinmicamente la gestin de recursos hasta

Una Introduccin a la Monitorizacin de Recursos en UNIX

33

unos lmites prefijados y no parametrizables. Podemos ver una lista de los valores actuales de la mayora de estos parmetros mediante el siguiente comando: /et%/lsattr " l s/s& para ver el valor asignado a algn parmetro concreto, por ejemplo maxuproc, ejecutamos lo siguiente: /et%/lsattr " l s/s& a ma3upro% Para cambiar el valor del numero mximo de procesos por identificador de usuario (uno de los escasos configurables por el usuario en este sistema) ejecutamos lo siguiente: /et%/%hde$ l s/s& a ma3upro%=2&& Los lmites, establecidos por el kernel e invariables para otros parmetros importantes son los siguientes:

Lmite soft de descriptores de ficheros por proceso: 2000 Lmite hard de descriptores de ficheros: 2000 Mximo nmero de procesos concurrentes por identificador de usuario: configurable mediante el parmetro visto sin que pueda excederse de 131072. Mximo nmero de procesos concurrentes en el sistema: 131072. Mximo nmero de ficheros abiertos: 200000.

Una Introduccin a la Monitorizacin de Recursos en UNIX

34

7. Bibliografa.
1. 2. 3. 4. 5. 6. 7. 8. A. Cockcroft and R. Pettit. Sun Performance and Tunning (Java and the Internet). 2 edicin. Sun Microsystems Press. A. Cockcroft and B. Walker. Capacity Planning for Internet Services. Sun Mycrosystems Press. P. Killelea and L. Mui Web Performance Tuning: speeding up the web. 2 edicin. OReilly. D. A. Menasce and V. A. F. Almeida. Capacity Planning for Web Performance: Metrics, models and Methods. Prentice Hall. G. D. Musumeci. System Performance Tuning. 2 edicin OReilly. J.R. Fink, M. Sherer, K. Wall and M.D. Sherer. Linux performance Tuning and capacity Planning. Sams. Unix performance Tuning. CMP Books. iPlanet Web Server 4.1 Performance, Tuning, Sizing and Scaling. http://docs.iplanet.com/docs/manuals/enterprise/50/tuning/perf6.0.pdf

También podría gustarte