Sim, você pode. /proc/<pid>/fd
lista todos os descritores de arquivos abertos. O uso da memória pode ser visto em /proc/<pid>/{maps,smaps}
. Basta navegar em /proc/<pid>
e em arquivos do Google que você não entende:)
Temos atingido o limite máximo de arquivos abertos em alguns serviços recentemente. Há também um monte de outros limites no lugar. Existe uma maneira de monitorar o quão perto os processos estão desses limites para que possamos ser alertados quando chegar o momento de aumentar os limites ou consertar a causa raiz? Na mesma nota, é possível visualizar um log desses eventos para sabermos quando ocorre uma falha por causa de um desses limites?
Assumindo um servidor linux.
veja arquivos abertos globais máximos:
cat /proc/sys/fs/file-max
veja os arquivos abertos atuais globais:
cat /proc/sys/fs/file-nr
altere os arquivos abertos máximos globais:
sysctl -w fs.file-max=1000000 or edit sysctl.conf
veja limite no usuário atual:
ulimit -Hn (hard limit)
ulimit -Sn (soft limit)
alterar limite no usuário:
edite /etc/security/limit.conf
para definir limites para um servidor web, por exemplo
apache2 soft nofile 4096
apache2 hard nofile 10000
Você pode ter um script que passe por /proc
e forneça algumas estatísticas:
for pid in $(pgrep apache2); do ls /proc/$pid/fd | wc -l; done
Tags monitoring linux limits