Назад | Перейти на главную страницу

Получение нового сервера

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

На веб-сайте установлен IIS 6.0, а также установлен Apache. В IIS размещается только одно приложение, которое является приложением для длительного опроса (потребляет много потоков).

Текущая машина - это Windows 2003 с двумя процессорами (возможно, один физический, но два логических).

У нас около 3000 уникальных посетителей в день.

Когда вы вводите адрес и нажимаете Enter, иногда для начальной загрузки требуется даже больше минуты.

Я попытался точно настроить IIS, увеличив maxWorkerThreads, maxIoThreads и другие атрибуты модели процесса, но без особого успеха.

Есть ли смысл в получении более совершенной машины? Насколько лучше? Какие-либо предложения?

Есть ли предложения, которые могут помочь и не включают покупку новой машины?

РЕДАКТИРОВАТЬ: вот текущая системная информация

Компьютер: Intel (R) Xeon (R) CPU 5130 @ 2,00 ГГц, 2,00 ГБ RAM

Операционная система: Microsoft Windows Server 2003, Standard Edition, Service Pack 2

Пожалуйста, дайте мне знать, если вам нужна другая информация о системе.

Это немного дерзко, но, увидев проблемы с программным обеспечением Нуба в этот пост на StackOverflow На самом деле я бы посоветовал отказаться от реальной необходимости обновлять сервер. В частности, как сказал noob, он не превышает 50% времени процессора.

Проблема, с которой вы сталкиваетесь (я думаю), заключается в том, что ваши первые запросы перемещаются в код асинхронного обратного вызова вашего программного обеспечения с таймаутом 60 000 мс.

Я думаю, что вам нужно изменить программное обеспечение, чтобы при первом запросе вы передавали результаты напрямую, без наблюдения за файловой системой. Получите текущие данные и отправьте их обратно так быстро, как только сможете получить код для этого.

При асинхронной обратной передаче реализуйте свое программное обеспечение как есть.

Вы можете узнать, запрашивается ли страница в первый раз или в результате обратной передачи, используя Page.IsPostBack свойство.

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

Извинения за захват потока serverfault с помощью stackoverflow answer = (

Если вы можете перейти на новый 6-ядерный или более сервер, скажем, с 12 ГБ современной памяти, новыми дисками, новой 64-разрядной серверной ОС и последними версиями всех требований вашего кода, вы должны увидеть примерно от 2 до 20 раз. прирост скорости в целом, может быть, даже больше.

Мне не кажется, что у вас достаточно высокая нагрузка из-за трафика.

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

Я бы также проверил ваше соединение с сервером, если вы тестируете удаленно, а не через LAN / Localhost и получаете такое время отклика.

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

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

Надеюсь, это поможет дать вам больше вещей для проверки

  1. Выясните свое узкое место, проверьте использование ЦП, ОЗУ, сеть, дисковый ввод-вывод
  2. Есть ли БД для этого приложения, локальная ли она на сервере / в сети или в удаленной сети?

Разместите эту информацию, чтобы получить лучший отзыв от других.

Не покупайте коробку побольше

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

Таким образом, если вы потратите, скажем, 4 тысячи долларов на 2 сервера, это даст вам значительно более быстрое решение, чем тратить даже намного больше на один сервер.

Существует огромное дополнительное преимущество - допустим, доступность для вашего сервера составляет 99% - при отсутствии общих зависимостей доступность для 2 узлов составляет 100-100 * (0,01 * 0,01) = 99,99% - это почти в сто раз надежнее.

Хотя вполне возможно, что вы могли бы значительно ускорить свою текущую систему, настроив ее, нам нужно было бы знать НАМНОГО больше о природе рабочей нагрузки и текущей конфигурации - и даже в этом случае потребуется много работы и тестирования, чтобы получить оптимальное решение - есть несколько хороших книг по этой теме - прочтите некоторые из них.

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