3

Background: We are trying to migrate a large, complex web application written in classic ASP from Windows Server 2003 to Windows Server 2012 R2.

Everything is working without errors, but the new server is extremely slow to serve the ASP pages. With a single user on the site, response times in the order of 2-3 seconds for ASP pages are common. Equally large AJAX calls and JavaScript pages are served and process in under 100ms.

When the site receives a moderate level of load (more than approx. 50 users) it becomes unusably slow. Normal load for the the production site is several thousand users.

There does not appear to be a correlation between the amount of data returned or the database connection. We are using SQL Server 2008 R2 for the database.

The Web application server is in a DMZ and uses a hosts file entry for the database server which is in our general intranet. Database queries process extremely fast (within milliseconds).

I've tried profiling the web server memory usage, disk I/O and network usage, and found no evidence of memory leaks. Query profiling shows no lag in processing database calls.

Update after running Failed Request Tracing

  • I set up tracing to be triggered for classic ASP requests taking longer than 1 second
  • Maximum time shown by detail logs for each trace from request start to request completion: 140ms
  • Total request times logged ranged from 1094ms to 1453ms - so the actual request is taking an order of magnitude longer than the events logged by the failed request trace.

What are common fixes for this performance problem?

Kate Paulk
  • 383
  • 8
  • 18
  • You will need to profile your request and see where is the bulk time spent,i don't think it is server related – TheGameiswar Jul 18 '16 at 13:20
  • https://blogs.msdn.microsoft.com/docast/2016/04/28/troubleshooting-iis-request-performance-slowness-issues-using-freb-tracing/ – TheGameiswar Jul 18 '16 at 13:21
  • @TheGameiswar - thank you for this information. I've updated the question with a summary of FREB results. – Kate Paulk Jul 18 '16 at 13:46
  • I am not 100% sure on how to trace a request end to end,i provided some suggestions,as we have used FREB in past to determine failures,further it also shows time taken for each event in page life cycle.I would also check iis logs to see if this is happening with all requests or only some – TheGameiswar Jul 18 '16 at 13:48
  • @TheGameiswar - it's happening for all requests for ASP pages. `*.asp` is slow. `*.js`, `*.css`, `*.html` is not. – Kate Paulk Jul 18 '16 at 13:51
  • are you using any COM components? how CPU load looks in Task Manager when everything start works slowly? can you create 1) test server with very similar to live server environment 2) create one single ASP page 3) run old 'Microsoft Application Center Test' or any new similar solution and start increasing simultaneous user count until you everything will start works very slowly. – Zam Jul 21 '16 at 19:01
  • ` new server is extremely slow to serve the ASP pages.` -- what about other test clean ASP web site? Can you just run <%=Now%> ? – Zam Jul 21 '16 at 20:32
  • @KatePaulk Did you ever found a solution? if yes please update your findings. – user961954 Apr 05 '17 at 09:48
  • Unfortunately, no. I never did find an answer. A second Windows Server 2012 box built clean worked fine, but there were so many small differences in configuration it was impossible to say which differences caused the problems. – Kate Paulk Apr 05 '17 at 11:15

3 Answers3

2

There are reports of classic ASP sites being slow if the connection string uses the machine name\instance name instead of an IP address, especially if SQL is running on a non-standard port. Maybe try changing the connection string, e.g.:

Server=10.10.10.123,1433\myInstanceName;

Reference: forums.iis.net

Daryl
  • 124
  • 3
  • 11
1

I am unable to comment since I do not have enough reputation, so asking question as an answer. I will remove this once I get the answer

  • What is the driver you are using to connect in your connection string ?
  • I did see your comment on host file, can you please try direct IP in the connection string. Please do not remove the host file.
  • Can you try a small new web application in asp just with minimal database listing. is that also slow?
  • Again try the same new application without a database connection and time the difference.
    • Do you have on error resume next in the code, are you failing on any file / log permission but that is not getting reported.
Sunil
  • 95
  • 8
0

Try disabling Microsoft Defender. There are serious slowdowns after an update. They modified vbscript.dll which is what executes ASP code. If you cannot live without Windows Defender, you can replace vbscript.dll with an older version.

Grc
  • 1