Тестирование производительности серверов: как охарактеризовать производительность?
Мне нужно купить серверы, и мне нужно понять, как правильно их указать.
Основываясь на ответах на этот вопрос, необходимо принять во внимание несколько параметров:
- Скорость процессора + Количество ядер процессора
- RAM + размер виртуальной памяти
- Размер жесткого диска и производительность
- Производительность сетевой карты
Я игнорирую стоимость, размер и мощность на данный момент. Операционная система, если она имеет значение, должна быть Windows Server 2008 R2.
Поскольку окончательное приложение основано на IIS, я хочу настроить серию тестов, которые помогут мне охарактеризовать каждый из них по отдельности, а также два или более из них совместно.
Например, отдельно:
CPU: написать простую математическую операцию в памяти. Создайте несколько потоков, которые выполняют эту операцию. Измерение системных ресурсов (Perfmon), FLOPS, количества потоков в зависимости от времени.
ОЗУ / Виртуальная память: запись памяти. Измерять системные ресурсы как функцию времени.
Скорость жесткого диска: создайте большой файл данных на диске. Измерение системных ресурсов и времени доступа к произвольно доступным частям файла в зависимости от времени.
Скорость сети: используйте инструмент, подобный этому, чтобы увидеть производительность сетевой карты.
Пока все хорошо (хотя улучшения оценены!). Одна из возможностей - просто получить индивидуальные оценки " Индекс производительности Windows".
Как мне охарактеризовать взаимодействия между ними?
Например, сетевое <==> взаимодействие с процессором можно проверить, написав простой веб-сервис, который просто выкачивает данные так быстро, как их просят. Очевидно, это также характеризует IIS, но в любом случае это часть возможной системы.
В качестве другого примера, взаимодействие скорости сетевого жесткого диска <==> можно проверить с помощью IIS для обслуживания статических файлов больших изображений (с любым отключенным кэшированием).
Кто-нибудь знает набор тестов, которые используются для характеристики такого рода производительности?
Очевидно, что единственный реальный способ увидеть, как сервер будет работать с реальным программным обеспечением, - это развернуть его. Мы еще не закончили его сборку, так что это не вариант (пока!).
1 ответ
Существует множество существующих тестов, позволяющих охарактеризовать производительность системы различными способами. "Индекс производительности Windows" является одной из таких мер, но есть множество других (бесконечные тесты ЦП, показатели пропускной способности памяти, дисковый ввод-вывод в потоковом режиме и режиме произвольного доступа с любым числом перестановок, фактическая полезная скорость сетевого адаптера в бит / с и pps, с и без TCP, и скорости шины во всех их бесконечных сложностях).
Однако при ответе на вопрос "как будет работать мое приложение?" Вам все это не поможет, потому что вы не знаете, каковы требования к производительности и характеристики вашего приложения (поскольку оно еще не существует)., Например, "Индекс производительности Windows" - это показатель того, насколько хорошо работают различные аппаратные компоненты в операционной системе Windows. Умные люди из Microsoft измерили, как абстрактные тесты производительности связаны с правильной работой Windows, а затем использовали это для создания своего индекса. Вы не можете осмысленно взять число, такое как оценка PassMark (взять один случайный пример), и превратить его в полезную меру, не зная, сколько времени ЦП занимает ваше приложение для обработки запроса.
Теперь, если вы похожи на 99% людей, которые задавали этот вопрос раньше и получили точно такой же ответ, вы, вероятно, испытаете что-то вроде "но... но... но... мне нужно Это!" реакция. Единственно возможный ответ на это сводится к "Неудаче". Законы физики не заботятся о том, что мы хотим путешествовать быстрее света, а законы анализа производительности не заботятся о том, что вы хотите знать непостижимое.
(И в случае, если вам интересно, повторять этот тип ответа снова и снова не очень весело, поэтому нам не нравятся вопросы "какой сервер мне нужен?" При сбое сервера. поскольку dupes не работает, потому что тогда люди жалуются, что ответы не были dupes, потому что человек A хотел знать, сколько блогов Wordpress он мог запустить, в то время как человек B хотел знать, сколько сайтов Drupal он мог запустить).