Лучший способ определить количество необходимых серверов - PullRequest
8 голосов
/ 13 сентября 2008

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

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

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

Ответы [ 4 ]

7 голосов
/ 13 сентября 2008

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

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

1 голос
/ 29 января 2009

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

Мера req / sec, RAM, CPU, Sessions и т. Д.

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

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

1 голос
/ 13 сентября 2008

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

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

0 голосов
/ 13 сентября 2008

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

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

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

...