Перейти к содержимому

Фотография

Использования виртуальных машин при организации стендов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 36

#1 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 20 мая 2009 - 09:25

Уважаемые коллеги

возникла определенная проблема технического характера.

В настоящий момент еженочно гоняются три тестовых стенда. Примерное время прогона одного стенда уже зашкаливает за 5 часов. Т.е. ночи уже не хватает.
Программа прогонов начинается в 21:00 и ожидается, что к 8:00 можно знакомится с результатами и выносить соответствующие решения по билду для обновления клиентов.

Но реально прогон тестов завершается только к 11 часам уже сейчас. А количество тестов расширяется, при этом появляется все больше тестов, которые требуют достаточно большого времени исполнения каждый (автоматические методы заполнения, массового обновления, биллинг и т.п.)

Ведется активная работа по рефакторингу тестов и минимизации времени исполнения. Однако резервы здесь слишком малы.

Возникает потребность приобретения еще одного сервера тестирования.

Как альтернатива, так и и как решения на будущее - попытаться использовать на сервере несколько установленных виртуальных машин, каждая из которых будет паралельно гнать тесты. Данное решение очевидно более эффективно будет использовать рабочее время сервера.

Мои опыты локально (машина с АМД процессором типа 2800 + 1 гиг памяти) на двух виртальных машинах VMWare и VirtualBox дают не очень утешительные результаты.

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

Есть ли те, кто активно использует VM для описанных выше целей? Какова вообще возможность использования для целей ночных прогонов нескольких виртуальных машин? Каковы должны быть требования к железу?

Был бы очень признателен за ваш опыт и советы
  • 0
С уважением, Эдуард!

#2 Vasiliy

Vasiliy

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 959 сообщений
  • ФИО:Касимов Василий
  • Город:Москва

Отправлено 20 мая 2009 - 10:03

Был опыт использования нескольких VMWare, но для других целей.
Если Вы делите 1 Гб оперативки на две VM, то, на мой взгляд, это очень мало. Либо вари внутри себя будут тормозить, либо памяти не хватит и ОС будет свопить на жесткий диск.
  • 0

#3 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 20 мая 2009 - 11:06

Заветная надежда, связанная с автоматизацией в это время, была высказана в начале 80-х годов одним из заместителей министра путей сообщения во время выступления перед ИТР некоего министерского КБ: «Вы же все здесь очень талантливые люди. Ну, сделайте такое электронное устройство, чтобы пропускная способность наших железных дорог увеличилась…» Талантливые люди очень вежливо посоветовали прокладывать дополнительные пути, чтобы было где ездить дополнительным поездам. С тех пор я успел поработать во многих местах, но смысл просьб руководства зачастую сводился к тому же. Наверное, все дело в том, что эти люди атеисты. Иначе бы они молили Бога. Хотя, по имеющейся у меня информации, Господь тоже редко помогает увеличивать прибыльность бизнеса без капитальных вложений.

(с) Андрей Орлов "Записки автоматизатора"


Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.
  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 20 мая 2009 - 13:11

Виртуализация в тестировании даёт выигрыш когда:
1) либо у вас есть несколько "логических" машин, каждая из который неполностью загружает "физическую" машину
2) либо вам надо использовать много различных предустановленных и преднастроенных конфигураций.

Разумеется, виртуальная машина не может разогнать ваш физический процессор или жёсткий диск или ещё какое-то устройство, так что если эти ресурсы физически используются на пределе возможностей, виртуализация только ухудшит ситуацию.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Clauster

Clauster

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 913 сообщений
  • ФИО:Худобородов Валерий
  • Город:Espoo

Отправлено 20 мая 2009 - 13:35

Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.

Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.
  • 0

#6 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 20 мая 2009 - 14:43

Если всё же решитесь на виртуализацию, я бы посоветовал посмотреть cloud направление. Достоинства:
1) относительно доступные цены
2) необходимое число серверов по требованию и только
3) отсутствие головной боли с апгрейдами\ремонтами (железо для каждого сервера подбирается в момент запуска машины)
3) экономия свободного места в офисе (если нет серверной)

Главный минус - это цена. Доступность определяется ресурсами компании, так что плюс запросто может превратиться в минус.
  • 0

#7 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 20 мая 2009 - 18:03

Всем большое спасибо. Я надеюсь получить еще feedback для правильного и взвешенного принятия решения.

