Автор оригинала: FreeCodeCamp Community Member.
Сачин Малхотра
Если вы внимательно посмотрите на вышеуказанный скриншот, вы найдете две важные детали информации:
- Эта машина имеет 2,38 млн. TCP Соединения создан и
- Количество используемых ОЗУ вокруг 48 гигабайт Отказ
Довольно удивительно правильно? Что было бы еще более удивительным, это если кто-то предоставил компоненты настройки, а настройки, необходимые для достижения такого масштаба на одном гаплочном машине. Ну, я сделаю только что в этом посте;)
Это последняя часть множественной серии на тестирование нагрузки HAProxy. Если у вас есть время, я рекомендую вам сначала прочитать первые две части в серии. Они помогут вам получить зависание настройки уровня ядра, необходимые на всех машинах в этой установке.
Тестирование нагрузки HAProxy (часть-1) Тестирование нагрузки? Haproxy? Если все это кажется греком к вам, не волнуйтесь. Я предоставлю встроенные ссылки на то, что … Medile.com Тестирование нагрузки HAProxy (часть 2) Это вторая часть в серии 3 части на тестирование производительности известного балансировщика нагрузки TCP и обратный прокси … Medium.com.
Есть много небольших компонентов, которые помогли нам объединить всю настройку и достичь этих чисел.
Прежде чем я скажу вам последнюю конфигурацию HAProxy, которые мы использовали (если вы супер нетерпеливы, вы можете прокрутить дону), я хочу построить его, идя по себе через наше мышление.
Что мы хотели проверить
Компонент, который мы хотим проверить, была HAProxy версия 1.6. Мы используем это в производстве прямо сейчас на 4 Core, 30 Gig Machines. Тем не менее, все подключение к не-SSL на основе.
Мы хотели проверить две вещи из этого упражнения:
- Процент CPU Увеличение Когда мы смещаем всю нагрузку из не-SSL-подключений к соединениям SSL. Использование процессора обязательно должно быть увеличено вследствие более длинного 5-контактного рукопожатия, а затем шифрование пакетов.
- Во-вторых, мы хотели проверить пределы нашей текущей настройки производства с точки зрения количества запросов и максимального количества одновременных соединений, которые могут быть поддержаны до того, как производительность начинает ухудшаться.
Мы требовали первой части из-за основной развертывания функций, которые требуют общения через SSL. Мы требовали второй части, чтобы мы могли уменьшить количество аппаратного обеспечения, посвященного производству на гаграммах HAProxy.
Участвующие компоненты
- Несколько клиентских машин для подчеркивания HAProxy.
- Одиночная гапрой-машина Версия 1.6 на различных настройках * 4 ядра, 30 гиг * 16 ядра, 30 гиг * 16 ядра, 64 гига
- Backend Servers, которые помогут поддерживать все эти одновременные соединения.
Http и mqtt.
Если вы пройдете через Первая статья В этой серии вы должны знать, что наша всю инфраструктуру поддерживается в течение двух протоколов:
- Http и
- MQTT.
В нашем стеке мы не используем HTTP 2.0 и, следовательно, не имейте функциональности постоянных подключений на http. Таким образом, на производстве максимальное количество соединений TCP, которое мы видим, где мы находимся где-то вокруг (2 * 150K) на одном гаплочном машине (входящие + исходящие). Хотя количество одновременных соединений довольно низкое, количество запросов в секунду довольно высоки.
С другой стороны, MQTT совсем другой способ для связи. Он предлагает отличное качество сервисных параметров и постоянного подключения. Таким образом, двунаправленное непрерывное сообщение может произойти через канал MQTT. Что касается HAProxy, который поддерживает соединения MQTT (базовые TCP), мы видим где-то около 600-700 тыс. TCP-соединений в пиковом времени на одном компьютере.
Мы хотели сделать тест нагрузки, который даст нам точные результаты для соединений на основе HTTP и MQTT.
Существует много инструментов, которые помогают нам легко нагружать HTTP-сервер, и многие из этих инструментов предоставляют расширенные функции, такие как суммаризированные результаты, преобразование текстовых результатов на графики и т. Д. Мы не могли, однако не найти любой инструмент для тестирования стресса для MQTT. У нас есть инструмент, который мы разработали себя, но это было недостаточно устойчивым для поддержки такого рода нагрузки в таймфрейме, которые мы имели.
Поэтому мы решили пойти на тестирование нагрузки клиентов для HTTP и Имитация настройки MQTT, используя то же самое;) Интересно правильно?
Хорошо читать дальше.
Первоначальная настройка
Это будет длинный пост, так как я буду предоставлять много подробностей, которые, я думаю, был бы действительно полезным для того, чтобы кто-то выполнял аналогичное тестирование нагрузки или тонкие настройки.
- Мы взяли 16 Core 30 Gig Machine для настройки Haproxy изначально. Мы не пошли с нашей текущей настройкой производства, потому что мы думали, что удар CPU из-за прекращения SSL происходит на конце HAProxy, будет огромным.
- Для конца сервера мы пошли с простой сервером Nodejs, который отвечает
понг
При получениипинг
запрос. - Что касается клиента, мы получили использование Apache скамейка первоначально. Причина, по которой мы пошли с
AB
Было потому, что это был очень хорошо известный и стабильный инструмент для тестирования нагрузки HTTP-конечных точек, а также потому, что он обеспечивает красивые суммированные результаты, которые помогут нам много.
AB
Инструмент обеспечивает много интересных параметров, которые мы использовали для нашего теста нагрузки, как:
- C, совпадение
Определяет количество одновременных запросов, которые ударили бы сервер.-Н, нет. запросов
Как предполагает имя, указывает общее количество запросов текущей загрузки нагрузки.-P пост файла
Содержит тело почтового запроса (если это то, что вы хотите проверить.)
Если вы внимательно посмотрите на эти параметры, вы обнаружите, что многие перестановки возможно, настраивая все три. Образец запроса AB будет выглядеть что-то подобное
ab -S -p post_smaller.txt -T application/json -q -n 100000 -c 3000 http://test.haproxy.in:80/ping
Пример результата такого запроса выглядит что-то вроде этого
Числа, которые мы были заинтересованы
- 99% Задержка.
- Время на запрос.
- Количество неудачных запросов.
- Запросы в секунду.
Самая большая проблема AB
Это не обеспечивает параметра для управления количеством запросов в секунду. Нам пришлось настроить уровень параллелизма, чтобы получить желаемые запросы в секунду, и это приводит к большому количеству следов и ошибок.
Всемогущий график
Мы не смогли случайным образом пойти на выполнение нескольких загрузки и продолжать получать результаты, потому что это не даст нам никакой значимой информации. Нам пришлось выполнять эти тесты определенным образом, чтобы получить значимые результаты из этого. Поэтому мы следовали этому графику
Этот график утверждает, что до определенного момента, если мы продолжим увеличение количества запросов, задержка останется почти такой же. Тем не менее, за определенным точкой переломки Задержка начнет увеличиваться экспоненциально. Это точка перескакивания для машины или для установки, которую мы намереваемся измерить.
Ганглия
Перед предоставлением некоторых результатов теста я хотел бы упомянуть Ганглии Отказ
Посмотрите на следующий скриншот одного из наших машин, чтобы получить представление о том, что такое Ganglia и в какой информации он предоставляет базовую машину.
Довольно интересно, а?
Двигаясь, мы постоянно контролируем ганглии для нашей машины HAProxy для мониторинга некоторых важных вещей.
TCP установлен
Это рассказывает нам общее количество соединений TCP, установленных в системе. Примечание. Это сумма входящего, а также исходящих соединений.Пакеты отправлены и получили
Мы хотели посмотреть общее количество отправляемых пакетов TCP и полученные нашей HAProxy Machine.Байты отправили и получили
Это показывает нам общие данные, которые мы отправили и получили машиной.память
Количество оперативной памяти используется со временем.сеть
Расход пропускной способности сети из-за отправки пакетов по проводу.
Ниже приведены известные пределы, найденные через предыдущие тесты/цифры, которые мы хотели достичь через наш тест нагрузки.
Haproxy nbproc.
Первоначально, когда мы начали нагружать тестирование HAProxy, мы обнаружили, что с SSL CPU ударил довольно рано в процессе, но запросы в секунду были очень низкими. На расследовании верх Команда, мы обнаружили, что HAProxy использовал только 1 ядро. В то время как у нас было еще 15 ядер.
Googling около 10 минут привел нас, чтобы найти эту интересную настройку в Haproxy, которая позволяет HAProxy использовать несколько ядер.
Это называется nbproc
И чтобы лучше повесить то, что это такое и как его установить, проверить эту статью:
http://blog.onefellow.com/post/82478335338/haproxy-mapping-process-to-cpu-core-for-maximum
Настройка Эта настройка была основой нашей стратегии тестирования нагрузки, движущейся вперед. Поскольку способность использовать несколько ядер Haproxy, дал нам возможность сформировать несколько комбинаций для нашей нагрузки на тестирование нагрузки.
Тестирование нагрузки с ab
Когда мы начали с нашим путешествием нагрузки, мы не были понятны по тому, что мы должны измерить, и что нам нужно достичь.
Первоначально у нас имеется только одна голь, и это было найти точку перескакивания только путем изменения всех нижеупомянутых параметров.
Я поддерживал таблицу всех результатов для различных тестов нагрузки, которые мы дали. В целом я дал более 500 тестов, чтобы добраться до конечного результата. Как вы можете четко видеть, есть много движущихся частей к каждому тесту.
Одиночные проблемы клиента
Мы начали видеть, что клиент становится узким местом, поскольку мы продолжали увеличить наши запросы в секунду. Скамья Apache использует одно ядро и из документации очевидно, что она не предоставляет никакой функции для использования нескольких ядер.
Чтобы эффективно запускать несколько клиентов, мы нашли интересную утилиту Linux под названием Параллельно Отказ Как следует из названия, он поможет вам запустить несколько команд параллельно и использует несколько ядер. Именно то, что мы хотели.
Посмотрите на команду образца, которая запускает несколько клиентов, использующих параллель.
cat hosts.txt | parallel 'ab -S -p post_smaller.txt -T application/json -n 100000 -c 3000 {}'
sachinm@ip-192-168-0-124:~$ cat hosts.txthttp://test.haproxy.in:80/pinghttp://test.haproxy.in:80/pinghttp://test.haproxy.in:80/ping
Вышеуказанная команда будет работать 3 клиентами AB, ударяя одинаковый URL. Это помогло нам удалить узкое место для клиента.
Сон и параметр Times
Мы говорили о некоторых параметрах в ганглиях, которые мы хотели отслеживать. Давайте обсудим их один раз за другим.
Пакеты отправлены и получили
Это может быть смоделировано, отправив некоторые данные как часть запроса пост. Это также поможет нам генерировать некоторыеСеть, а также байты отправлены и получили порции в ганглии
TCP_ESTableded
Это то, что потребовалось долгих, долгое время, чтобы фактически имитировать в нашем сценарии. Представьте себе, если один запрос на пинг занимает около секунды, это потребовало бы нас около 700 тысяч запросов в секунду, чтобы добраться до нашего TCP_ESTableded Milestone. Теперь этот номер может показаться легче добиться на производстве, но было невозможно сгенерировать его в нашем сценарии.
Что мы могли бы спросить? Мы ввели параметр сна в нашем вызове, который указывает количество миллисекундов, которые сервер должен спать, прежде чем отправлять ответ. Это будет имитировать длительный запрос на производство. Так что теперь говорят, что у нас сон около 20 минут (да), что приведет нас около 583 запросов в секунду, чтобы достичь отметки 700К.
Кроме того, мы также представили еще один параметр в наших почтовых вызовах HAProxy и это было раз
параметр. Это указанное количество раз, когда сервер должен написать ответ на подключении TCP, прежде чем его заканчивать. Это помогло нам моделировать еще больше данных, переданных через провод.
Проблемы с скамейкой Apache
Хотя мы обнаружили много результатов с скамейкой Apache, мы также столкнулись с большим количеством вопросов по пути. Я не буду упоминать всеми из них здесь, так как они не важны для этого поста, поскольку я буду введен еще один клиент в ближайшее время.
Мы были красивыми довольными номерами, которые мы выходили из скамейки Apache, но в одну точку времени, генерируя необходимые соединения TCP только что стали невозможными. Каким-то образом скамейка Apache не обрабатывала параметр сон, который мы ввели, правильно и не масштабируются для нас.
Хотя запуск нескольких клиентов AB на одной машине разобрался с использованием параллельной утилиты. Запуск этой настройки на нескольких клиентских машинах все еще была больной болью. Я не слышал о PDSH Утилита к тому времени и была практически застряла.
Кроме того, мы также не были фокусированы на любых тайм-аутах. На HAProxy, Client of timeout есть набор по умолчаниям по умолчанию, и мы полностью игнорировали их. Мы выяснили много вещей по пути и много организовали себя о том, как пойти на тестирование.
Раньше мы говорили о графике повторного точка, но мы много отклонили от нее с течением времени. Однако значимые результаты могут быть найдены только сосредоточены на этом.
С скамеемкой Apache поступил в точку, где количество подключений TCP не увеличивается. У нас было около 40-45 клиентов, работающих на 5-6 разных клиентских коробках, но не смогли добиться масштаба, которые мы хотели. Теоретически число соединений TCP должно было подскочить, когда мы продолжали увеличить время сна, но это не работало на нас.
Войдите в Вегета
Я искал некоторые другие инструменты тестирования нагрузки, которые могут быть более масштабируемыми и лучшими функциональными возможностями, по сравнению с скамейкой Apache, когда я наткнулся на V Egeta Отказ
Из моего личного опыта я видел вегетативную быть чрезвычайно масштабируемым и обеспечивает гораздо лучшую функциональность по сравнению с скамейкой Apache. Одиночная вегетативная клиент смогла произвести уровень пропускной способности, эквивалентной 15 клиентам скамьи Apache в нашем тесте нагрузки.
Продвижение вперед, я буду предоставлять результаты теста на нагрузку, которые были проверены с использованием самого вегета.
Тестирование нагрузки с вегетаром
Во-первых, посмотрите на команду, которую мы использовали для запуска одного вегетатора. Интересно, что команда нагрузки на нагрузку на серверы Backend называется атаковать
:п
echo "POST https://test.haproxy.in:443/ping" | vegeta -cpus=32 attack -duration=10m -header="sleep:30000" -body=post_smaller.txt -rate=2000 -workers=500 | tee reports.bin | vegeta report
Просто любите параметры, предоставляемые вегетарой. Давайте посмотрим на некоторые из них ниже.
-Пус = 32
Определяет количество сердечников, которые будут использоваться этим клиентом. Нам пришлось расширить наши клиентские машины до 32 конвейеров, 64GIG из-за количества нагрузки. Если вы посмотрите внимательно выше, скорость не сильно. Но становится трудно поддерживать такую нагрузку, когда много соединений находятся в состоянии сна с конца сервера.-употребление = 10 м
Я думаю, это самоуверенно. Если вы не укажете никакой продолжительности, тест будет работать навсегда.-RATE = 2000
Количество запросов в секунду.
Таким образом, как вы можете видеть выше, мы достигли Hefty 32K запросов в секунду на простом 4 основном машине. Если вы помните график перескакивания, вы сможете заметить его достаточно, достаточно выше. Таким образом, точка перескакивания в этом случае составляет 31,5 тыс., Не только запросы SSL.
Посмотрите на еще несколько результатов из теста нагрузки.
16K SSL-соединения тоже неплохо вообще. Обратите внимание, что в этот момент в нашем путешествии на нагрузке мы пришлось начать с нуля, потому что мы приняли новый клиент, и это давали нам лучшие результаты, чем AB. Поэтому мы должны были сделать много вещей снова.
Увеличение количества ядер привело к увеличению количества запросов в секунду, что машина может занять до того, как ограничение процессора будет ударена.
Мы обнаружили, что не было существенного увеличения количества запросов в секунду, если мы увеличили количество сердечников от 8 до 16. Кроме того, если мы наконец решили пойти с 8 основной машиной в производстве, мы бы никогда не выделили все ядер к HAProxy или будь то любой другой процесс для этого вопроса. Поэтому мы решили выполнить некоторые тесты с 6 ядрами, чтобы увидеть, имели ли мы приемлемые номера.
Неплохо.
Представляя сон
Мы были довольно довольны нашими результатами теста нагрузки до сих пор. Однако это не смоделировало реальный сценарий производства. Что случилось, когда мы ввели время сна, а до сих пор отсутствовали до сих пор в наших тестах.
echo "POST https://test.haproxy.in:443/ping" | vegeta -cpus=32 attack -duration=10m -header="sleep:1000" -body=post_smaller.txt-rate=2000 -workers=500 | tee reports.bin | vegeta report
Так что время сна 1000 миллисекунд приведет к серверу, спать для х
количество времени, где 0
Числа в последней ячейке представляют
TCP established, Packets Rec, Packets Sent
соответственно. Как вы можете четко видеть максимальные запросы в секунду, что 6 Core Machine может поддерживать до 8K от 20K. Очевидно, что сон оказывает его влияние, и что воздействие является увеличением количества соединений TCP. Это, однако, нигде не вблизи отметки 700К, который мы отправим к достижению.
Веха № 1.
Как мы увеличиваем количество подключений TCP? Просто, мы продолжаем увеличить время сна, и они должны подняться. Мы продолжали играть во время сна, и мы остановились в 60 секунды спать. Это означало бы среднюю задержку около 30 сек.
Есть интересный параметр результата, который вегетарирует, и это% для успешных запросов. Мы видели, что с вышеупомянутым временем сна только 50% вызовов были успешными. Смотрите результаты ниже.
Мы достигли CONOPING 400K TCP, установленных соединений с запросами 8K в секунду и 60000 мс. R в 60000R означает случайный.
Первое реальное открытие, которое мы сделали, было то, что в вегетаре есть 30 секунд по умолчанию, которое составляет 30 секунд, и что объясняет, почему 50% наших звонков не удалось. Таким образом, мы увеличили это примерно в 70-х для наших дальнейших тестов и продолжали меняться как и когда возникла необходимость.
Мы легко ударили 700К отметку после настройки значения тайм-аута с конца клиента. Единственная проблема с этим было то, что они не были последовательными. Это были просто вершины. Таким образом, система попала на пик 600К или 700К, но не осталось там очень долго.
Однако мы хотели что-то похожее на это
Это показывает устойчивое состояние, где поддерживаются 780K соединений. Если вы посмотрите внимательно на статистику выше, количество запросов в секунду очень высоки. Однако на производстве у нас гораздо меньше запросов (где-то около 300) на одном гаплоксистеме.
Мы были уверены, что если мы резко сократим количество HAProxies, которые мы имеем на производстве (где-то около 30, что означает 30 * 300 ~ 9К, соединяется в секунду), мы попадем в машину W.r.t. Количество соединений TCP сначала и не CPU.
Кроме того, до сих пор мы поселились на 6 ядер, используемых Haproxy. Мы хотели проверить 3 ядра только потому, что это то, что нам было бы легко откатить на наших производственных машинах (наших производственных машин, как упомянуто ранее, представляют собой 4 Core 30 Gig. Так что для выкатывания изменений с NBProc
Будьте легким для нас.
REMEMBER the machine we had at this point in time was 16 core 30 Gig machine with 3 cores being allocated to HAProxy.
Веха № 2.
Теперь, когда у нас были максимальные ограничения на запросы в секунду, что могут поддерживать различные вариации конфигурации машины, у нас была только одна задача, оставленная, как упомянуто выше.
Достичь 3x производственной нагрузки, которая
- 900 запросов в секунду
- 2,1 млн. ТКП
- 30 МБ/с сеть.
Мы еще раз застревали, так как TCP установлена усердно ударила на 220к. Независимо от того, каково количество клиентских машин или какое время сна, количество соединений TCP, казалось, там застрял.
Давайте посмотрим на некоторые расчеты. 220K TCP Установленные соединения и 900 запросов на 100 000/900 секунд. Я занял 110 тыс. Поскольку 220K соединения включают в себя как входящие, так и исходящие. Так что это два пути.
Наши сомнения примерно в 2 минутах являются предел где-то в системе было проверено, когда мы ввели журналы на стороне гапокси. Мы могли видеть 120000 мс как общее время для многих соединений в журналах.
Mar 23 13:24:24 localhost haproxy[53750]: 172.168.0.232:48380 [23/Mar/2017:13:22:22.686] api~ api-backend/http31 39/0/2062/-1/122101 -1 0 - - SD-- 1714/1714/1678/35/0 0/0 {0,"",""} "POST /ping HTTP/1.1"
122101 is the timeout value. See HAProxy documentation on meanings of all these values.
На расследовании дальнейшего мы обнаружили, что Nodejs имеет курс времени ожидания по умолчанию 2 минуты. Вуаля!
Как изменить oddejs Запрос времени ожидания по умолчанию? Я использовал запрос на Nodejs, время ожидания по умолчанию Nodejs HTTP составляет 120000 мс, но для меня недостаточно, пока мой … stackoverflow.com Http |. Node.js v7.8.0 Документация Интерфейсы HTTP в Node.js предназначены для поддержки многих функций протокола, которые были традиционно … nodejs.org.
Но наше счастье было очевидно, жили. На 1,3 миллиона соединения HAProxy внезапно упали до 0 и снова начали увеличиваться. Вскоре мы проверили dmesg Команда, которая предоставила нам некоторую полезную информацию о уровне ядра для нашего HAProxy Process.
По сути, процесс гапроксии выходил из памяти. Поэтому мы решили увеличить оперативную память машины, и мы перешли на 16 Core 64 Gig Machine с nbproc
И из-за этого изменения мы смогли достичь 2,4 миллиона соединений.
Резервный код
Ниже приведен код Backeng Server, который использовался. Мы также использовали statsd в сервере сервера, чтобы получить консолидированные данные по запросам в секунду, которые были приняты клиентом.
var http = require('http');var createStatsd = require('uber-statsd-client');qs = require('querystring');
var sdc = createStatsd({host: '172.168.0.134',port: 8125});
var argv = process.argv;var port = argv[2];
function randomIntInc (low, high){ return Math.floor(Math.random() * (high - low + 1) + low);}
function sendResponse(res,times, old_sleep){ res.write('pong'); if(times==0) { res.end(); } else { sleep = randomIntInc(0, old_sleep+1); setTimeout(sendResponse, sleep, res,times-1, old_sleep); }}
var server = http.createServer(function(req, res){ headers = req.headers; old_sleep = parseInt(headers["sleep"]); times = headers["times"] || 0; sleep = randomIntInc(0, old_sleep+1); console.log(sleep); sdc.increment("ssl.server.http"); res.writeHead(200); setTimeout(sendResponse, sleep, res, times, old_sleep)
});
server.timeout = 3600000;server.listen(port);
У нас также был небольшой скрипт для запуска нескольких бэкэнд-серверов. У нас было 8 машин с 10 Backend Servers каждый (да!). Мы буквально приняли представление о клиентах и серверах Backend Infinite для теста нагрузки, серьезно.
counter=0while [ $counter -le 9 ]do port=$((8282+$counter)) nodejs /opt/local/share/test-tools/HikeCLI/nodeclient/httpserver.js $port & echo "Server created on port " $port
((counter++))done
echo "Created all servers"
Клиентский код
Что касается клиента, было ограничение 63K TCP-соединений на IP. Если вы не уверены в этой концепции, пожалуйста, обратитесь к моим Предыдущая статья В этой серии.
Таким образом, чтобы добиться 2,4 млн. Соединений (двухсторонний, который составляет 1,2 миллиона от клиентских машин), нам нужно где-то около 20 машин. Это боль действительно управлять командой «Вегета» на всех 20 машинах один за другим, и даже вы нашли способ сделать это, используя что-то вроде CSSHX , вам все равно понадобится что-то, чтобы сочетать все результаты от всех вегетативных клиентов.
Проверьте скрипт ниже.
result_file=$1
declare -a machines=("172.168.0.138" "172.168.0.141" "172.168.0.142" "172.168.0.18" "172.168.0.5" "172.168.0.122" "172.168.0.123" "172.168.0.124" "172.168.0.232" " 172.168.0.244" "172.168.0.170" "172.168.0.179" "172.168.0.59" "172.168.0.68" "172.168.0.137" "172.168.0.155" "172.168.0.154" "172.168.0.45" "172.168.0.136" "172.168.0.143")
bins=""commas=""
for i in "${machines[@]}"; do bins=$bins","$i".bin"; commas=$commas","$i; done;
bins=${bins:1}commas=${commas:1}
pdsh -b -w "$commas" 'echo "POST http://test.haproxy.in:80/ping" | /home/sachinm/.linuxbrew/bin/vegeta -cpus=32 attack -connections=1000000 -header="sleep:20" -header="times:2" -body=post_smaller.txt -timeout=2h -rate=3000 -workers=500 > ' $result_file
for i in "${machines[@]}"; do scp sachinm@$i:/home/sachinm/$result_file $i.bin ; done;
vegeta report -inputs="$bins"
Видимо, вегетация предоставляет информацию об этой утилите, называемой PDSH Это позволяет вам выполнить команду одновременно на нескольких машинах удаленно. Кроме того, вегетация позволяет нам объединить несколько результатов в одну, и это действительно все, что мы хотели.
Конфигурация haproxy.
Это, вероятно, то, что вы пришли сюда ищете, ниже – конфигурация HAProxy, которую мы использовали в нашем тесте нагрузки. Самая важная часть, являющаяся тем, что nbproc
настройка и Maxconn
параметр. Настройка MaxConn позволяет нам обеспечить максимальное количество подключений TCP, которые HAProxy может поддерживать в целом (один путь).
Изменения в Maxconn
Настройка приводит к увеличению HAProxy Process ‘ulimit. Посмотрите ниже
Максимальные открытые файлы увеличились до 4 миллионов из-за максимальных соединений для HAProxy, установленного на 2 миллиона. Аккуратный !
Проверьте статью ниже на целое количество оптимаций Haproxy, которые вы можете и должны сделать, чтобы достичь рода статистики, которую мы достигли.
Используйте HAProxy для загрузки баланса 300K одновременных соединений сокет TCP: Порт-истощение, сохранение живой и … Я пытаюсь создать толкающую систему недавно. Чтобы увеличить масштабируемость системы, лучшая практика должна сделать … www.linangran.com.
Http30 продолжается http83: p
Это все в настоящее время люди. Если вы это так далеко, я действительно поражен:)
Специальный крик в Дхирадж Кумар Сидана, который помог нам через это, и без чья помогали, мы не смогли бы достичь каких-либо значимых результатов.:)
Дайте мне знать, как этот пост блога помог вам. Также, пожалуйста, порекомендуйте (❤) и распространите любовь как можно больше для этого поста, если вы думаете, что это может быть полезно для кого-то.