Лучший способ определить количество необходимых серверов
-
09-06-2019 - |
Вопрос
Какой трафик может обрабатывать один веб-сервер?Как лучше всего узнать, превзошли ли мы это?
У меня есть приложение ASP.Net, у которого есть пара сотен пользователей.Некоторые аспекты этого процесса довольно ресурсоемки, но до сих пор мы прекрасно справлялись с использованием только одного сервера для запуска SqlServer и сайта.Он работает под управлением Windows Server 2003, 3,4 ГГц и 3,5 ГБ оперативной памяти.
Но в последнее время я начал время от времени замечать замедление, и мне было интересно, как лучше всего определить, перегружен ли сервер из-за использования приложения или мне нужно что-то сделать, чтобы исправить приложение (я не действительно хочу потратить много времени на поиск небольших оптимизаций, если я просто ожидаю слишком многого от коробки).
Решение
Что вам нужно, так это некоторая информация о Планирование мощностей..
Планирование мощности — это процесс планирования роста и прогнозирования периодов пикового использования для удовлетворения требований к мощности системы и приложений.Он включает в себя обширное тестирование производительности для определения использования ресурсов приложения и пропускной способности транзакций под нагрузкой.Сначала вы измеряете количество посетителей, которые в настоящее время посещает сайт, и степень нагрузки, которую каждый пользователь предъявляет к серверу, а затем рассчитываете вычислительные ресурсы (ЦП, ОЗУ, дисковое пространство и пропускную способность сети), необходимые для поддержки текущего и будущего. уровни использования.
Другие советы
Если у вас есть доступ к некоторым инструментам профилирования (например, к инструментам Team Suite в Visual Studio), вы можете попытаться настроить тестовый сервер и выполнить к нему несколько синтетических запросов и посмотреть, нет ли какой-либо конкретной части кода, занимающей неоправданно много времени. бежать.Прежде чем делать это, вам, вероятно, следует проверить некоторые графики использования процессора и памяти с течением времени, чтобы увидеть, возможно ли это вообще.(Число, похожее на «среднюю загрузку» UNIX, может быть полезным показателем, я не знаю, есть ли в Windows что-нибудь подобное.По сути, это среднее количество потоков, которым требуется время ЦП для каждого интервала времени.)
Также проверьте очевидное: у вас не заканчивается пропускная способность.
Мера, мера, мера.Рико Мариани всегда так говорит, и он прав.
Измерьте требования в секунду, ОЗУ, ЦП, сеансы и т. д.
Вы можете придумать стратегию кэширования (кэширование вывода, кэширование данных, кэширование зависимостей и т. д.).
Посмотрите также, как работает ваш SQL-сервер...индексы — хорошее начало, но не единственное, на что стоит обратить внимание.
На этом оборудовании приложение .NET должно обслуживать около 200–400 запросов в секунду.Если у вас всего несколько сотен пользователей, я сомневаюсь, что вы видите хотя бы 2 запроса в секунду, поэтому я думаю, что у вас достаточно мощности на этом компьютере, даже при работающем SQL-сервере.
Не зная всех подробностей, я бы сказал нет, вы не увидите никакого улучшения производительности за счет добавления серверов.
Кстати, если вы не используете Выходной кэш, я бы начал с этого.