Ниже ответы на Ваши сообщения

Был опыт использования нескольких VMWare, но для других целей.
Если Вы делите 1 Гб оперативки на две VM, то, на мой взгляд, это очень мало. Либо вари внутри себя будут тормозить, либо памяти не хватит и ОС будет свопить на жесткий диск.

Вы не совсем поняли, что я имел в виду. На своей локальной машине я лишь тестировал возможность работы ОДНОЙ виртуальной машины.

Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига. Я просто интересовался возможностью, ощущениями и перспективностью этого направления. Например, можно будет приобрести мощный сервер и использовать его ресурсы более эффективно...

Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.

Сергей, именно об этом я и подумал в ответ на предложения ПМ обдумать идею использования виртуальных машин. Совет Ваш я понял (хотя мы вроде были на ты :) )

Виртуализация в тестировании даёт выигрыш когда:
1) либо у вас есть несколько "логических" машин, каждая из который неполностью загружает "физическую" машину
2) либо вам надо использовать много различных предустановленных и преднастроенных конфигураций.

Разумеется, виртуальная машина не может разогнать ваш физический процессор или жёсткий диск или ещё какое-то устройство, так что если эти ресурсы физически используются на пределе возможностей, виртуализация только ухудшит ситуацию.

Разумеется, Алексей, я совсем не заблуждаюсь на этот счет. Дело не в разгонке физического процессора, а уплотнения его работы. Парралльлность исполнения тут ключевое понятие, которое как ожидается может дать выигрыш во времени. Скажем два парарельных процесса будут занимать 9 часов, в то время как два последовательных 12. А может быть два параллельных процесса будут занимать ровно 6 часов т.е. в два раза меньше. Возможна ли такая ситуация?


Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.


Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?


Если всё же решитесь на виртуализацию, я бы посоветовал посмотреть cloud направление. Достоинства:
1) относительно доступные цены
2) необходимое число серверов по требованию и только
3) отсутствие головной боли с апгрейдами\ремонтами (железо для каждого сервера подбирается в момент запуска машины)
3) экономия свободного места в офисе (если нет серверной)

Главный минус - это цена. Доступность определяется ресурсами компании, так что плюс запросто может превратиться в минус.

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


Добавлю еще про VirtualBox - к сожалению эта машина нас вообще не устраивает. Ее время синхронизируется с временем хост-машины, а у нас во время тестирования идет очень активное движение по ввремени как в прошлое так и будущее. При этом в каждой машине оно будет меняться по-разному. В этом отношении вероятно VMware без альтернативы
  • 0
С уважением, Эдуард!

#8 Clauster

Clauster

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 913 сообщений
  • ФИО:Худобородов Валерий
  • Город:Espoo

Отправлено 20 мая 2009 - 21:39

Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига.

Извините, но это по-моему прошлый век.

Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.


Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?

Пусть новый сервер стоит 20000 р., а один человеко-час 1000 р. Итого, сервер окупает себя за 20 часов. Сколько времени вы уже потратили на решение проблемы и ещё потратите? Если больше 20 часов - у вас минус один сервер, потратили рабочую неделю - минус 2 сервера. Ну т.е. смысл в том, что вместо прямых обязанностей специалист занимается решением непонятных проблем.
  • 0

#9 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 21 мая 2009 - 03:35

Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига.

Извините, но это по-моему прошлый век.

Речь не о мощности или не мощности сервера. Речь пока идет о том, можно ли или нельзя принципиально использовать несколько экземпляров виртуальной машины для параллельной прогонки тестов на одном стенде. И какой мощности сервер требуется для этих целей, если овчинка выделки стоит. Если нет, то тоже хотелось бы получить аргументацию.

Все что описано выше, пока говорит о том, что скорее нет, чем да.


Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?

Пусть новый сервер стоит 20000 р., а один человеко-час 1000 р. Итого, сервер окупает себя за 20 часов. Сколько времени вы уже потратили на решение проблемы и ещё потратите? Если больше 20 часов - у вас минус один сервер, потратили рабочую неделю - минус 2 сервера. Ну т.е. смысл в том, что вместо прямых обязанностей специалист занимается решением непонятных проблем.


Пусть со стоимостью сервера Вы угадали. Пусть и стоимость человека-часа тоже верна. Я не очень понимаю бухгалтерии, при которой окупаемость исчисляется таким странным образом.
Сервер, работа тестеров и еще много кого - все это затратная часть бюджета. Доход происходит от продаж. Это вроде известно всем.

