
Я создаю приложение "surge traffic", которое может увеличить количество клиентов от 0 до 50 000, сразу, в течение нескольких минут. Я подумал, что попрошу вас, ребята, помочь понять, делаю ли я что-то не так.
В настоящее время я тестирую с помощью loader.io, моя конфигурация для этого нагрузочного теста — от 0 до 10 000 клиентов за 1 минуту. Единственное, что делает тестер, — это загружает страницу входа, ничего больше, даже не входит в систему. Размер страницы — 793 КБ, что соответствует времени загрузки ~400 мс в реальном браузере.
[01-Mar-2018 09:57:48] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 4244 idle, and 4607 total children
[01-Mar-2018 09:57:49] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 4216 idle, and 4615 total children
[01-Mar-2018 09:57:50] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4211 idle, and 4631 total children
[01-Mar-2018 09:57:52] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4179 idle, and 4663 total children
[01-Mar-2018 09:57:54] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4181 idle, and 4695 total children
[01-Mar-2018 09:57:57] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4244 idle, and 4727 total children
[01-Mar-2018 09:57:58] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4412 idle, and 4759 total children
Моя конфигурация php-fpm выглядит следующим образом:
pm.max_children 3000
pm.max_requests 200
pm dynamic
pm.start_servers 1500
pm.min_spare_servers 300
pm.max_spare_servers 1500
Характеристики хост-сервера:
AMD Opteron(tm) Processor 6344
Core Name
Abu Dhabi
# of Cores
12-Core
# of Threads
12
Operating Frequency
2.6 GHz
Hyper Transports
6.40 GT/s
L2 Cache
6 x 2MB
L3 Cache
2 x 8MB
Manufacturing Tech
32 nm
50GB RAM (I have provided this to the container), server has 64 total.
И как ни странно, даже с такой конфигурацией я все еще получаю сообщения «кажется, занят»!
Самое важное, что нужно помнить, это то, что обычно у нас мало или совсем нет трафика, но мы ожидаем до 50 000 пользователей в течение нескольких минут. Можете ли вы помочь мне с этой ошибкой, пожалуйста, ребята. Спасибо!
решение1
Вам нужно помнить, что запуск этих дополнительных рабочих процессов занимает время, и, как вы можете видеть в логах, php-fpm порождает 32 дочерних процесса за раз. Самым простым «исправлением» будет установить минимальное и максимальное значение серверов на одно и то же значение, таким образом, вам не придется ждать, пока они запустятся.
Также, если возможно, вместо того, чтобы пытаться сделать что-то подобное, попробуйте реализовать кэширование, так как это всегда будет быстрее.