Come configurare un server linux redhat / centos / amazon per le connessioni tcp aperte da 1million?

Ho letto il seguente articolo:

  • http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1
  • Più di 65536 connessioni TCP su Linux

E mi chiedo se c'è altro che ho bisogno di sapere su tuning linux per gestire 1million connessioni tcp? Finora ho ridotto fino a quanto segue:

  • Configurare il kernel per supportre connessioni 1mil, system wide (sysctl.conf)
  • Configurare per avere connessioni 1mil per l'utente specifico (/etc/security/limits.conf)
  • Configurazione delle impostazioni della memory dello stack tcp (sysctl.conf?)

C'è qualcos'altro che devo configurare? (questo è per un server EC2 a 64 bit)

operativa -Editazione-

Non è apache, il suo server FYI con codifica personalizzata basata su libev. Sarà scalata a 1mil solo bene, il suo kernel che è la mia preoccupazione 🙂

  • Il process ksoftirqd sovraccarica la CPU con width di banda e più connessioni di networking
  • è uscito da porte di tcp udp
  • Sintonizzazione dell'archiviazione iSCSI
  • Messaggi TCP uniti?
  • Cercando di rendere iptables senza stato di stato sta causando un filtraggio imprevisto
  • C'è un modo per vedere cosa effettivamente filtra la comunicazione di port TCP?
  • Risoluzione dei problemi relativi alle velocità di networking - La vecchia richiesta di età
  • Numero di sequenza TCP e numero ACK
  • 3 Solutions collect form web for “Come configurare un server linux redhat / centos / amazon per le connessioni tcp aperte da 1million?”

    Ho avuto problemi a configurare le impostazioni per utente, ho continuato a cambiare il numero di file nei limiti.conf, ma non mi permetterebbe di accedere mai più, ho dovuto interrompere l'istanza ec2. Da quando ho scoperto che 1024 * 1024 è il massimo che puoi mettere nei limiti.conf, più e tu lo farai:

    echo "* soft nofile 1048576" >> /etc/security/limits.conf echo "* hard nofile 1048576" >> /etc/security/limits.conf 

    Altrimenti, e le aggiunte a sysctl che sono menzionate nei link del blog mochiweb, c'é qualcos'altro che devo fare?

    Grazie mille ragazzi. Sono davvero interessato a vedere se posso spingere questo server per gestire i collegamenti 1mil …

    Hai la maggior parte degli accordi configurati che avrei impostato (e wherevo impostare). Una cosa che ho trovato quando abbiamo scalato come questo è che avrai sempre qualcosa di speciale per il tuo ambiente che nessun altro ha menzionato. Per catturarlo devi essere sicuro di guardare e di avvisare:

    • errori tramite syslog
    • errori che il programma vede come guasti socket (), ecc
    • disponibilità di buffer di networking (tramite SNMP o netstat cron)
    • i limiti della tabella del kernel (nuovamente tramite i croni di analisi di file SNMP o proc)
    • monitoraggio frequente (sondaggi molto leggeri effettuati each 1-10 ms, usiamo OpenNMS che fa questo davvero facilmente, perché OpenNMS è impressionante).

    Un'altra cosa che si potrebbe eseguire è problemi con il valore HZ. Nei nostri sisthemes FreeBSD abbiamo aumentato questo. Stavo esaminando un'altra domanda su Linux e mi sono imbattuto in un caso in cui le code di socket vengono pulite rispetto al valore HZ:

    Le connessioni TIME_WAIT non vengono ripulite dopo il periodo di timeout che scade

    Per quanto riguarda il commento, penso che FreeBSD non sarà meglio in questo modo, entrambi hanno bisogno di enormi quantità di tuning per funzionare. Stiamo usando FreeBSD perché le caselle si collegano direttamente a Internet e OpenBGPD è attualmente la migliore implementazione open source BGP disponibile.

    Dipende dalle specifiche del server e dal tipo di contenuto che serve. Può non essere ansible affatto, (simultaneamente a destra?) Se serve i contenuti e i contenuti attivi. Database e piccoli siti web devono fare bene. Nella configuration apache, provare ad avviare molti thread di lavoratori / figli. Nella casella stessa, prova solo per vedere se Apache gestirà. Se apache può ma non la casella, forse qualcun altro può aiutare con questo. Scusate. In bocca al lupo.

    Sì, mi dispiace per non averlo letto accuratamente.

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