Sur certains serveurs extrêmement sollicités en terme de réseau, il peut être intéressant de monitorer le nombre de sockets ouverts. Vous trouverez une sonde fonctionnant sous FreeBSD permettant de vérifier que le nombre de sockets ouverts ne dépasse pas la limite du système.
#! /bin/sh
# states
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
CUR_SOCKET_NB=$(/sbin/sysctl kern.ipc.numopensockets|awk '{print $2}')
MAX_SOCKET_NB=$(/sbin/sysctl kern.ipc.maxsockets|awk '{print $2}')
SOCKET_PCT=$(echo "$CUR_SOCKET_NB*100/$MAX_SOCKET_NB"|/usr/bin/bc)
if [ "$SOCKET_PCT" -gt 90 ];
then
echo "Many sockets are opened ($CUR_SOCKET_NB/$MAX_SOCKET_NB) ! Please increase kern.ipc.maxsockets to support charge"
return $STATE_CRITICAL
elif [ "$SOCKET_PCT" -gt 80 ];
then
echo "Lot of opened sockets ($CUR_SOCKET_NB/$MAX_SOCKET_NB) ! Be careful the server is charged"
return $STATE_WARNING
else
echo "Opened sockets are correct. ($CUR_SOCKET_NB/$MAX_SOCKET_NB)"
return $STATE_OK
fi
Augmentez la valeur de kern.ipc.maxsockets avec sysctl. (Attention à la RAM)
sysctl kern.ipc.maxsockets=150000
Pour rendre cette modification permanente, ajoutez la au fichier /etc/sysctl.conf.