Mostrando entradas con la etiqueta lsof. Mostrar todas las entradas
Mostrando entradas con la etiqueta lsof. Mostrar todas las entradas

martes, 12 de diciembre de 2017

Error común: "Too many open files", en Tomcat o PHP


Si Tomcat os devuelve un error HTTP 500 y en el 'catalina.out' encontráis algo de este tipo

[] org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed
java.net.SocketException: Too many open files

es que tenéis un problema de ficheros abiertos; con

> ulimit -a

puedes ver tu configuración actual; repasa la variable "open files" que te da cuántos ficheros abiertos puede haber por proceso. Puedes modificarla con

> ulimit -n #

donde # es el nuevo valor; prueba con 4096 y reinicia el tomcat para que coja el cambio de esta variable de sistema

Para controlar cuántos ficheros tiene un proceso abierto, lo puedes hacer con  

> lsof -l | grep tomcat

Este tipo de fallo es aplicable a cualquier otra aplicación, no sólo a tomcat; también PHP requiere abrir muchos ficheros y puede  arrojar un error similar. Tenlo en cuenta cuando una aplicación se pare de repente después de rato funcionando bien.



Gracias!


lunes, 18 de agosto de 2014

Qué puertos tengo abiertos y escuchando?


Habéis necesitado alguna vez saber qué puertos y qué servicios están escuchando en esos puertos? Es normal que al menos utilices una de estas formas, pero si sabes que hay más, es posible te resulte más fácil hacer estas averiguaciones la próxima vez (sin necesidad de instalar el software si es necesario)


Nmap

Para mí, es la más antigua en uso; desde que la conocí, es un comando obligado en cada sistema que monto, pero también he aprendido que no siempre está disponible, así que me he tenido que buscar un poco la vida...


esther@Celacanto:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2014-08-18 12:43 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00056s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
3306/tcp open  mysql
3689/tcp open  rendezvous

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
esther@Celacanto:~$


Lsof

Lsoft te muestra, además de los puertos abiertos,  las conexiones que tienes establecidas en este momento,


esther@Celacanto:~$ lsof -i
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox   2857 esther   55u  IPv4 105538      0t0  TCP Celacanto.local:50484->mad01s08-in-f7.1e100.net:https
(ESTABLISHED)
firefox   2857 esther   56u  IPv4  99754      0t0  TCP Celacanto.local:52932->199.16.156.52:https
 (ESTABLISHED)
firefox   2857 esther   57u  IPv4 104799      0t0  TCP Celacanto.local:51760->mad01s09-in-f3.1e100.net:http
 (ESTABLISHED)
firefox   2857 esther   61u  IPv4 106927      0t0  TCP Celacanto.local:38367->ticketing.conzentra.com:http-alt
 (ESTABLISHED)
firefox   2857 esther   93u  IPv4 102390      0t0  TCP Celacanto.local:35392->we-in-f191.1e100.net:https
 (ESTABLISHED)
firefox   2857 esther  113u  IPv4 103466      0t0  TCP Celacanto.local:35566->vc-in-f94.1e100.net:https
 (ESTABLISHED)
firefox   2857 esther  118u  IPv4 103460      0t0  TCP Celacanto.local:37161->mad01s14-in-f8.1e100.net:https
(ESTABLISHED)
skype     4177 esther   15u  IPv4  25938      0t0  UDP localhost:35709
skype     4177 esther   50u  IPv4  28241      0t0  TCP
Celacanto.local:35904->db3msgr5010720.gateway.messenger.live.com:https (ESTABLISHED)
skype     4177 esther   51u  IPv4  26862      0t0  TCP Celacanto.local:38060->157.56.116.205:12350
 (ESTABLISHED)
skype     4177 esther   52u  IPv4  26208      0t0  TCP *:63916 (LISTEN)
skype     4177 esther   53u  IPv4  26209      0t0  UDP *:63916
skype     4177 esther   55u  IPv4 105773      0t0  TCP Celacanto.local:33011->snt404-m.hotmail.com:https
 (ESTABLISHED)
skype     4177 esther   60u  IPv4  28208      0t0  TCP Celacanto.local:47544->111.221.74.42:40011
 (ESTABLISHED)
rhythmbox 4743 esther   18u  IPv6  56747      0t0  TCP *:daap (LISTEN)
ssh       6136 esther    3u  IPv4  98422      0t0  TCP Celacanto.local:33097->nemesys:ssh (ESTABLISHED)


Netstat
netstat es un comando potente, pero ten en mente estas combinaciones  de opciones, que te pueden sacar de un aprieto y dar mucha información si lo necesitas

esther@Celacanto:~$ netstat -ltpun | grep ESC
Proto  Recib Enviad Dirección local         Dirección remota       Estado       PID/Program name


tcp        0      0 127.0.0.1:3306          0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:139             0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:63916           0.0.0.0:*               ESCUCHAR    4177/skype    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 192.168.122.1:53        0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 192.168.1.64:53         0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:53            0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:22              0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:631           0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:953           0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:445             0.0.0.0:*               ESCUCHAR    -             
tcp6       0      0 :::3689                 :::*                    ESCUCHAR    4743/rhythmbox
tcp6       0      0 :::139                  :::*                    ESCUCHAR    -             
tcp6       0      0 :::53                   :::*                    ESCUCHAR    -             
tcp6       0      0 :::22                   :::*                    ESCUCHAR    -             
tcp6       0      0 ::1:631                 :::*                    ESCUCHAR    -             
tcp6       0      0 ::1:953                 :::*                    ESCUCHAR    -             
tcp6       0      0 :::445                  :::*                    ESCUCHAR    -

esther@Celacanto:~$ netstat -ltp | grep ESC
Proto  Recib Enviad Dirección local         Dirección remota       Estado       PID/Program name
tcp        0      0 localhost:mysql         *:*                     ESCUCHAR    -              
tcp        0      0 *:netbios-ssn           *:*                     ESCUCHAR    -              
tcp        0      0 *:63916                 *:*                     ESCUCHAR    4177/skype     
tcp        0      0 *:http                  *:*                     ESCUCHAR    -              
tcp        0      0 Celacanto.local:domain  *:*                     ESCUCHAR    -              
tcp        0      0 Celacanto.local:domain  *:*                     ESCUCHAR    -              
tcp        0      0 localhost:domain        *:*                     ESCUCHAR    -              
tcp        0      0 *:ssh                   *:*                     ESCUCHAR    -              
tcp        0      0 localhost:ipp           *:*                     ESCUCHAR    -              
tcp        0      0 localhost:953           *:*                     ESCUCHAR    -              
tcp        0      0 *:microsoft-ds          *:*                     ESCUCHAR    -  

 * Nota: en mi caso, hago un grep de 'ESC', pero en cualquier sistema con base en inglés, deberá cambiarse por 'LIS' o 'LISTEN'