Использования виртуальных машин при организации стендов
#1
Отправлено 20 мая 2009 - 09:25
возникла определенная проблема технического характера.
В настоящий момент еженочно гоняются три тестовых стенда. Примерное время прогона одного стенда уже зашкаливает за 5 часов. Т.е. ночи уже не хватает.
Программа прогонов начинается в 21:00 и ожидается, что к 8:00 можно знакомится с результатами и выносить соответствующие решения по билду для обновления клиентов.
Но реально прогон тестов завершается только к 11 часам уже сейчас. А количество тестов расширяется, при этом появляется все больше тестов, которые требуют достаточно большого времени исполнения каждый (автоматические методы заполнения, массового обновления, биллинг и т.п.)
Ведется активная работа по рефакторингу тестов и минимизации времени исполнения. Однако резервы здесь слишком малы.
Возникает потребность приобретения еще одного сервера тестирования.
Как альтернатива, так и и как решения на будущее - попытаться использовать на сервере несколько установленных виртуальных машин, каждая из которых будет паралельно гнать тесты. Данное решение очевидно более эффективно будет использовать рабочее время сервера.
Мои опыты локально (машина с АМД процессором типа 2800 + 1 гиг памяти) на двух виртальных машинах VMWare и VirtualBox дают не очень утешительные результаты.
ТС под виртальной машиной работает явно медленнее,тесты более требовательны к разным задержкам и хотя мы стараемся где это можно использовать WaitWindow, все равно переделок потребуется слишком много, а процент падений тестов из-за торомзов слишком велик. Возможно тут проблема в неочень производительной машине, на которой производилось испытание.
Есть ли те, кто активно использует VM для описанных выше целей? Какова вообще возможность использования для целей ночных прогонов нескольких виртуальных машин? Каковы должны быть требования к железу?
Был бы очень признателен за ваш опыт и советы
#2
Отправлено 20 мая 2009 - 10:03
Если Вы делите 1 Гб оперативки на две VM, то, на мой взгляд, это очень мало. Либо вари внутри себя будут тормозить, либо памяти не хватит и ОС будет свопить на жесткий диск.
#3
Отправлено 20 мая 2009 - 11:06
(с) Андрей Орлов "Записки автоматизатора"Заветная надежда, связанная с автоматизацией в это время, была высказана в начале 80-х годов одним из заместителей министра путей сообщения во время выступления перед ИТР некоего министерского КБ: «Вы же все здесь очень талантливые люди. Ну, сделайте такое электронное устройство, чтобы пропускная способность наших железных дорог увеличилась…» Талантливые люди очень вежливо посоветовали прокладывать дополнительные пути, чтобы было где ездить дополнительным поездам. С тех пор я успел поработать во многих местах, но смысл просьб руководства зачастую сводился к тому же. Наверное, все дело в том, что эти люди атеисты. Иначе бы они молили Бога. Хотя, по имеющейся у меня информации, Господь тоже редко помогает увеличивать прибыльность бизнеса без капитальных вложений.
Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#4
Отправлено 20 мая 2009 - 13:11
1) либо у вас есть несколько "логических" машин, каждая из который неполностью загружает "физическую" машину
2) либо вам надо использовать много различных предустановленных и преднастроенных конфигураций.
Разумеется, виртуальная машина не может разогнать ваш физический процессор или жёсткий диск или ещё какое-то устройство, так что если эти ресурсы физически используются на пределе возможностей, виртуализация только ухудшит ситуацию.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#5
Отправлено 20 мая 2009 - 13:35
Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.
#6
Отправлено 20 мая 2009 - 14:43
1) относительно доступные цены
2) необходимое число серверов по требованию и только
3) отсутствие головной боли с апгрейдами\ремонтами (железо для каждого сервера подбирается в момент запуска машины)
3) экономия свободного места в офисе (если нет серверной)
Главный минус - это цена. Доступность определяется ресурсами компании, так что плюс запросто может превратиться в минус.
#7
Отправлено 20 мая 2009 - 18:03
Ниже ответы на Ваши сообщения
Вы не совсем поняли, что я имел в виду. На своей локальной машине я лишь тестировал возможность работы ОДНОЙ виртуальной машины.Был опыт использования нескольких VMWare, но для других целей.
Если Вы делите 1 Гб оперативки на две VM, то, на мой взгляд, это очень мало. Либо вари внутри себя будут тормозить, либо памяти не хватит и ОС будет свопить на жесткий диск.
Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига. Я просто интересовался возможностью, ощущениями и перспективностью этого направления. Например, можно будет приобрести мощный сервер и использовать его ресурсы более эффективно...
Сергей, именно об этом я и подумал в ответ на предложения ПМ обдумать идею использования виртуальных машин. Совет Ваш я понял (хотя мы вроде были на ты :) )Что-то мне подсказывает, что любое решение, которое вы придумаете (учитывая и затраты на поиск), будет заведомо дороже покупки железа.
Разумеется, Алексей, я совсем не заблуждаюсь на этот счет. Дело не в разгонке физического процессора, а уплотнения его работы. Парралльлность исполнения тут ключевое понятие, которое как ожидается может дать выигрыш во времени. Скажем два парарельных процесса будут занимать 9 часов, в то время как два последовательных 12. А может быть два параллельных процесса будут занимать ровно 6 часов т.е. в два раза меньше. Возможна ли такая ситуация?Виртуализация в тестировании даёт выигрыш когда:
1) либо у вас есть несколько "логических" машин, каждая из который неполностью загружает "физическую" машину
2) либо вам надо использовать много различных предустановленных и преднастроенных конфигураций.
Разумеется, виртуальная машина не может разогнать ваш физический процессор или жёсткий диск или ещё какое-то устройство, так что если эти ресурсы физически используются на пределе возможностей, виртуализация только ухудшит ситуацию.
Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.
Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?
Боюсь, я не очень владею ситуацией. Можете пояснить на пальцах как можно воспользоваться предложенным Вами советомЕсли всё же решитесь на виртуализацию, я бы посоветовал посмотреть cloud направление. Достоинства:
1) относительно доступные цены
2) необходимое число серверов по требованию и только
3) отсутствие головной боли с апгрейдами\ремонтами (железо для каждого сервера подбирается в момент запуска машины)
3) экономия свободного места в офисе (если нет серверной)
Главный минус - это цена. Доступность определяется ресурсами компании, так что плюс запросто может превратиться в минус.
Добавлю еще про VirtualBox - к сожалению эта машина нас вообще не устраивает. Ее время синхронизируется с временем хост-машины, а у нас во время тестирования идет очень активное движение по ввремени как в прошлое так и будущее. При этом в каждой машине оно будет меняться по-разному. В этом отношении вероятно VMware без альтернативы
#8
Отправлено 20 мая 2009 - 21:39
Извините, но это по-моему прошлый век.Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига.
Пусть новый сервер стоит 20000 р., а один человеко-час 1000 р. Итого, сервер окупает себя за 20 часов. Сколько времени вы уже потратили на решение проблемы и ещё потратите? Если больше 20 часов - у вас минус один сервер, потратили рабочую неделю - минус 2 сервера. Ну т.е. смысл в том, что вместо прямых обязанностей специалист занимается решением непонятных проблем.Абсолютно согласен. Посчитайте сколько стоит сервер, поделите на стоимость человеко-часа и прикиньте за сколько времени он себя окупит.
Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?
#9
Отправлено 21 мая 2009 - 03:35
Речь не о мощности или не мощности сервера. Речь пока идет о том, можно ли или нельзя принципиально использовать несколько экземпляров виртуальной машины для параллельной прогонки тестов на одном стенде. И какой мощности сервер требуется для этих целей, если овчинка выделки стоит. Если нет, то тоже хотелось бы получить аргументацию.Извините, но это по-моему прошлый век.Используемый ныне сервер - 2-х ядерный и памяти там сейчас 4 гига.
Все что описано выше, пока говорит о том, что скорее нет, чем да.
Пусть новый сервер стоит 20000 р., а один человеко-час 1000 р. Итого, сервер окупает себя за 20 часов. Сколько времени вы уже потратили на решение проблемы и ещё потратите? Если больше 20 часов - у вас минус один сервер, потратили рабочую неделю - минус 2 сервера. Ну т.е. смысл в том, что вместо прямых обязанностей специалист занимается решением непонятных проблем.
Не разберусь в Вашей бухгалтерии. Имеем 3 тестировщика + имеем еще один сервер. За счет чего произойдет выигрыш и окупаемость?
Пусть со стоимостью сервера Вы угадали. Пусть и стоимость человека-часа тоже верна. Я не очень понимаю бухгалтерии, при которой окупаемость исчисляется таким странным образом.
Сервер, работа тестеров и еще много кого - все это затратная часть бюджета. Доход происходит от продаж. Это вроде известно всем.
Стоимость сервера - единовременная затрата, стоимость работ тестировщиков - затраты регулярные. Почему 20 часов работы - окупает приобретение одного сервера? С чем Вы сравниваете вообще эффективность такого решения?
Почему непонятных проблем? Проблема совершенно понятна. Количество тестов, их сложность, времязатратность возрастает. Увеличивается общее время прогона тестов. Получения результатов тестов отдаляется от утра в день - проблема отложенного решения. Причины тоже понятны, способы решения есть:
1. перевести сервер на круглосуточное тестирование - проблема обновлений, коррекций и т.п. - путь не самый лучший
2. сместить начала прогонки тестов с 21:00 на официалный конец рабочего дня -скажем на 18:00 - решение не удобное, часто работа может продолжаться до 19:00 или 20:00
3. распараллелить выполнение тестовых прогонов - идеальный вариант 1 стенд - 1 процесс. Способ организации -покупка новых мощностей - сервера (очевидное решение, но требует дополнительных капиталовложений), использование существующих мощностей - возможно построение какого-то кластера и т.п. (сложное пока не реализуемое решение), создание параллельности работы на одном сервер за счет виртуализации (интересный, на первый взгляд вполне очевидный и самонапрашивающийся способ)
#10
Отправлено 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, просто эта компания в данной сфера явный лидер!
#11
Отправлено 21 мая 2009 - 09:20
Спасибо за интересный совет. Нужно будет обратить внимание нашего ПМP.S. Подобные услуги предлагает не только Amazon, просто эта компания в данной сфера явный лидер!
#12
Отправлено 21 мая 2009 - 09:45
Спасибо за интересный совет. Нужно будет обратить внимание нашего ПМ
Я бы сперва попробовал поиграться, нежели сразу отвлекать таких занятых людей как ПМы Одно дело сказать: "Вот тут мне предложили...", другое: "Я изучил и предлагаю..." По времени настроить всё с 0 ну не более 2-х часов, а затраты - не более 1$
#13
Отправлено 21 мая 2009 - 13:03
Здесь тонкость в том, что затраты компании на ваши исследования по теме "Как бы нам не покупать сервер" могут быть сопоставимы со стоимостью приобретения сервера. При этом сервер - вот он, им можно сразу пользоваться, а приведет ли исследование к чему-либо, кроме покупки сервера - еще неизвестно.Стоимость сервера - единовременная затрата, стоимость работ тестировщиков - затраты регулярные. Почему 20 часов работы - окупает приобретение одного сервера? С чем Вы сравниваете вообще эффективность такого решения?
Железо, как правило, дешевле времени в современных условиях.
#14
Отправлено 22 мая 2009 - 06:57
Вопрос о том покупать доп сервер или не покупать не стоит. Он будет покупаться. Тем более речь ведь идет не о собственно серверной машине, а просто высокопроизовдительной машине. Вопрос с виртуализацией, вопрос перспективы. Ведь согласитесь в виртализации есть определенный смысл и удобство:Здесь тонкость в том, что затраты компании на ваши исследования по теме "Как бы нам не покупать сервер" могут быть сопоставимы со стоимостью приобретения сервера. При этом сервер - вот он, им можно сразу пользоваться, а приведет ли исследование к чему-либо, кроме покупки сервера - еще неизвестно.
Железо, как правило, дешевле времени в современных условиях.
1. один раз настроил, сохранил и развертывай в течение короткого времени
2. параллельность на одном компьютере
Недостатки понятны: время на изучение технологии, как всегда в реальности встречаешься с кучей проблем, которые в теории не описаны.
Но с другой стороны без изучения новых возможностей нет прогресса
#15
Отправлено 22 мая 2009 - 07:17
1. Определённо да, как я уже писал чуть выше, для тестирования на большом количестве различных конфигураций витруализация очень удобна.Вопрос с виртуализацией, вопрос перспективы. Ведь согласитесь в виртализации есть определенный смысл и удобство:
1. один раз настроил, сохранил и развертывай в течение короткого времени
2. параллельность на одном компьютере
2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#16
Отправлено 22 мая 2009 - 09:30
При этом производительность виртуальных машин зависит от многих параметров. Если тесты в ВМ тормозят - посмотрите, почему это происходит. Возможно, у вас происходит активная работа с жёстким диском, а вы выбрали расширяемый виртуальный диск, причин может быть множество.
Если будете пробовать продукты VmWare - обратите внимание на VmWare Server. Для автоматизированных тестов на одном сервере - то, что нужно. По моему опыту, работает намного шустрее того же VmWare Workstation.
Для развёртывания конфигураций скорее было бы лучше использовать средства резервного копирования - легче потом переносить на разные виртуальные машины. Получается, что у вас хранятся образа виртуальных жёстких дисков, с которых вы потом просто восстанавливаетесь на необходимую виртуальную машину. Так называемые снепшоты хоть и быстрее восстанавливаются, но ведут за собой потерю в производительности в процессе выполнения тестов.
#17
Отправлено 22 мая 2009 - 09:50
Алексей, поясните, пожалуйста, Вашу вторую мысль. Что это за обоснование? И каким образом можно достичь параллельности, кроме как не использованием дополнительного "железа"?2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.
#18
Отправлено 22 мая 2009 - 09:55
... Если у вас узкое место именно в количестве серверов, а не в ресурсах - вполне имеет смысл попробовать использовать средства виртуализации.
Если будете пробовать продукты VmWare - обратите внимание на VmWare Server.
Для развёртывания конфигураций скорее было бы лучше использовать средства резервного копирования - легче потом переносить на разные виртуальные машины. Так называемые снепшоты хоть и быстрее восстанавливаются, но ведут за собой потерю в производительности в процессе выполнения тестов.
Спасибо за ответ. про снепшоты слышу первый раз. Что это за зверь? Мы в работе используем образ диска - правда не в тестировании, а других задач. Это повзоляет быстро скопировать конфигурацию на множество машин - это и есть снепшоты?
#19
Отправлено 22 мая 2009 - 10:15
Это по сути снимок текущего состояния виртуальной машины, от английского snapshot. Т.е. не просто копирование диска, а сохранение конфигурации, состояния оперативной памяти, если машина включена, и т.д.про снепшоты слышу первый раз. Что это за зверь?
#20
Отправлено 22 мая 2009 - 13:47
Современные операционные системы и так умеют эффективно распараллеливать выполнение процессов при наличии нескольких процессоров или ядер. Зачем виртуализация? Просто запускайте несколько процессов параллельно и всё. Возможно, по каким-то причинам в Вашем случае это невозможно, конечно, но в общем случае -- параллельности можно достичь и без виртуализации.Алексей, поясните, пожалуйста, Вашу вторую мысль. Что это за обоснование? И каким образом можно достичь параллельности, кроме как не использованием дополнительного "железа"?2. Параллельности можно достичь и без виртуализации. Для использования виртуальных машин должно быть более серьёзное обоснование.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных