La utilidad de monitorización en servidores Web de Sun/Oracle ha mejorado mucho a partir de la versión 7.0. Si bien antes únicamente podíamos acceder a estos datos vía web, ahora podemos hacerlo a través de la shell/CLI wadm, permitiendo acceder a estadísticas a tiempo real de monitorización sin necesidad de hacerlo vía HTTP, con los problemas que conllevaba con el sistema cargado.
La nueva versión, disponible en Sun Java System Web Server, Oracle iPlanet Web Server 7.0 o como lo queráis llamar, añade la posibilidad de ver las Ips y peticiones que se están haciendo a cada instancia y así poder detectar con mayor facilidad el origen de un cuello de botella o sobrecarga del sistema.
Para acceder a wadm nos situamos en la ruta base del servidor web y ejecutamos el siguiente comando indicando usuario y clave de administración:
root@solaris:/opt/oracle/webserver7# ./bin/wadm --user=admin Indique admin-user-password> Conexión a localhost:8989 Oracle iPlanet Web Server 7.0.12 B07/01/2011 03:56 wadm>
Una vez dentro, elegimos la instancia y nodo del que queremos ver las estadísticas y tendremos el volcado de información:
wadm> get-perfdump --config solaris --node localhost
La información que recibimos es la siguiente. Tened en cuenta que es un webserver de prueba por lo que no hay apenas información:
wadm> get-perfdump --config solaris --node localhost
Oracle iPlanet Web Server 7.0.12 B07/01/2011 03:56 (SunOS DOMESTIC)
Server started Sat Feb 11 15:24:28 2012
Process 1133 started Sat Feb 11 15:24:29 2012
ConnectionQueue:
-----------------------------------------
Current/Peak/Limit Queue Length 0/4/16384
Total Connections Queued 20
Average Queue Length (1, 5, 15 minutes) 0,00, 0,00, 0,00
Average Queueing Delay 10,88 milliseconds
ListenSocket http-listener-1:
------------------------
Address https://0.0.0.0:443
Acceptor Threads 1
Default Virtual Server solaris
ListenSocket http-listener-2:
------------------------
Address http://0.0.0.0:80
Acceptor Threads 1
Default Virtual Server solaris
KeepAliveInfo:
--------------------
KeepAliveCount 6/32768
KeepAliveHits 8
KeepAliveFlushes 0
KeepAliveRefusals 0
KeepAliveTimeouts 6
KeepAliveTimeout 30 seconds
SessionCreationInfo:
------------------------
Active Sessions 0
Keep-Alive Sessions 6
Total Sessions Created 8/129
CacheInfo:
-----------------------
File Cache Enabled yes
File Cache Entries 14/1024
File Cache Hit Ratio 76/108 ( 70,37%)
Maximum Age 30
Accelerator Entries 0/1024
Acceleratable Requests 18/45 ( 40,00%)
Acceleratable Responses 0/18 ( 0,00%)
Accelerator Hit Ratio 0/0 ( 0,00%)
Native pools:
----------------------------
NativePool:
Idle/Peak/Limit 1/1/128
Work Queue Length/Peak/Limit 0/0/0
DNSCacheInfo:
------------------
enabled yes
CacheEntries 0/1024
HitRatio 0/0 ( 0,00%)
Async DNS disabled
Performance Counters:
------------------------------------------------
Average Total Percent
Total number of requests: 20
Request processing time: 0,0395 0,7899
default-bucket (Default bucket)
Number of Requests: 20 (100,00%)
Number of Invocations: 289 (100,00%)
Latency: 0,0050 0,0999 ( 12,65%)
Function Processing Time: 0,0345 0,6899 ( 87,35%)
Total Response Time: 0,0395 0,7899 (100,00%)
Sessions:
-------------------------------------------------------
Process Status Client Age VS Method URI Function
Resultan muy interesantes para detectar problemas y optimizar el rendimiento la sección «ConnectionQueue:» y «Sessions:«, en esta última es donde veremos las Ips de acceso, peticiones, URI, etc. Toda la información es bastante descriptiva y comprensible a primera vista. A partir de esta información se pueden generar scripts de recolección de datos, añadir a monitorización tipo Nagios o BigBrother, etc. Los que utilicéis servidores anteriores a la versión 7.0 habréis detectado un gran cambio de la cantidad de información del antiguo perfdump al nuevo.