2008-09-12 5 views
8

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

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

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

ответ

7

Что вам нужно, это некоторая информация о Capacity Planning ..

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

1

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

Также проверьте очевидное, что у вас не хватает полосы пропускания.

0

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

Без всякой информации, я бы сказал, no, вы не увидите улучшения производительности путем добавления серверов.

Кстати, если вы не используете Output Cache, я бы начал там.

1

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

Мера REQ/сек, RAM, CPU, Сессия и т.д.

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

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

Смежные вопросы