Лучший способ определить количество необходимых серверов

StackOverflow https://stackoverflow.com/questions/60142

Вопрос

Какой трафик может обрабатывать один веб-сервер?Как лучше всего узнать, превзошли ли мы это?

У меня есть приложение ASP.Net, у которого есть пара сотен пользователей.Некоторые аспекты этого процесса довольно ресурсоемки, но до сих пор мы прекрасно справлялись с использованием только одного сервера для запуска SqlServer и сайта.Он работает под управлением Windows Server 2003, 3,4 ГГц и 3,5 ГБ оперативной памяти.

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

Это было полезно?

Решение

Что вам нужно, так это некоторая информация о Планирование мощностей..

Планирование мощности — это процесс планирования роста и прогнозирования периодов пикового использования для удовлетворения требований к мощности системы и приложений.Он включает в себя обширное тестирование производительности для определения использования ресурсов приложения и пропускной способности транзакций под нагрузкой.Сначала вы измеряете количество посетителей, которые в настоящее время посещает сайт, и степень нагрузки, которую каждый пользователь предъявляет к серверу, а затем рассчитываете вычислительные ресурсы (ЦП, ОЗУ, дисковое пространство и пропускную способность сети), необходимые для поддержки текущего и будущего. уровни использования.

Другие советы

Если у вас есть доступ к некоторым инструментам профилирования (например, к инструментам Team Suite в Visual Studio), вы можете попытаться настроить тестовый сервер и выполнить к нему несколько синтетических запросов и посмотреть, нет ли какой-либо конкретной части кода, занимающей неоправданно много времени. бежать.Прежде чем делать это, вам, вероятно, следует проверить некоторые графики использования процессора и памяти с течением времени, чтобы увидеть, возможно ли это вообще.(Число, похожее на «среднюю загрузку» UNIX, может быть полезным показателем, я не знаю, есть ли в Windows что-нибудь подобное.По сути, это среднее количество потоков, которым требуется время ЦП для каждого интервала времени.)

Также проверьте очевидное: у вас не заканчивается пропускная способность.

Мера, мера, мера.Рико Мариани всегда так говорит, и он прав.

Измерьте требования в секунду, ОЗУ, ЦП, сеансы и т. д.

Вы можете придумать стратегию кэширования (кэширование вывода, кэширование данных, кэширование зависимостей и т. д.).

Посмотрите также, как работает ваш SQL-сервер...индексы — хорошее начало, но не единственное, на что стоит обратить внимание.

На этом оборудовании приложение .NET должно обслуживать около 200–400 запросов в секунду.Если у вас всего несколько сотен пользователей, я сомневаюсь, что вы видите хотя бы 2 запроса в секунду, поэтому я думаю, что у вас достаточно мощности на этом компьютере, даже при работающем SQL-сервере.

Не зная всех подробностей, я бы сказал нет, вы не увидите никакого улучшения производительности за счет добавления серверов.

Кстати, если вы не используете Выходной кэш, я бы начал с этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top