Как эмулировать 500-50000 рабочих (докер) узлов сети? - PullRequest
0 голосов
/ 19 октября 2018

Итак, у меня есть рабочий докер изображений.Я хочу раскрутить сеть из 500-50000 узлов, чтобы эмулировать то, что происходит с частной цепочкой блоков, такой как etherium, в разных масштабах.Что было бы рекомендовано для инструмента / библиотеки с открытым исходным кодом для такой работы:

a) такой, которая гарантировала бы, что даже на низкоуровневом (скажем, одном 40-ядерном узле) все рабочие будут перемещены вперед во времениравно (не в реальном времени)

b) разрешит (а) в распределенной настройке (скажем, 10 низкоуровневых узлов на одной локальной сети)

Другими словами, я не ищу сеть в реальном времениэмуляция, так что я могу подождать 10 часов, чтобы смоделировать 1 минуту, и это будет достаточно хорошо для меня.Я думал о Kathara , но проблема все еще остается - как убедиться, что, скажем, 10000 контейнеров получают одинаковое количество тиков в циклическом порядке?

Так, как эмулировать комплекс?сеть докеров?

1 Ответ

0 голосов
/ 29 октября 2018

Я предполагаю, что вы будете запускать каждую из контейнеров.Чтобы каждый контейнер работал с одинаковым доступом к ЦП, вы можете настроить резервирование ЦП и ограничения для каждой реплики.Эти числа вычисляются до дробных срезов ядра, поэтому в системе с 8 ядрами вы можете дать каждому контейнеру 0,01 ядра для работы свыше 800 контейнеров.См. Составьте документацию о том, как установить ограничения ресурса .А в режиме роя вы могли бы распределить эти реплики по нескольким узлам, совместно используя сеть.

Тем не менее, я думаю, что совет для запуска более коротких симуляций на большем количестве оборудования хорош.Вы обнаружите, что значительная часть времени затрачивается на переключение контекста между каждым процессом, что, возможно, делает недействительными любые измерения, которые вы хотите выполнить.

Вы также столкнетесь с проблемами масштабируемости с докером и выбранным вами инструментом оркестровки.Например, вам необходимо настроить размер подсети для любой общей сети, которая по умолчанию равна / 24 с примерно 253 доступными IP-адресами.Сам механизм докера, скорее всего, будет тратить нетривиальное количество процессорного времени, поддерживая состояние всех работающих контейнеров.

...