Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
Здравствуйте, Codealot, Вы писали:
C>Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
Ну так "облака" — это и есть виртуальные машины! Три блэйда, на которых вертится тысяча виртуалок Есессно, всё это фуфло тормозит. Я делал совсем уж примитивный тест — простая консолька делала SELECT из базы (MS SQL). Разница с "нативным десктопом" была точно в 2 раза медленнее (точно не скажу, может и в три — я просто тогда охренел и понял, что такие облака мне даром не нужны). Причём не факт, что если ты проапгрэйдишься на более дорогой план, что-то станет намного лучше — РЕАЛЬНОГО железа тебе всё равно не видать — всё будет так же крутиться в виртуалках.
Облака — очевидная ловушка, причём из говна и палок. Кто на это вообще ведётся?!
Здравствуйте, Kolesiki, Вы писали:
K>Ну так "облака" — это и есть виртуальные машины!
Ну про скорость самих ВМок — это понятно. Но скорость коммуникаций между ними, которая получилась в моем тесте — это совсем полный абзац. Вот я и удивляюсь.
Допустим, на одном ноде их хостится 8 штук (считая по числу ядер), и этот нод соединяется с сетью 100 гигабит. Тогда на одну ВМку должно приходится около 1.5 гигабайт в секунду. А получается — всего 60 мегабайт.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
А у тебя в виртуалке ssd? Если hdd — то вот в скорость записи все и уперлось.
C>Ну про скорость самих ВМок — это понятно. Но скорость коммуникаций между ними, которая получилась в моем тесте — это совсем полный абзац. Вот я и удивляюсь. C>Допустим, на одном ноде их хостится 8 штук (считая по числу ядер), и этот нод соединяется с сетью 100 гигабит. Тогда на одну ВМку должно приходится около 1.5 гигабайт в секунду. А получается — всего 60 мегабайт.
Значит, наверное, твои допущения неправильные. Либо там 800 штук, а не 8, либо 100 мбит а не гигабит, либо оба сразу. Либо storage account на лентах, для дешевизны.
Здравствуйте, Sharowarsheg, Вы писали:
S>Значит, наверное, твои допущения неправильные. Либо там 800 штук, а не 8, либо 100 мбит а не гигабит, либо оба сразу. Либо storage account на лентах, для дешевизны.
Учитывая расценки, это было бы особо циничным издевательством над облакофилами.
Здравствуйте, Codealot, Вы писали:
КБ>>А у тебя в виртуалке ssd? C>Естественно.
Учитывая что storage точно так же виртуализируется то не имея доступа к hypervisor на этот вопрос ответить в общем то нельзя.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
Нет, [обычно] это не нормально. Спроси у своего провайдера.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
Да как везде — комбинация из уплаченных денег/политки владельцев облака/текущей нагрузки на облачную инфраструктуру.
Кто-то честно указывает пропускную способность сети и как ей поднять https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html
А кто-то экономит на железе и суровую правду (а также расценки на выделенный линк под ваши виртуалки) можно узнать только через техподдержку.
Здравствуйте, Codealot, Вы писали:
C>Допустим, на одном ноде их хостится 8 штук (считая по числу ядер), и этот нод соединяется с сетью 100 гигабит. Тогда на одну ВМку должно приходится около 1.5 гигабайт в секунду. А получается — всего 60 мегабайт.
Нет гарантии, что storage и созданная VM топологически локальны друг другу. А значит — трафик медленный. Но даже если машины топологически локальны — всё будет упираться в квоты (потому что нельзя дать "всем всё", любой ресурс конечен).
Собственно, межузловое взаимодействие и его latency — это ещё один фактор, который надо держать в уме при проектировании распределённых систем. Это может быть как сетевой трафик, так и доступ к, например, RAM в случае NUMA-платформ, когда логическая распределённость появляется на физически одной и той же материнской плате.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
У казахстанского провайдера, которым я пользуюсь, скорость порта на виртуальной машине и на выделенной машине — сто мегабитов. Хотелось бы гигабит, конечно, но вообще пока не упирался в эту скорость. На мой взгляд это не критично.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
Какие "машины", какие "storage account"?
В AWS (или GCP/Azure) получаем то, за что платим. Нужно быстрое нелокальное блочное хранилище — берём соответствующий тип узла. Нужно быстрое локальное хранилище — берём другой. В AWS их уже около тысячи штук вариантов: https://ec2instances.info/
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе. Скорость — около 60 мб в секунду То есть даже на гигабитный эзернет не тянет. В связи с чем возник вопрос — это вообще нормально?
У нас на dev скорость раза в полтора повыше, но да, тоже не фонтан. Но, в целом, это не доставляет больших неприятностей
Подобные операции обрабатываются асинхронно (то есть пользователь не ожидает получить результат мнгновенно). Вот когда требуется провести какое-то обслуживание (например, вычитать кучу всего, поменять и сохранить обратно), то тут уже да — приходится выдумывтаь как бы это сделать так, не помешав пользователям. Но повседневным, основным задачам не мешает.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Codealot, Вы писали:
C>Ковыряясь в одной облачной системе с большим количеством баззвордов на предмет "выяснить, почему оно так бешено тормозит", я решил сделать небольшой тест — скачивать данные из storage account на виртуальную машину, которая хостится в том же регионе.
Тип и tier у твоего аккакунта какой? Если хочешь мегаскорость — тогда Premium (не путать с Block Premium) и размер побольше (скорость зависит от размера). Но там доступное API сильно ограничено. Если хочешь полноценное API — тогда Premium Block.
А эзернет тут не причем, Azure Storage это SaaS, разделяемый между всеми потребителями, в монополное владение никто тебе его не отдаст.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Тип и tier у твоего аккакунта какой? Если хочешь мегаскорость — тогда Premium (не путать с Block Premium) и размер побольше (скорость зависит от размера). Но там доступное API сильно ограничено. Если хочешь полноценное API — тогда Premium Block.
И сколько составляет эта мегаскорость в реальности?
НС>А эзернет тут не причем, Azure Storage это SaaS, разделяемый между всеми потребителями, в монополное владение никто тебе его не отдаст.
То есть там всё упирается в одно бутылочное горлышко?
Здравствуйте, Codealot, Вы писали:
C>И сколько составляет эта мегаскорость в реальности?
https://azure.microsoft.com/en-us/pricing/details/managed-disks/
НС>>А эзернет тут не причем, Azure Storage это SaaS, разделяемый между всеми потребителями, в монополное владение никто тебе его не отдаст. C>То есть там всё упирается в одно бутылочное горлышко?
Нет, все упирается в то, сколько ты заплатил. Платишь за P80 и получаешь гигабайт в секунду.