Я разрабатываю стиль клиент-сервер, основанную на базе базы данных, и мне нужно разработать способ тестирования/загрузки системы. Клиенты неизбежно хотят знать такие вещи, как:
• Сколько клиентов может поддерживать сервер?
• Сколько одновременных запросов может поддерживать сервер?
• Сколько данных мы можем хранить в базе данных?
• И т.д.
Ключом ко всем этим вопросам является время отклика. Нам нужно иметь возможность измерять, как время отклика и производительность ухудшаются по мере ввода новой нагрузки, чтобы мы могли, например, создать какой-то красивый график, который мы могли бы бросить на клиентов, чтобы дать им представление о том, какую производительность можно ожидать с заданным конфигурации оборудования.
Прямо сейчас мы просто выставляем пальцы в воздух и делаем образованные догадки, основываясь на том, что мы уже знаем о системе из опыта. Поскольку продукт находится в более сложных условиях, это оказывается недостаточным для удовлетворения наших потребностей.
Мне была поручена разработка метода для получения таких ответов значимым образом. Я понимаю, что это не вопрос, на который кто-либо может ответить окончательно, но я ищу предложения о том, как люди продолжали делать такую работу в своих системах.
Следует отметить, что у нас есть полный доступ к нашему клиентскому API через язык Python (с учетом SWIG), с которым гораздо легче работать, чем с С++ для такого рода работ.
Итак, мы идем, я бросаю это на пол: действительно интересно посмотреть, какие идеи вы, возможно, придумаете!