В настоящее время у меня есть веб-приложение asp.net, работающее на машине xp с iis 5.1 и sql server 2005 в нашей сети. Это приложение обрабатывает большие файлы Excel (50 МБ +), обрабатывает сотни из тысяч записей информации о продукте и манипулирует этими данными. Прямо сейчас не многие люди могут получить доступ к приложению и сделать что-нибудь существенное без зависания системы.
Я хотел бы иметь возможность иметь около 10 человек, использующих систему в любой момент времени, для выполнения этих больших задач.
Должен ли я разделять веб-сервер и sql-сервер на разных машинах? XP, Vista, 7, Windows сервер? 32-битный, 64-битный? ОЗУ? Процессоры?
Очевидно, что стоимость - это своего рода проблема ...
Будем признательны за любые рекомендации, идеи или ссылки на статьи!
Требования к вашему приложению сегодня не кажутся слишком обременительными. На хорошо определенной машине вам не нужно разделять функции на поле SQL и веб-окно.
Если стоимость является основным фактором, то версии ОС и SQL будут зависеть от затрат на лицензирование, которые, в свою очередь, зависят от того, есть ли у вашей организации партнерские соглашения / специальные предложения от MS.
Тем не менее, определенно стоит взглянуть на общий дизайн системы, прежде чем тратить на нее деньги. Часто «зависания» можно исправить, изменив схемы блокировки / изоляции в базе данных SQL - если у вас есть пользователи, пытающиеся читать из таблицы, которая обновляется с помощью блокировки по умолчанию SQL, вы будете заблокированы. (Смотреть на READ UNCOMMITTED
и NOLOCK
подсказки, но не стоит на них слепо полагаться)
Также посмотрите на PerfMon, чтобы узнать, не вызывает ли дисковый ввод-вывод замедление (посмотрите average disk queue length
ожидаемые значения) - и это поможет понять, нужно ли вам сосредоточиться на более качественных дисковых массивах на вашей новой машине (RAID 1, 5, 10 и т. д.).
На самом деле ограничение составляет 10. Вы думаете об ограничении WinInet двух подключений к одному и тому же хосту с точки зрения клиента.
Переместите это в экземпляр Server 2003 или Server 2008, и если код не был написан плохо с точки зрения параллелизма, все будет в порядке. Однако если вы обращаетесь к физическим файлам, то есть к файлам Excel, и не выполняете надлежащую блокировку и т. Д. Для управления параллелизмом, вам все равно может не повезти.
Вы знаете, что IIS 5.1 в Windows XP имеет серьезные ограничения с точки зрения одновременных пользователей? Я считаю, что ограничение составляет 2 одновременных HTTP-соединения; это не серверная ОС.
Я думаю, вы можете взломать реестр, чтобы включить 10, но я думаю, вы поняли мою мысль. Перенос SQL-сервера на другой сервер - хорошая идея, независимо от платформы IIS.
-Oisin
IIS 5.1 - это на самом деле ваше физическое ограничение. Как уже говорили другие, Windows XP не является сервером, поэтому встроенный веб-сервер не был предназначен для одновременного подключения более 10 пользователей.
Перенос вашего приложения на Windows Server 2003 или 2008 даст вам гораздо больше возможностей для вашего приложения. Если вы не ищете более нескольких сотен подключений в день, тогда можно запустить и SQL-сервер, и веб-сервер на машине. Если вы ищете большего, разделение проблем, вероятно, будет лучшим способом решить эту проблему.
Удачи и надеюсь, что это поможет.