Perché nf_conntrack_count continua a crescere?

Sto usando Ubuntu 11.10 & nginx. Il mio server sta attualmente eseguendo circa 350 rps (è il carico che sta arrivando). Utilizzo iptables per assicurarmi che le connessioni su determinate porte siano limitate solo alle caselle che possiedo.

Ho notato che nf_conntrack_count continua a crescere. Non import quello che spingo a nf_conntrack_max , nf_conntrack_count corrisponde a un giorno. Inoltre, non corrisponde a quello che netstat -tn mi dice. Ecco i numbers:

  • Imansible montare il volume nfs - time out
  • Imansible trovare il sottosistema di networking in cgroup su Ubuntu 12.04 LTS
  • Effettuare alcune informazioni sui routes persistenti su RHEL
  • Strano comportmento della storia del bash durante l'esecuzione di più sessioni
  • Linux /etc/init.d - collegamento symlink, hard link o file effettivo?
  • Come posso assegnare un indirizzo IP per indirizzo MAC in dhcpd
  •  $ sudo sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_count = 649715 net.netfilter.nf_conntrack_max = 650000 $ netstat -tn | awk '{n[$6]++} END { for(k in n) { print k, n[k]; }}' CLOSING 6 ESTABLISHED 2933 FIN_WAIT1 116 FIN_WAIT2 3447 LAST_ACK 35 SYN_RECV 79 TIME_WAIT 27141 $ sudo conntrack -L | awk '{n[$4]++}; END {for(k in n) { print k, n[k]; }}' conntrack v1.0.0 (conntrack-tools): 648611 flow entries have been shown. CLOSE 443 CLOSE_WAIT 2210 ESTABLISHED 645529 FIN_WAIT 45 LAST_ACK 50 SYN_RECV 74 TIME_WAIT 259 

    Non voglio continuare a crescere nf_conntrack_max finché non so esattamente cosa sta succedendo. Sicuramente non ho 650.000 connessioni alla mia casella (IP singolo, quindi non ho molte porte).

    Hai idea di cosa sta succedendo o cosa posso fare per spiegarlo? Se hai bisogno di più numbers, probabilmente li riceverò.

    Si noti che la maggior parte delle mie connessioni sono HTTP (le uniche eccezioni sono le sessioni di ssh) e il timeout di keepalive in nginx è impostato su 15 secondi. Anche net.netfilter.nf_conntrack_tcp_timeout_time_wait = 1

    Qualsiasi aiuto apprezzato.

  • Dov'è il posto giusto per impostare net.netfilter.nf_conntrack_buckets?
  • La latenza di Ubuntu HTTP che cade in quantili strani
  • Errore: "net.ipv4.netfilter.ip_conntrack_max" è una chiave sconosciuta
  • Elimina specifiche voci di conntrack?
  • Traffico IP di path basato sul process su diversi routes / interface predefiniti
  • Conntrack non mostra alcun risultato
  • One Solution collect form web for “Perché nf_conntrack_count continua a crescere?”

    Potrei avere un indizio. Il field di timeout da conntrack -L ha diversi valori che si trovano nella gamma di 430.000 secondi. Questo sembra sospettoso vicino al valore predefinito di nf_conntrack_tcp_timeout_established . Ho sintonizzato nf_conntrack_tcp_timeout_established fino a 300 e tutte le nuove voci nella tabella hanno un valore di timeout inferiore a 300. Questo sembra suggerire che le voci rimangano in giro nella tabella di monitoraggio dei collegamenti finché tcp_timeout_established è valido.

    Aggiungo a questa risposta quando ottengo ulteriori informazioni.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.