Quantcast
Channel: Performance
Viewing all 447 articles
Browse latest View live

Sudden app crashes in my IIS ASP.NET app

$
0
0

Hello everybody,

I have a problem with one app that i had time using without problems, but now i am seeing sudden app crashes sometimes.

The Error log shows this:

A process serving application pool 'myApp' suffered a fatal communication error with the Windows Process Activation Service. The process id was '55892'. The data field contains the error number.

I have tried several things that i have read in this forum and others, like to increase the thread and connection limit and schedule the app recycling for certain times where there's not much load in the server, i had made this for various apps because my main app depends on those too.

I decided to make this change in my machine.config file:

<system.net>
<connectionManagement>
<add address="*" maxconnection="10000"/>
</connectionManagement>
</system.net>

and:

<processModel autoConfig="false" maxWorkerThreads="10000" maxIoThreads="10000" minWorkerThreads="500" requestQueueLimit="1000" requestLimit="Infinite"/>

Please, let me know if this is appropriate, because i don't know if this may have caused my problem, i recently increased my server RAM to 32 GB, i don't know if Windows is using it well or the IIS, but i have seen that when my server is at the most of the load the RAM consumption reaches almost 25GB more or less.

I have also configured DebugDiag to capture a dump and in the dump it says that an exception happened in one thread saying what i paste at the bottom.

http://localhost:3434/ is an app that is being used by the main app, i suspect that a recycling is happening in that app that causes the crash, so i turned notifications of the recycling and scheduled for the nights.

So, my question is, where can i continue looking for the error or how can i capture more information to determine what was the problem... maybe the 3434 port app reached its connection limit (something like 2 maximum connections for HTTP, i highlighted that part bellow). I have tried to increase that but i don't know exactly how, i read that because of the app is loopback i can't change that limit but i don't understand why is this.

I have read that a good idea is to configure the Visual Studio Remote Debugger to check the exception but i don't know if this could stop my app from working while it is being debugged, we can't afford to do that. Also i read about Process Explorer to monitor the w3wp.exe process but i am not sure if that is a good path to go, taking into account that i am currently using DebugDiag, what tools can i use to troubleshoot this?

Could you, please give me some clue? Thank you in advance.

P.S. Sorry if my english it's not very good, but i am spanish speaker actually.

Thanks again...

-----------------


Thread 375 - System ID 57804

Entry point clr!Thread::intermediateThreadProc
Create time 4/1/2017 12:06:54 PM
Time spent in user mode 0 Days 00:00:01.123
Time spent in kernel mode 0 Days 00:00:01.419


This thread is attempting to make an HttpWebRequest, however they do *not* appear to be waiting on the remote server to respond (eg. not 'on the wire')


HttpRequest URI:http://localhost:3434/machine.asmx
ServicePoint - ConnectionLimit:10000 CurrentConnections:4

The HttpWebRequest object is a loopback address so the ConnectionLimit is ignored

The thread has evidence of .net exceptions on the stack. Check the Previous .NET Exceptions Report (Exceptions in all .NET Thread Stacks) to view more details of the associated exception

.NET Call Stack

[[FaultingExceptionFrame]]
System_ni!System.Net.Connection.SyncRead(System.Net.HttpWebRequest, Boolean, Boolean)+14a
System_ni!System.Net.ConnectStream.WriteHeaders(Boolean)+444
System_ni!System.Net.HttpWebRequest.EndSubmitRequest()+84
System_ni!System.Net.HttpWebRequest.GetResponse()+315
System_Web_Services_ni!System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(System.Net.WebRequest)+11e
System_Web_Services_ni!System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(System.Net.WebRequest)+a
System_Web_Services_ni!System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(System.String, System.Object[])+10e
MyDLL.myapp.machine.sell(System.String, System.String, System.String, System.String, Int32)+b7
MyDLL.Sells.myapp.sell(MyDLL.myapp.Transaction)+15f
MyDLL.Sells.HighAvailabilityDistributor+RTask.Run()+cd
mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+285
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+9
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+57
mscorlib_ni!System.Threading.ThreadHelper.ThreadStart()+51
[[GCFrame]]
[[DebuggerU2MCatchHandlerFrame]]
[[ContextTransitionFrame]]
[[DebuggerU2MCatchHandlerFrame]]

Full Call Stack


