Кто гонял Virtual Box на AWS?
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Кто гонял Virtual Box на AWS?
На старости лет подался в ДДОСники. Делаю симуляцию по высокой нагрузке
Мне надо побольше сокетов открыть так как сокету для коннекшина нужен свой IP то вроде как если посадить виртуал бокс на амазовновскую вм должно прокатить. Народ на стоковерфло плюется но вроде как сделать можно.
Если мож кто с сокетами рабоатет плотно то можно как то фейковые АйПи наплодить. Я проверяю имено на критичность открытых коннекшинсов типо.
В общем любые соображения велком вплоть до болезненных
Мне надо побольше сокетов открыть так как сокету для коннекшина нужен свой IP то вроде как если посадить виртуал бокс на амазовновскую вм должно прокатить. Народ на стоковерфло плюется но вроде как сделать можно.
Если мож кто с сокетами рабоатет плотно то можно как то фейковые АйПи наплодить. Я проверяю имено на критичность открытых коннекшинсов типо.
В общем любые соображения велком вплоть до болезненных
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Кто гонял Virtual Box на AWS?
Сокету для коннекшина нужен порт, а не IP. С одного клиентского хоста можно открыть тысячу сокетов на 80й порт сервера. У всех этих сокетов будет один IP, но разные порты на стороне клиента. Так что может и не надо много IP?
Если таки надо, и всё внутри одного хоста, то 127.*.*.* даёт достаточно адресов - они все идут на localhost.
А если наружу, то в случае linux в eth0 (ну или какое имя ifconfig показывает), есть витруальные интерфейсы eth0:0, eth0:1,... - и адреса добавляются командами типа:
# ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0
# ifconfig eth0:1 192.168.1.101 netmask 255.255.255.0
[..]
Если таки надо, и всё внутри одного хоста, то 127.*.*.* даёт достаточно адресов - они все идут на localhost.
А если наружу, то в случае linux в eth0 (ну или какое имя ifconfig показывает), есть витруальные интерфейсы eth0:0, eth0:1,... - и адреса добавляются командами типа:
# ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0
# ifconfig eth0:1 192.168.1.101 netmask 255.255.255.0
[..]
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Кормилец - спасибо огромное. С меня бесплатный обед. Я сейчас гляну в этом направлении - по результату отпишусь с оказией после праздников.helg wrote:Сокету для коннекшина нужен порт, а не IP. С одного клиентского хоста можно открыть тысячу сокетов на 80й порт сервера. У всех этих сокетов будет один IP, но разные порты на стороне клиента. Так что может и не надо много IP?
Если таки надо, и всё внутри одного хоста, то 127.*.*.* даёт достаточно адресов - они все идут на localhost.
А если наружу, то в случае linux в eth0 (ну или какое имя ifconfig показывает), есть витруальные интерфейсы eth0:0, eth0:1,... - и адреса добавляются командами типа:
# ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0
# ifconfig eth0:1 192.168.1.101 netmask 255.255.255.0
[..]
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Кто гонял Virtual Box на AWS?
а вы docker не пробовали? Там каждый имаге имеет свой ИП. Амазон вам может влететь в копеечку.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Likenew wrote:а вы docker не пробовали? Там каждый имаге имеет свой ИП. Амазон вам может влететь в копеечку.
В условиях данной задачи это одно и то же.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Кто гонял Virtual Box на AWS?
Сергей, со стороны load generator можно использовать порты выше 1024 и до 65К включительно, т.е. в терминологии языка си нужно последовательно
- создаете сокет
- bind его на специфический ай-пи и порт
- send / accept ну и так далее фразы в разговоре между load generator и сервер
код где-то примерно такой. Главноe это bind свою локальную структуру на свой ip и специфический указанный порт
Когда один ip address полностью исчерпает все порты, на той же машине нужно будет добавить второй ip адресс и так далее. Т.е. условно, если есть 10 ip адресов и 50 тыс. свободных портов, то можно создать до 500 тыс. outgoing ресурсов. Далее мы упираемся в NIC карточку/карточки, поскольку там данные пихаются хоть и быстро (для 1G NIC карточки), но последовательно.
Привязывать (bind) можно только к внешнему адресу, 127.0.0.х не подойдет, поскольку Вы пытаетесь использовать internal loopback address для коммуникации наружу. Вот если бы и сервер и load generator сидели бы на oдной машине, то такой фокус удался бы без проблем. Тестовый инстанс кассанды, для примера, именно так и инсталируется, каждая нода на свой адрес: 127.0.0.1, 127.0.0.2, и так далее.
Только пожалуйста не создавайте тысячи средов на одной машине по одному на каждую комбинацию ip:port, используйте select
Задача сохранять на самом деле status каждой комбинации ip:port, что бы понимать, какой ее статус в каждый момент времени
- она только bind,
- она что-то отправила и ждет получения,
- она получила и требует анализа,
- она проанализировала и ждет след. отправки
- и так далее.
пробегать ее в while(1) и в зависимости от статуса делать следующий шаг.
- создаете сокет
- bind его на специфический ай-пи и порт
- send / accept ну и так далее фразы в разговоре между load generator и сервер
код где-то примерно такой. Главноe это bind свою локальную структуру на свой ip и специфический указанный порт
Code: Select all
struct sockaddr_in local; /* socket info about our local */
int mysocket; /* socket used to send/receive */
socklen_t socksize = sizeof(struct sockaddr_in);
memset(&local, 0, sizeof(local)); /* zero the struct before filling the fields */
local.sin_family = AF_INET; /* set the type of connection to TCP/IP */
local.sin_addr.s_addr = htonl(<один из ip адресов локальной NIC card goes here>); /* set our address to any interface */
local.sin_port = htons(<порт от 1024 и до 65К goes here>); /* set the local port number */
/* create socket */
mysocket = socket(AF_INET, SOCK_STREAM, 0);
/* bind local information to mysocket */
bind(mysocket, (struct sockaddr *)&local, sizeof(struct sockaddr));
/* other steps */
Привязывать (bind) можно только к внешнему адресу, 127.0.0.х не подойдет, поскольку Вы пытаетесь использовать internal loopback address для коммуникации наружу. Вот если бы и сервер и load generator сидели бы на oдной машине, то такой фокус удался бы без проблем. Тестовый инстанс кассанды, для примера, именно так и инсталируется, каждая нода на свой адрес: 127.0.0.1, 127.0.0.2, и так далее.
Только пожалуйста не создавайте тысячи средов на одной машине по одному на каждую комбинацию ip:port, используйте select
Задача сохранять на самом деле status каждой комбинации ip:port, что бы понимать, какой ее статус в каждый момент времени
- она только bind,
- она что-то отправила и ждет получения,
- она получила и требует анализа,
- она проанализировала и ждет след. отправки
- и так далее.
пробегать ее в while(1) и в зависимости от статуса делать следующий шаг.
-
- Posts: 6
- Joined: 26 Oct 2003 04:48
- Location: MA
Re: Кто гонял Virtual Box на AWS?
select упрется в FD_SETSIZE (обычно 1024) так что больше 1000 коннетов на процесс селектом не получится. Лучше epoll, но много кода писать самому. Еще лучше взять готовый wrk (https://github.com/wg/wrk" onclick="window.open(this.href);return false;) и пользоваться.Леонид Ильич Брежнев wrote: Только пожалуйста не создавайте тысячи средов на одной машине по одному на каждую комбинацию ip:port, используйте select
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Ребята спасибо офигено. Я думаю, что я попытаюсь просто тупорыло запускать по порту. По условиям задачи у меня все одно больше 8 сокетов на один бокс не получится так как сам симулятор требует дофига памяти.
Я там вообще попытаюсь вбубенить вот такую хренотень чтоб реально страшно было когда картинка строится динамически со стороны симулятора и на стороне time series когда на одном боксе можно смотреть как симулятор пихает данные и как эти данные проходят через облако за одно и латенси и консистенси наглядно можно показать.
http://bl.ocks.org/mbostock/4060954" onclick="window.open(this.href);return false;
Я там вообще попытаюсь вбубенить вот такую хренотень чтоб реально страшно было когда картинка строится динамически со стороны симулятора и на стороне time series когда на одном боксе можно смотреть как симулятор пихает данные и как эти данные проходят через облако за одно и латенси и консистенси наглядно можно показать.
http://bl.ocks.org/mbostock/4060954" onclick="window.open(this.href);return false;
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 1997
- Joined: 10 Jul 2002 18:45
- Location: redwood shores
Re: Кто гонял Virtual Box на AWS?
voila https://github.com/shekyan/slowhttptest" onclick="window.open(this.href);return false;
And America has so many enemies. Iran, Iraq, China, Mordor, the hoochies that laid low Tiger Woods, undesirable immigrants - by which I mean everyone that came after me, including my children
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: Кто гонял Virtual Box на AWS?
А ну как Jmeter использовать?
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Кто гонял Virtual Box на AWS?
Когда я тестировал нагрузку до 150тыс одновременных коннектов на сервак - я напиcал скрипт, который разгонял на 10 реальных разных коробках с Линуксом внутри по 15к клиентов. Практически на каждой системе есть ограничения на кол-во сокетов/FD, поэтому разогнать такое число (150к) на одной системе малореально (сам сервак на Фре пришлось тюнить и максимизировать память).Sergunka wrote:В общем любые соображения велком вплоть до болезненных
Если цифра в пару тысяч соединений устраивает - можно разогнать и на одном боксе, коннект идет на один и тот же порт на серваке (который слушает), на клиентской машине каждый новый сокет будет отбирать один свободный порт. Если клиент - не серверная винда - то 1-2к коннектов клиент вынесет, если какой линукс - то можно и до 5-10к разогнать, возможно придется подкрутить ограничения на макс. кол-во сокетов на процесс и на систему, но ядро пересобирать имхо не придется.
Мой опыт показывает, что обычное (не уровня heavy load ISP hardware) офисное оборудование (раутеры, хабы етс) может начать сходить от нагрузки в 100к активных соединений с ума, это может быть неприятным сюрпризом.
В общем - интересное и позновательное дело.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Кто гонял Virtual Box на AWS?
Это теория, а на практике все зависит от количества памяти, операционной системы и ее конфигурации.Леонид Ильич Брежнев wrote: Когда один ip address полностью исчерпает все порты, на той же машине нужно будет добавить второй ip адресс и так далее.
Т.е. условно, если есть 10 ip адресов и 50 тыс. свободных портов, то можно создать до 500 тыс. outgoing ресурсов. Далее мы упираемся в NIC карточку/карточки, поскольку там данные пихаются хоть и быстро (для 1G NIC карточки), но последовательно.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 18906
- Joined: 30 Aug 2001 09:01
- Location: 3rd planet
Re: Кто гонял Virtual Box на AWS?
А можно ли сбацать на коленке примитивный симулятор симулятора? Ну типа чтото запускается на отдельной треде, присоединяется к серваку, шлет http(s) запрос(ы) на слушателя, получает ответ, отрубает коннект, засыпает на случайное время, просыпается и снова долбит?Sergunka wrote:Ребята спасибо офигено. Я думаю, что я попытаюсь просто тупорыло запускать по порту. По условиям задачи у меня все одно больше 8 сокетов на один бокс не получится так как сам симулятор требует дофига памяти.
Если логика взаимодействия позволяет такое упрощение - таким образом можно легко разогнаться до нескольких тысяч псевдоклиентов и неплохо оттестровать серверную часть варьируя длительность сна и количество псевдоклиентов, например захреначить 1000 клиентов которые не спят вообще и посмотреть, что будет с серваком.
Тупизна как Энтропия. Неумолимо растет.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Это предложение оказалось решающим на спрингбуте оказалось порт модифицируется параметром при вызове так, что я легко пусканул 27 серверов типо томкет у себе на маке и показал ошеломленной индусской массе как это должно выглядить.helg wrote:Сокету для коннекшина нужен порт, а не IP. С одного клиентского хоста можно открыть тысячу сокетов на 80й порт сервера. У всех этих сокетов будет один IP, но разные порты на стороне клиента. Так что может и не надо много IP?
Индюки побулькали - главный индус выразил мнение чо мол де не это они искали... на этом и порешили.
После чего индусы по-мельче стали просить, чтоб я им дал скрипт погонять. Я даже опешил сказал я вроде как живой могу и сам погонять?
Приходил даже сам архитект и просил дать скрипт - на что я резоно ответил, что скрипт я написал в свои выходные, что правда и гонять если надо буду сам.
P.S. helg - еще раз респект и огромное спасибо
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 4207
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: Кто гонял Virtual Box на AWS?
Сожрут вас индусы с потрохами. Скажите что случайно стерли навсегда. Но можете в рабочее время восстановить по памяти если назначат самым главным и повысят в должности
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Дельный совет. Спасибоfruit6 wrote:Сожрут вас индусы с потрохами. Скажите что случайно стерли навсегда. Но можете в рабочее время восстановить по памяти если назначат самым главным и повысят в должности
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
В общем опубликовал я статью у себя в блоге. По маштабированию ограничился скупым упоминанием, что маштабируется и очень легко
А чтоб индюкам не было скучно читать в надежде понять как это делается, то добавил картинок и цитат из Майкла Крайтона
https://vyatkins.wordpress.com/2016/07/30/velociraptor/" onclick="window.open(this.href);return false;
А чтоб индюкам не было скучно читать в надежде понять как это делается, то добавил картинок и цитат из Майкла Крайтона
https://vyatkins.wordpress.com/2016/07/30/velociraptor/" onclick="window.open(this.href);return false;
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Кто гонял Virtual Box на AWS?
Интересно какая практическая задача решалась таким тестированием ?
Если timeseries собирались через сокеты, то это как я понимаю EC2 instance
https://www.quora.com/What-is-the-maxim ... -increased" onclick="window.open(this.href);return false;
http://pushentertainment.com/rds-connec ... ance-type/" onclick="window.open(this.href);return false;
В Redshift вообще очень хитро настраивается число коннекшенов для user. И все это мониторится в разных аспектах через консоль
Если timeseries собирались через сокеты, то это как я понимаю EC2 instance
https://www.quora.com/What-is-the-maxim ... -increased" onclick="window.open(this.href);return false;
Если только Кафка там стоит и на нее приходит от коньсюмеров, тоThere are no any limits set by AWS. I was able to handle 1 million concurrent connections on single EC2 instance using my custom Erlang based server software. The only limit is available RAM on the instance.
С RDS соответсвенно другая песняI know for Kafka servers, they typically go to 300K concurrent inbound connections to a single server process. They can go upper, but the performance gain is less interesting while stability concerns start to exist, e.g. the NIO selector starts to bear overhead.
http://pushentertainment.com/rds-connec ... ance-type/" onclick="window.open(this.href);return false;
В Redshift вообще очень хитро настраивается число коннекшенов для user. И все это мониторится в разных аспектах через консоль
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Задача второго закона термодинамикиСабина wrote:Интересно какая практическая задача решалась таким тестированием ?
Энтропия. Второй закон связан с понятием энтропии, являющейся мерой хаоса (или мерой порядка). Второй закон термодинамики гласит, что для вселенной в целом энтропия возрастает. Оба определения второго закона термодинамики опираются на первый закон термодинамики, утверждающий, что энергия убывает.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Кто гонял Virtual Box на AWS?
Ты меня прости конечно, но статья не о чем. Ты бомбардируешь что-то небольшим по размеру json-ом. Ну ок. Ничего не известно, ни о топологии на другом конце, ни о том, как это обрабатывается (может ты всегда HTTP 200 возвращаешь), нету ни application level метрик, ни аналогичных системных метрик. Нету информации о системных параметрах, если это важно. Нету интересных графиков зависимости размера payload (json в твоем случае), как функция количества запросов и лайтенси. В общем это тебе видимо понятно, но использовать эту информацую как-то еще довольно проблематично.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Я не могу эти данные опубликовать согласно NDA... увы. В данном случае я использую статью в блоге, чтоб забить первенство в подходе. Собственно статья только об этом какой подход я использую для генерации устройств, сенсоров и задания метрики сенсора и там много чего по мелочам.Леонид Ильич Брежнев wrote:Ты меня прости конечно, но статья не о чем. Ты бомбардируешь что-то небольшим по размеру json-ом. Ну ок. Ничего не известно, ни о топологии на другом конце, ни о том, как это обрабатывается (может ты всегда HTTP 200 возвращаешь), нету ни application level метрик, ни аналогичных системных метрик. Нету информации о системных параметрах, если это важно. Нету интересных графиков зависимости размера payload (json в твоем случае), как функция количества запросов и лайтенси. В общем это тебе видимо понятно, но использовать эту информацую как-то еще довольно проблематично.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Кто гонял Virtual Box на AWS?
Прости, подход в чем? Из статьи невозможно даже понять, что генеририруешь ты на стороне нагрузки, т.е. load generator, по крайней мере именно это мы тут обсуждали. Ну т.е. если знать контент то можно понять что своим http://localhost...." onclick="window.open(this.href);return false;? ты задаешь параметры генерации. Графики, кстати с трудоим читаемые, и не совсем понятно, что у нас от чего.
Извини, это внешнее впечатление.
Извини, это внешнее впечатление.
-
- Уже с Приветом
- Posts: 34164
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Кто гонял Virtual Box на AWS?
Я не ставил себе задачу рассказать как и что там делается. Моя задача была очень простой забить подход в открытой публикации и дать как можно меньше информации подражателямЛеонид Ильич Брежнев wrote:Прости, подход в чем? Из статьи невозможно даже понять, что генеририруешь ты на стороне нагрузки, т.е. load generator, по крайней мере именно это мы тут обсуждали. Ну т.е. если знать контент то можно понять что своим http://localhost...." onclick="window.open(this.href);return false;? ты задаешь параметры генерации. Графики, кстати с трудоим читаемые, и не совсем понятно, что у нас от чего.
Извини, это внешнее впечатление.
Собственно я и хотел услышать подобного рода ревью, что нихрена не понятно как там чего делается - это было изначально так и задумано. Это просто часть так сказать корпоративного игры. К слову сказать мой блог ненавидят, но пока закрыть не могут. Уже открыто пишут в легал департмент с просьбами разобраться с блогом
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Кто гонял Virtual Box на AWS?
Ну хорошо, если мы тут помогли в какой-то большей политике.Sergunka wrote:Собственно я и хотел услышать подобного рода ревью, что нихрена не понятно как там чего делается - это было изначально так и задумано. Это просто часть так сказать корпоративного игры. К слову сказать мой блог ненавидят, но пока закрыть не могут. Уже открыто пишут в легал департмент с просьбами разобраться с блогом
Я полистал блог, до марта 2016 года, там реально есть с чем бороться? Какая у вас там интересная жизнь.
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Кто гонял Virtual Box на AWS?
В данном случае дарагой ЛИБ тремя словами и предлогом выразил все то, что я бы изливал словесным поносом на три экрана.Леонид Ильич Брежнев wrote:Прости, подход в чем?
Сергунька, я верю внутренне, что какой-то нетривиальный подход имеет место. Что NDA чем-то мешает. Но то, что видно из блога/Привета.... ну, скажем мягко, не впечатляет. И "забить первенство" таким болгпостом точно не выйдет
Мат на форуме запрещен, блдж!