Стоимость сервера - единовременная затрата, стоимость работ тестировщиков - затраты регулярные. Почему 20 часов работы - окупает приобретение одного сервера? С чем Вы сравниваете вообще эффективность такого решения?

Почему непонятных проблем? Проблема совершенно понятна. Количество тестов, их сложность, времязатратность возрастает. Увеличивается общее время прогона тестов. Получения результатов тестов отдаляется от утра в день - проблема отложенного решения. Причины тоже понятны, способы решения есть:
1. перевести сервер на круглосуточное тестирование - проблема обновлений, коррекций и т.п. - путь не самый лучший
2. сместить начала прогонки тестов с 21:00 на официалный конец рабочего дня -скажем на 18:00 - решение не удобное, часто работа может продолжаться до 19:00 или 20:00
3. распараллелить выполнение тестовых прогонов - идеальный вариант 1 стенд - 1 процесс. Способ организации -покупка новых мощностей - сервера (очевидное решение, но требует дополнительных капиталовложений), использование существующих мощностей - возможно построение какого-то кластера и т.п. (сложное пока не реализуемое решение), создание параллельности работы на одном сервер за счет виртуализации (интересный, на первый взгляд вполне очевидный и самонапрашивающийся способ)
  • 0
С уважением, Эдуард!

#10 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 21 мая 2009 - 09:05

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


Возьмём, например, сервис Amazon EC2. Вы арендуете у Amazon инстанс и монтируете для выбранного инстанса образ с предустановленными ОС (в нашем случае это Windows Server) и различными программами (например, MS SQL Server). Полный список доступных образов можно найти на странице сервиса. Вот, собственно и всё. С помощью специальной утилиты (а утилит этих много - я использовал plug-in для FireFox'а):

1) запускаете машину
2) подключаетесь к ней через Remote Desktop
3) доставляете необходимый софт
4) наслаждаетесь работой в облаке

Как только машина включается - стартует счётчик оплаты. Машину "застопили" - счётчик остановился. То есть оплата идёт исключительно за использование машинных ресурсов + "Data Transfer"

P.S. Подобные услуги предлагает не только Amazon, просто эта компания в данной сфера явный лидер!
  • 0

#11 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 21 мая 2009 - 09:20

P.S. Подобные услуги предлагает не только Amazon, просто эта компания в данной сфера явный лидер!

Спасибо за интересный совет. Нужно будет обратить внимание нашего ПМ
  • 0
С уважением, Эдуард!

#12 AlexP

AlexP

    Опытный участник

  • Members
  • PipPipPipPip
  • 406 сообщений
  • Город:Санкт-Петербург

Отправлено 21 мая 2009 - 09:45

Спасибо за интересный совет. Нужно будет обратить внимание нашего ПМ


Я бы сперва попробовал поиграться, нежели сразу отвлекать таких занятых людей как ПМы :hi: Одно дело сказать: "Вот тут мне предложили...", другое: "Я изучил и предлагаю..." По времени настроить всё с 0 ну не более 2-х часов, а затраты - не более 1$
  • 0

#13 rlabs

rlabs

    Специалист

  • Members
  • PipPipPipPipPip
  • 660 сообщений
  • Город:Россия, Санкт-Петербург

Отправлено 21 мая 2009 - 13:03

Стоимость сервера - единовременная затрата, стоимость работ тестировщиков - затраты регулярные. Почему 20 часов работы - окупает приобретение одного сервера? С чем Вы сравниваете вообще эффективность такого решения?

Здесь тонкость в том, что затраты компании на ваши исследования по теме "Как бы нам не покупать сервер" могут быть сопоставимы со стоимостью приобретения сервера. При этом сервер - вот он, им можно сразу пользоваться, а приведет ли исследование к чему-либо, кроме покупки сервера - еще неизвестно.

Железо, как правило, дешевле времени в современных условиях.
  • 0

#14 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 22 мая 2009 - 06:57

Здесь тонкость в том, что затраты компании на ваши исследования по теме "Как бы нам не покупать сервер" могут быть сопоставимы со стоимостью приобретения сервера. При этом сервер - вот он, им можно сразу пользоваться, а приведет ли исследование к чему-либо, кроме покупки сервера - еще неизвестно.
Железо, как правило, дешевле времени в современных условиях.

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