KERNELBASE!RaiseException+39
clr!NakedThrowHelper2+c
clr!NakedThrowHelper_RspAligned+3d
[[FaultingExceptionFrame]]
clr!NakedThrowHelper_FixRsp+5
System_ni!System.Net.Connection.SyncRead(System.Net.HttpWebRequest, Boolean, Boolean)+14a
System_ni!System.Net.ConnectStream.WriteHeaders(Boolean)+444
System_ni!System.Net.HttpWebRequest.EndSubmitRequest()+84
System_ni!System.Net.HttpWebRequest.GetResponse()+315
System_Web_Services_ni!System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(System.Net.WebRequest)+11e
System_Web_Services_ni!System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(System.Net.WebRequest)+a
System_Web_Services_ni!System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(System.String, System.Object[])+10e
MyDLL.myapp.machine.sell(System.String, System.String, System.String, System.String, Int32)+b7
MyDLL.Sells.myapp.sell(MyDLL.myapp.Transaction)+15f
MyDLL.Sells.HighAvailabilityDistributor+RTask.Run()+cd
mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+285
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+9
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+57
mscorlib_ni!System.Threading.ThreadHelper.ThreadStart()+51
clr!CallDescrWorkerInternal+83
clr!CallDescrWorkerWithHandler+4a
clr!MethodDescCallSite::CallTargetWorker+251
clr!ThreadNative::KickOffThread_Worker+105
[[GCFrame]]
clr!Frame::Push+4d
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+370
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+299
[[DebuggerU2MCatchHandlerFrame]]
clr!Thread::ShouldChangeAbortToUnload+45
clr!Thread::DoADCallBack+2a1
[[ContextTransitionFrame]]
clr!Frame::Push+89
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+370
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+299
[[DebuggerU2MCatchHandlerFrame]]
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+21f
clr!ThreadNative::KickOffThread+d2
clr!Thread::intermediateThreadProc+7d
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d

---------------------------------------------------


Concurrent GC-performance issue.

$
0
0

What is the best GC configuration setting for an asp.net 1.1 framework application on windows 2008r2 server? 

iis worker process restart if memory exceeds threashold

$
0
0

is there a way to use the advanced settings of app pools to have them reset their respective w3wp process if it goes above a certain value, e.g.; 500,000KB

if so, what are the specific field selections/values that must be configured for this recycle to occur?

"Web crawler" increases IIS Worker Process usage.

$
0
0

Dear Members,

Here i have a question regarding the web crawling technique in Asp.net Sites.  I have an asp.net application(Windows Server 2012  withIIS 8.0. ), in which i have been facing a strange issue i.e., CPU usage reaches 99% when no user available to access the site. 

After searching for several option, i found one solution i.e., i have added robot.txt with the following text in the IIS webroot folder.

robots.txt

User-agent: *
Disallow: /

Using this solution googlebot is not getting registered in the IIS logs (CPU usage reduced 50%) . But still the bingbot keep on registering in the IIS log. Is there any to stop the bingbot? 

My another question is,

Does the website crawling (some thing like googlebot) can trigger IIS worker process, that could utilize the CPU usage 99% ?

Warm Up in iis 7.5+8.5

$
0
0

Hi 

I Need your help to clarify a few things about Warm up Sites in 7.5 +8.5:
1.I notice that in 8.5 you can change (in the advanced properties of the Applicationpool)  StartMode to AlwaysRunning. This option doesnt exist in iis 7.5.    

2. Another thing that i Found that can also warm up my website  is Application Initialization. this is also only in iis 8.5 :
https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization
My first question is do i need to configure these 2 things in IIS 8.5 or only one of them is enough ?

3. on iis 7.5 i found a Application Initialization Module that can be installed
https://www.iis.net/downloads/microsoft/application-initialization
Is this enough to warm up my website ? what about the StartMode  value ? 

Thanks

Elad

Web Service performance issues when moving from IIS 6 to IIS 10

$
0
0

Hi,

I have a website setup in IIS 6.0 that acts as a backend server to service web services requests from a front in web server.  When I set this up 5 years ago, we had severe performance issues which we eventually resolved through making changes to the machine.config file (maxconnections, maxIoThreads, maxWorkerThreads, etc).  It still performs well, but for various other reasons it needs to go.

I have a new server running IIS 10.0 and have migrated the web services to this server.  Everything worked fine until site traffic started to pick up and we are back in the same situation we were 5 years ago.  I've looked into options to tune IIS to improve it's performance, but most of what I can find suggests that the settings I made on the IIS 6.0 server are no longer needed/available in IIS 10.

So can anyone offer some advice on addressing the issue on the IIS 10 machine?

.NET Webservice - Performance testing

$
0
0


Hi,

