Увеличить nginx активное соединение более 65535

В настоящее время я делаю настройку для nginx для принятия C1M, я делаю это в моем Virtual BOX с Centos 7.0 и RAM 10G.

Здесь моя конфигурация sysctl.conf.

fs.file-max                    = 9999999
fs.nr_open                     = 9999999

net.core.netdev_max_backlog    = 4096
net.core.rmem_max              = 16777216
net.core.somaxconn             = 3240000
net.core.wmem_max              = 16777216
net.core.netdev_max_backlog    = 16384

net.ipv4.ip_forward            = 0
net.ipv4.ip_local_port_range   = 1      65535
net.ipv4.tcp_rmem              = 8192    873800  8388608
net.ipv4.tcp_wmem              = 4096    655360  8388608
net.ipv4.tcp_mem               = 8388608 8388608 8388608
net.ipv4.tcp_fin_timeout       = 7
net.ipv4.tcp_keepalive_time    = 30
net.ipv4.tcp_max_syn_backlog   = 3240000
net.ipv4.tcp_max_tw_buckets    = 6000000
net.ipv4.tcp_no_metrics_save   = 1
net.ipv4.tcp_syn_retries       = 2
net.ipv4.tcp_tw_recycle        = 1
net.ipv4.tcp_tw_reuse          = 1
net.ipv4.tcp_slow_start_after_idle = 0

vm.min_free_kbytes             = 65536
vm.overcommit_memory           = 2
net.nf_conntrack_max           = 237680
net.netfilter.nf_conntrack_max = 237680

net.ipv4.ip_conntrack_max               = 131072
net.ipv4.netfilter.ip_conntrack_max     = 1048576

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

В nginx.conf я установил worker_connection на 1000000, worker_process 4, worker_rlimit_nofile 1000000

Я установил свой openfile с помощью ulimit -n 2000000, но я получаю активное соединение только около 65K, как этот.

Active connections: 65318 
server accepts handled requests
 768234 768234 1549023 
Reading: 0 Writing: 61245 Waiting: 4073 

I try with wrk -t3 -c67000 -d40s http://my-ip:80

Есть ли какая-либо конфигурация мисс, которую я делаю? Спасибо за ваш ответ.

Баю Пермади,

2 ответа

Решение

Количество активных подключений ограничено количеством доступных сокетов.

гнездо clien_ip + client_port + server_port + server_ip, Максимальный номер порта составляет около 65к, поэтому единственный способ увеличить количество подключений - использовать дополнительный IP.

Например используйте виртуальные интерфейсы. Или Добавьте виртуальный адаптер к машине virtualbox.

В любом случае, для хорошего тестирования производительности вы должны использовать распределенные клиенты (генераторы нагрузки), потому что тесты с одним или несколькими клиентами часто становятся тестом производительности клиента, а не сервера =)

Вы используете свой тестовый инструмент с нескольких машин или с одного? Кажется, вы работаете с одного, поэтому виновником является диапазон локальных портов.

Другие вопросы по тегам