Comment WhatsApp atteindre 2 millions de connexions par serveur?

Sur Ubuntu, le nombre maximal de sockets qui peut être ouvert semble être régi suivant:

$ cat /proc/sys/net/ipv4/tcp_max_orphans
262144

Comme l'une des présentations par Rick Reed (à partir de WhatsApp), ces gars-là ont pris jusqu'à 2 millions de connexions simultanées sur un "serveur unique" à l'aide de FreeBSD et ErLang. Ma compréhension est que nous aurons toujours besoin d'un certain soutien de l'amande. Et oui, on dirait le tordu le pour FreeBSD cette capacité:

hw.machine: amd64
hw.model: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz
hw.ncpu: 24
hw.physmem: 103062118400
hw.usermem: 100556451840

kb@c123$ uname -rps
FreeBSD 8.2-STABLE amd64

jkb@c123$ cat /boot/loader.conf.local
kern.ipc.maxsockets=2400000
kern.maxfiles=3000000
kern.maxfilesperproc=2700000

Alors, ressemble noyau peut être modifié à l'appui de si nombreuses connexions physiques, étant donné que nous avons une quantité suffisante de mémoire, correct? Si oui, alors il semble assez simple, alors qu'est-ce que le battage médiatique à ce sujet? Ou il me manque quelque chose?

Grâce.

  • La différence est FreeBSD Vs Linux. ErLang n'a pas réécrire la pile TCP dans le noyau.
  • Donc, FreeBSD est plus puissant que Linux? Pourquoi je ne peux pas faire la même chose sous Linux?
  • Voir highscalability.com/blog/2014/2/26/...
  • Il ya un vieux dicton sur BSD vs Linux: "BSD est que lorsque vous obtenez un tas d'UNIX, les pirates s'asseoir pour essayer de port un système UNIX pour les PC. Linux est que lorsque vous obtenez un tas de PC pirates asseyez-vous et essayez d'écrire un système UNIX pour PC."
  • Il n'est toujours pas tout à fait répondu à ma question.
  • Son plus sur l'architecture du serveur (code de la perspective). Avec une mauvaise architecture et novice en programmation, votre serveur peut s'être accroché, même à des milliers de connexions.