В Ubuntu максимальное количество сокетов, которые могут быть открыты, похоже, определяется следующим образом:
$ cat /proc/sys/net/ipv4/tcp_max_orphans
262144
Согласно одной из презентаций Рика Рида (от WhatsApp), эти ребята приняли до 2 миллионов одновременных соединений на "одном сервере" с использованием FreeBSD и ErLang. Я понимаю, что мы всегда будем нуждаться в поддержке от ядра. И да, похоже, что у FreeBSD есть возможность :
hw.machine: amd64
hw.model: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz
hw.ncpu: 24
hw.physmem: 103062118400
hw.usermem: 100556451840
[email protected]$ uname -rps
FreeBSD 8.2-STABLE amd64
[email protected]$ cat /boot/loader.conf.local
kern.ipc.maxsockets=2400000
kern.maxfiles=3000000
kern.maxfilesperproc=2700000
Итак, похоже, что ядро может быть настроено для поддержки стольких физических подключений, учитывая, что у нас есть достаточный объем памяти, правильно? Если да, то это выглядит довольно просто, тогда в чем заключается обман? Или я что-то упускаю?
Спасибо.