Производительность между классическим ASP-сервером и SQL-сервером - PullRequest
0 голосов
/ 03 июня 2018

Проблема:

Попытка получить одинаковую (или лучшую) производительность на отдельном сервере SQL Server 2017 и IIS 7.5, чем на обоих на одной машине.

Попытка перейти к масштабируемости для будущего роста.

При использовании WebSurge на одном компьютере с IIS и SQL Server 2017 Developer с 32 ГБ ОЗУ на 6 ядрах и 12 логических процессорах проблем с производительностью нет.с машиной.Мы можем запустить приведенный ниже код в WebSurge со скоростью 4000 запросов в секунду с большой скоростью.

Проблема:

Как только мы запустим один и тот же код в отдельном окне IIS и отдельном SQLСервер на том же гигабитном соединении в локальной сети, мы можем получать только около 350 запросов в секунду на IIS, работающем на его собственной коробке.Примечание. SQL Server использует ЦП <1% на компьютере, на котором он работает с этими 350 запросами, поэтому это не проблема с запросом или производительностью SQL Server, так как тот же код выполняет более 4000 с IIS на той же машине.</p>

Кабели локальной сети подключены к одному и тому же коммутатору, и PING всегда <1 мс от IIS до SQL Server. </p>

Что мы делаем неправильно, когда завершенные запросы так сильно замедляются, нопри повторном запуске на том же сервере IIS / SQL Server ... это более 4000 в секунду.

Мы планируем создать крупную службу в ближайшее время, когда веб-трафик будет значительно превышать 4000 запросов в секунду, поэтому мы будемнужны дополнительные серверы, балансировщики нагрузки и т. д. В настоящее время мы пытаемся понять, почему мы можем обрабатывать только 350 запросов в секунду из ящика IIS, а не на той же машине, что и сервер.

Я также укажу, чтоЦП нигде не работает выше 50% в любом сценарии.

SQL Server потребляет только около 10% при выполнении этого кода.

<%
rangedb="Provider=SQLOLEDB;" & _ 
        "Data Source=10.10.1.220,1433;" & _ 
        "Initial Catalog=xxxxxxx;" & _ 
        "Network=DBMSSOCN;" & _ 
        "User Id=xxxxxx;" & _ 
        "Password=xxxxxx" 

set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")

cnn.open rangedb

sqltext = "SELECT page_content,template_id FROM master_templates_data where  (template_id='165' or template_id='166' or template_id='167' or template_id='168' or template_id='169' or template_id='170' or template_id='171' or template_id='172' or template_id='173' or template_id='182' or template_id='183' or template_id='184' or template_id='185' or template_id='186' or template_id='187' or template_id='188' or template_id='189')"

rst.CursorLocation=2
rst.CursorType=0
rst.LockType=1
rst.Open sqltext,cnn

dataArray = rst.GetRows()

rst.close

cnn.close
%>

Мы чAve просмотрел весь Интернет и не может найти причину для этого.

Любая помощь будет признательна!

(Да, мы знаем, что классический ASP не является подходящим вариантом для такого проектано мы хотели бы решить эту проблему для наших текущих ситуаций)

Если есть лучшая альтернатива, такая как MySQL и PHP / Linux, мы были бы открыты для улучшения производительности.

Это наша первая публикация здесь, поэтому, пожалуйста, будьте добры:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...