I am working on a .NET web service. It is deployed on IIS 7.5 (Web server is Windows 2008 R2, 64 bit machine, 8 GB RAM) and it is used to send and receive data between client application and web server.

I would like to check the performance of the web service if more people are accessing at the same time. Kindly suggest some ways to simulate the number of users accessing the web service at the same time and track the performance. I would like to know how many users the web service can handle at the same time.

Thanks Ashok

What "Connection_Dropped_List_Full" in IIS Httperr log refers to?

$
0
0

I can see from official description on (https://support.microsoft.com/en-us/help/820729/error-logging-in-http-apis) that it refers to 

The list of dropped connections between clients and the server is full. Specific to Windows Vista and later versions and to Windows Server 2008 and later versions.
 This explanation does not really make sense since there is no information what exactly that list is and how do you monitor it or configure it. This is not related to application queue being full since that one is presented as separate error message in the same error log as 
QueueFull
 error. Anybody has any insider details what that error specifically means and how it can be configured or monitored

High CPU during stress testing/many concurrent connections

$
0
0

Hi everyone

I've started using an external provider to stress-test my web farm (ok it's 2 VMs, but web farm sounds nice doesn't it?).  I wont mention either the stress-testing site or my own in case I break forum rules.

I slowly built-up the number of concurrent client connections looking for the bottlenecks. 

I've identified that the first thing to fail, by a long, long way, is the IIS host / CPU running at 100%.  Even with only  5Mb/s  network usage, low disk and memory usage etc.

Sadly this limit is reached while the number of clients is relatively low (2000 clients downloading my homepage within a 1-minute period).

I've no idea how to handle this.  Why?

  1. The requests behave like genuine connections from different IPs, so my firewall can't block anything.  Just like a real DDOS attack
  2. The firewall cannot identify these as an attack - they look like real clients
  3. The homepage of my site is not static. Like the rest of my site it's dynamic content / database driven

My MSSQL service is running perfectly and not stressed. Only the IIS is freaking out.

My setup is as follows...
1 IP address > pfSense router (low load) > Load balancer > 2 IIS VMs on 1 host (HP 380 G9, 128GB RAM, 36 core 2ghz)

Using Windows 2016 server (IIS 10) and SQL 2014 Enterprise.

Please could you offer some help/tips how to get IIS under control during heavy usage?

Thanks in advance

-Matt

MapRequestHandler very slow. How to fix it?

$
0
0

We have rolled out a classic ASP.Net WebService application with large traffic. Though our database is running quite well (<10 ms response times), most of the time spent in WebServer is in the MapRequestHandler stage.

The issue seems to be in the ASP .Net stack and without any information available on net, I am clueless as to how to go about improving it.

We use SOAP XML payloads for request/response (if that would help in providing a solution).

I tried to remove most of the Handler Mappings (in IIS) except .asmx and few others, but it did not help.

Any help is highly appreciated.

IIS Is very slow in windows server

$
0
0

Hello all,

I have Install sql server 2014 r2 and iis  8.5 on Windows server 2012 r2

The problem is if there are more than 200 users at the same time IIS will stop working
and will be very very slow and get time out

App pools 

The processor  not up max than 50% and the Rams as well

Is there any solution to that problem

IIS loads slow after folder copy&paste

$
0
0

Hi,

I've a problem with application start times. I have 2 scenarios. 

1. Scenario : Application start duration after iisreset command.

- Run iisreset command.

- Browse a text file.

2. Scenario : Application start duration after copy&paste.

- Run iisreset command.

- Copy application folder(AppFolder) to another location(NewAppFolder).

- Delete application folder((AppFolder)).

- Rename NewAppFolder to AppFolder.

- Browse a text file.

2. scenario spends more time(about %25) than 1. scenario.

My question is

- What spends time in 2.scenario?

- Is there any way to avoid this duration?

Thanks

IIS Server high Physical memeory usage issue

$
0
0

Hello,

I am using Windows server 2012 R2 wit IIS 8.5  .The performance issue i am reporting is on IIS ARR server where there is no application code the ARR server acts as a Proxy to the back end Application server

What i am observing the Physical memory usage in this ARR server goes beyond 98% and  also simultaneously  the virtual memory usage goes very high

In the IIS worker process the Private Bytes and Virtual bytes usage are very high for all the Web pool

As there is no code in the server and the high memory usage is for all IIS processes ,i am not suspecting any memory leak

I have recycled all the app pools and that reduces the memory usage but gradually it grows and goes beyond 98%

Can you suggest how i can troubleshoot

Regards,

Abhishek

IIS Hanging (Freezes) with too many requests

$
0
0

Hi,

We have an IIS 10 installation on our local server. With this server we host a web panel that is very PHP heavy. Most of the time the system will work fine including large scripts that may take a while to run. However, we've started to run into the issue now that if we hit a large amount of requests, IIS will simply hang and refuse to process any of the tasks. The state of most of these processes is in the ExecuteRequestHandler state.

The CPU and RAM on the server appear unaffected by a large spike in traffic.

I'm fairly new to IIS. Does anyone have any suggestions on workarounds/potential fixes and if any more information is needed from myself in order to solve this issue we're having.

IIS vs VS Cassini tcprecv(s) and EF Caching

$
0
0

Hi,

Our development environment uses VS 2010, Silverlight 5.0, .Net framework 4.0, Entity Framework 4.0, WCF Ria Services V1.0 SP2, LINQ. We're observing the following issues in our application deployment to IIS vs Cassini:

- We see many more no. of tcprecv(s) in IIS vs Cassini for a set-of-operations first run, these extra tcprecv(s) are causing a significant difference in the performance numbers though the Data Server and NW behave exactly the same for both Web servers. Are there some known configuration parameters for TCP/IP that need to tweak in? Ideally IIS should be performing better than Cassini as being full blown Web Server.

- In the second run for the same set-of-operations we see lots of queries don't go to Data Server as being resolved in potentially by EF Caching in Cassini vs reaching all out to Data Server again for IIS. What could cause IIS NOT caching and utilizing EF results from the previous run? Please share if we need to perform some additional steps.

We are eagerly waiting up for some directions here as we've exhausted our debug and tracing options. Please let us know if additional information or artefacts need to be shared.

Thanks,

Devendra


Resources to become an IIS/ASP.net performance guru

$
0
0

Hi 

great site. 

I'm a sysadmin struggling to find resources that both 

  • describe the architecture internals (e.g. threads in iis and OS, memory allocation and garbage collection, etc etc)
  • talk through the performance considerations of all of the internals

e.g. that LeanSentry product looks nice. I'd like to be able to understand all of the things that are built into that software.

I guess my problem is that i'm looking in the normal sysadmin places but i should probably looking at more dev-oriented stuff. Google search is not bringing up what i need. 

Basically, i'm looking for something like this but updated for IIS8+: 

https://msdn.microsoft.com/en-us/library/ms998530.aspx

Some resources i've already looked at: 

ResourceDetails
Professional IIS 7Chapter 18/19 (performance and troubleshooting) are pretty brief
IIS7 Resource KitTroubleshooting/performance chapters seem a bit lite. They note lots of things to monitor, but not the "down in the trenches" kind of stuff like "watch out for thread exhaustion with counter x as this means y" etc
Professional Microsoft IIS 8Troubleshooting/performance chapters quite "lite"
  •  

Kernel caching in IIS8.5/10

$
0
0

Hello All,

I know the benefits and limitations of Kernel Mode caching but recently I was trying it on Windows Server 2012 (IIS 8.5) and it appeared no perf improvement or may be not working. 

I applied kernel cache for .aspx page but no improvement. I tried the command NETSH HTTP SHOW CACHESTATE then it resulted in no result which made me think that either the command is not working (I used it in windows server 2008) or caching is not working.

Please suggest.

Cookies in WCAT

$
0
0

Hi All.

I am just getting started with using WCAT and I seem to be having some issues with cookies. All the documentation seems to suggest these are handled for us without having to do anything special but when I do a GET on a URL that sets a cookie (I can see it doing that through Fiddler) it doesn't seem to get remembered by the WCAT virtual client for the next steps in the Transaction. Is there a reason why this isn't working or anything I should be doing to make that work?
Thanks!

Where to find MaxConcurrentRequestsPerCPU

$
0
0

Hi,

How to set the below parameters in IIS 8.0.

  1. MaxConcurrentRequestsPerCPU
  2. MaxConcurrentThreadsPerCPU
  3. RequestQueueLimit

According to the RAP tool, currently the MaxConcurrentRequestsPerCPU is set to 12 which needs to be changed to 5000. I am not able to find it in either Aspnet.config or web.config

Please help.

Regards,

Lirish

How to Set Maximum Worker Process in Core.Net

$
0
0

Hi,

We have deployed an application in ASP.NET Core and hosted it in IIS (Version 10.0). I want to use multiple worker process for using that pool. I have set 10 as maximum worker process. But the problem is after setting worker process to 10 my application is logging off frequently and don't allow to login. I'm not using in-proc session mode. I'm saving session in cookies. 

Viewing all 447 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>