Недостатки понятны: время на изучение технологии, как всегда в реальности встречаешься с кучей проблем, которые в теории не описаны.

Но с другой стороны без изучения новых возможностей нет прогресса
  • 0
С уважением, Эдуард!

#15 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 22 мая 2009 - 07:17

Вопрос с виртуализацией, вопрос перспективы. Ведь согласитесь в виртализации есть определенный смысл и удобство:
1. один раз настроил, сохранил и развертывай в течение короткого времени
2. параллельность на одном компьютере

1. Определённо да, как я уже писал чуть выше, для тестирования на большом количестве различных конфигураций витруализация очень удобна.
2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#16 novak

novak

    Новый участник

  • Members
  • Pip
  • 67 сообщений
  • Город:MO

Отправлено 22 мая 2009 - 09:30

Применение виртуализации, как упоминалось выше, было бы оправдано в вашем случае, если сервер, на котором сейчас происходит выполнение тестов, имел бы дополнительные ресурсы. Если у вас узкое место именно в количестве серверов, а не в ресурсах - вполне имеет смысл попробовать использовать средства виртуализации.
При этом производительность виртуальных машин зависит от многих параметров. Если тесты в ВМ тормозят - посмотрите, почему это происходит. Возможно, у вас происходит активная работа с жёстким диском, а вы выбрали расширяемый виртуальный диск, причин может быть множество.
Если будете пробовать продукты VmWare - обратите внимание на VmWare Server. Для автоматизированных тестов на одном сервере - то, что нужно. По моему опыту, работает намного шустрее того же VmWare Workstation.
Для развёртывания конфигураций скорее было бы лучше использовать средства резервного копирования - легче потом переносить на разные виртуальные машины. Получается, что у вас хранятся образа виртуальных жёстких дисков, с которых вы потом просто восстанавливаетесь на необходимую виртуальную машину. Так называемые снепшоты хоть и быстрее восстанавливаются, но ведут за собой потерю в производительности в процессе выполнения тестов.
  • 0

#17 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 22 мая 2009 - 09:50

2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.

Алексей, поясните, пожалуйста, Вашу вторую мысль. Что это за обоснование? И каким образом можно достичь параллельности, кроме как не использованием дополнительного "железа"?
  • 0
С уважением, Эдуард!

#18 galogenIt

galogenIt

    Постоянный участник

  • Members
  • PipPipPip
  • 192 сообщений
  • ФИО:Эдуард

Отправлено 22 мая 2009 - 09:55

... Если у вас узкое место именно в количестве серверов, а не в ресурсах - вполне имеет смысл попробовать использовать средства виртуализации.
Если будете пробовать продукты VmWare - обратите внимание на VmWare Server.
Для развёртывания конфигураций скорее было бы лучше использовать средства резервного копирования - легче потом переносить на разные виртуальные машины. Так называемые снепшоты хоть и быстрее восстанавливаются, но ведут за собой потерю в производительности в процессе выполнения тестов.


Спасибо за ответ. про снепшоты слышу первый раз. Что это за зверь? Мы в работе используем образ диска - правда не в тестировании, а других задач. Это повзоляет быстро скопировать конфигурацию на множество машин - это и есть снепшоты?
  • 0
С уважением, Эдуард!

#19 novak

novak

    Новый участник

  • Members
  • Pip
  • 67 сообщений
  • Город:MO

Отправлено 22 мая 2009 - 10:15

про снепшоты слышу первый раз. Что это за зверь?

Это по сути снимок текущего состояния виртуальной машины, от английского snapshot. Т.е. не просто копирование диска, а сохранение конфигурации, состояния оперативной памяти, если машина включена, и т.д.
  • 0

#20 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 22 мая 2009 - 13:47

2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.

Алексей, поясните, пожалуйста, Вашу вторую мысль. Что это за обоснование? И каким образом можно достичь параллельности, кроме как не использованием дополнительного "железа"?

Современные операционные системы и так умеют эффективно распараллеливать выполнение процессов при наличии нескольких процессоров или ядер. Зачем виртуализация? Просто запускайте несколько процессов параллельно и всё. Возможно, по каким-то причинам в Вашем случае это невозможно, конечно, но в общем случае -- параллельности можно достичь и без виртуализации.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных