Каковы рекомендуемые стратегии для нагрузочного тестирования (например, имитация большого количества клиентов) серверных приложений в небольшом магазине? - PullRequest
4 голосов
/ 04 февраля 2009

Я разрабатываю сетевую многокомпонентную программную систему, которая предназначена для работы на произвольном количестве машин. Я предполагаю типичную настройку от 1 до 4 машин.

Я хочу серьезно отнестись к тестированию системы, и я настроил сеть виртуальных машин на сильном ПК, который я могу использовать для симуляции сетевого взаимодействия. Однако этой настройки недостаточно.

Например, из-за виртуализации (я использую qemu) каждый узел всегда работает только на одном ядре, поэтому я не могу проверить проблемы с производительностью кода, предназначенного для многоядерного использования. Было бы неплохо, если бы я мог иногда запускать одну из виртуальных машин на всем ПК, чтобы увидеть, в чем разница, особенно в плане производительности, а также проверить некоторые проблемы многопоточности.

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

ETA : приложение является системой промежуточного программного обеспечения и на самом деле не имеет пользовательского интерфейса. Тестирование выполняется с помощью фиктивных клиентов и подачи данных в систему, которая снова извлекается на другом конце. Это не веб-сайт, и обычно он используется не через Интернет, а внутри локальной сети. Интерфейсы пользовательского интерфейса и Интернета будут предоставлены на более позднем этапе некоторыми компонентами, подключенными к системе.

Ответы [ 3 ]

3 голосов
/ 04 февраля 2009

Эта тема уже несколько раз поднималась на SO:

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

Другое дело, что вам, скорее всего, потребуется настроить небольшую сеть для тестирования вашей производственной сети - для инструментов тестирования нагрузки сети также требуется достаточное количество ЦП, поэтому для нормальной работы обычно требуется несколько компьютеров, на которых они работают одновременно. сеть. В нашем случае мы имеем соотношение 1: 2, то есть 1 клиент для тестирования на каждые 2 сервера, которые мы собираемся протестировать. Вам нужно немного поэкспериментировать с вещами, чтобы определить, сколько тестовых блоков вам понадобится, но просто следите за производительностью ваших тестирующих машин, чтобы вы могли почувствовать, сколько вам потребуется для эффективного тестирования. ваш сайт.

0 голосов
/ 05 февраля 2009

Я бы предложил VMware Workstation , которая позволяет вам настроить несколько процессоров для ваших виртуальных машин. Одна лицензия чрезвычайно дешевая, вы можете использовать VMware Server (бесплатно), но вы найдете, что Рабочая станция будет более мощной в краткосрочной перспективе, я думаю,

Кроме того, я бы предложил второй ПК, способный загружаться с USB, на котором вы можете хранить физические разделы виртуальной машины. Один недорогой двухъядерный ПК не дорогой, особенно если ему требуется только загрузка в текстовом режиме.

0 голосов
/ 04 февраля 2009

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

...