Я запускаю веб-сайт ASP.NET с базой данных SQL Server и другим серверным приложением, которое выполняет обработку для поддержки веб-сайта в 32-битной операционной системе Windows 2008 Web Server.
Сервер обычно использует 95% ЦП с sqlserver.exe, w3wp.exe и моим приложением обработки, занимающим большую часть ресурсов ЦП, и большая часть ОЗУ также используется, что, как я понимаю, нормально.
Я намерен вложить немного денег в конфигурацию своих серверов, чтобы улучшить скорость моего веб-сайта и поддерживать его по мере его роста, и мне было интересно, есть ли у кого-нибудь совет по ситуации.
Похоже, по той же цене обновления до одного Четырехъядерный процессор Xeon 2,66 ГГц X3353 примерно такая же стоимость запуска двух Core 2 четырехъядерный Q8200 системы.
Было бы лучше потратить мои деньги на обновление до одной машины Xeon или разделение базы данных и интерфейса asp.net между системами Core 2 Quad Core с более низкими характеристиками?
Ссылка на текущий сервер -
Две коробки увеличивают сложность вашей системы более чем вдвое и более чем вдвое снижают ее надежность. Существует вполне реальная вероятность того, что вы получите систему, которая будет медленнее, чем ваша текущая, если вы измените ее архитектуру, не понимая, почему она недостаточно быстра.
Вы профилировали узкие места?
Самый надежный способ сделать вашу систему быстрее - просто заменить ее чем-то таким же, но более быстрым.
Я согласен с Райнером. Если единственная стоимость - покупка оборудования, перейдите на установку двух машин. Я предпочитаю по возможности не «смешивать» загрузку внешнего интерфейса и внутреннего интерфейса.
Кроме того, с точки зрения безопасности лучше разделить их, чтобы уязвимость в одном из них не означала, что другой сервис / сервер откажется напрямую.
Конечно, теперь у вас есть два сервера, которые вам необходимо:
Ваши услуги доступны в Интернете? Если это так, то их разделение почти обязательно по соображениям безопасности, и я бы добавил между ними брандмауэр.
Кроме того, разделение приложения на интерфейс / серверную часть раньше, чем позже, позволит вам расти безболезненно; по мере увеличения вашей нагрузки вам может потребоваться больше серверов приложений или ресурсов БД, или ... так что чем раньше вы убедитесь, что ваше приложение может быть разделено / распределено, тем раньше вы обнаружите какие-либо скрытые зависимости / проблемы, которые могут возникнуть позже.
В долгосрочной перспективе, как правило, гораздо проще / дешевле масштабировать (т. Е. Добавить больше серверов для решения той же проблемы, см. Google;), чем масштабировать. Конечно, обычно БД сложнее разделить, поэтому, если вам повезет и вы станете чрезвычайно успешным, БД может стать узким местом.
Даже если по какой-то причине (место в стойке / питание / охлаждение) вы ограничены одним «аппаратным» сервером, я бы порекомендовал приобрести более мощный и изучить виртуализацию, чтобы разделить нагрузку на 2 логических сервера. Да, я знаю, что это требует лицензирования и т. Д., Но, если мне не изменяет память, MS позволяет запускать одну лицензию Win2008 на одном «голом железе» и до (2/3?) Виртуальных. VMWare также имеет бесплатный серверный продукт (Сервер VMWare), который вы можете использовать.
Мои 0,002 цента.
Я хотел бы получить мнения за / против.
Наилучшие пожелания
Хавьер
PS: Мой опыт работы в области безопасности, не столько в веб-приложениях, так что, возможно, то, что я говорю, не оптимальное решение, но я знаю, что мне было бы удобнее не «накапливать» функциональность на одном сервере / точке неудачи.
С помощью решения с двумя коробками вы можете специфицировать каждую коробку в соответствии с требованиями того, что на ней работает, а также изолировать каждый компонент от другого. Однако имейте в виду, что соединение между двумя блоками может стать узким местом, и что настройка может быть более сложной - когда все работает на одном блоке, его всегда будет проще настроить, например ваш сайт, чтобы поговорить с вашей базой данных; идет 2, и в зависимости от того, как все написано, это может потребовать нетривиального капитального ремонта архитектуры.
Есть ли у вас возможность выполнить миграцию тестовой версии 2, прежде чем вам нужно будет сделать это по-настоящему, и есть ли у вас время, чтобы исправить любые ошибки или другие проблемы, которые могут возникнуть? Если нет, я бы посоветовал придерживаться одной коробки. В противном случае 2 коробки поставили бы вас в более выгодное положение в долгосрочной перспективе. Для меня это решающий фактор.
Xeon:
Процессор Intel® Xeon® X3353 (12 МБ кэш-памяти, 2,66 ГГц, 1333 МГц FSB)
C2:
Процессор Intel® Core ™ 2 Quad Q8200 (4 МБ кэш-памяти, 2,33 ГГц, частота системной шины 1333 МГц)
Я определенно выбрал бы Xeon и как можно скорее перешел бы на 64-битную версию.
Если затраты на самом деле одинаковы (для Windows требуются лицензии), то их разделение - хороший вариант. Веб-интерфейс, вероятно, потребует меньше памяти, чем SQL-сервер, и может использовать другие спецификации. Вы также можете лучше настроить ОС для различных типов данных, которые она обслуживает.
Тем не менее, первоначальная стоимость обычно составляет лишь меньшую часть стоимости в течение всего срока службы машины.