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

Exchange Server Backoffs Causing Major Issues

$
0
0

Hi,

I wanted to take a stab at this here because I feel this is something configurable via IIS as opposed to Exchange. Truth be told, I've exhausted all Exchange-side tweaks, but I've had success at resolving some other Exchange issues by tweaking or adding settings to the web.config files for various virtual directories. Exchange server itself serves all it's data via client-connectivity to various IIS virtual directories tied to application pools.  The main one being /mapi since that is how Outlook clients connect.

I have a few very heavily used shared resources. During peak usage, I see client backoffs in the connectivity logs. Today there were 70,000. That obviously causes client-side problems for people.  People can access that resource without issue using other connectivity methods which are tied to different virtual directories and app pools.  The server itself also does not experience any noticeable load.  It's simply an issue with that virtual directory.  Everything else is fine.  

I'm a pretty high level and experienced Exchange admin. I've exhausted everything server side that is Exchange specific. I've also run this through max escalations to Microsoft Exchange support on two continents to no avail.  I've also posted in the technet forums only to be suggested things I tried months prior. At the outset of this, I imagined it was an IIS thing, but despite being experienced with Exchange, my experience with IIS outside of Exchange usage is very limited. I don't know where to begin looking.

I've managed a similar issue on another connectivity method by adding a key <add key="MaxRequestsQueued" value="5000" /> to the web.config for that directory. However I could see the cause of that using perfmon. I could see the queue build until 500 when issues started happening. I don't see similar queue building here, so I'm not saying it's not the case, but the evidence isn't the same.

Any input at all or places to look to troubleshoot this is appreciated.   Thanks.


Delay of 10-15 mins before Application_Start is triggered

$
0
0

On application start (only on first request after apppool start), I see a delay of 10-15 minutes before Application_Start in Global.asax is triggered. The application is hosted in IIS7

Following is the trace for the same. HANDLER_CHANEGD event has taken 14 minutes.

Event #Event NameEvent DataCreated At
68.HANDLER_CHANGED
OldHandlerName="",
NewHandlerName="ExtensionlessUrlHandler-Integrated-4.0",
NewHandlerModules="ManagedPipelineHandler",
NewHandlerScriptProcessor="",
NewHandlerType="System.Web.Handlers.TransferRequestHandler"
08:59:40.868
69.VIRTUAL_MODULE_UNRESOLVED
Name="AnonymousIdentification",
Type="System.Web.Security.AnonymousIdentificationModule"
09:14:14.458
70.VIRTUAL_MODULE_UNRESOLVED
Name="UrlMappingsModule", 
Type="System.Web.UrlMappingsModule"
09:14:14.458
71.NOTIFY_MODULE_START
ModuleName="HttpCacheModule", 
Notification="BEGIN_REQUEST",
fIsPostNotification="false"
09:14:14.458

Have any one faced similar issues? 

Performance issue on IIS on multiples GET queries

$
0
0

Hello,

I notice bad performance of my application (on localhost, my own private server called staging and on prod) but this happens only when I execute a certain amount of queries (for example, GET) on my IIS app. One query is fast, but when we reach 5/10 queries at a time, is start to be very slow.

I did a test by calling 20 times the same queries in order to isolate the issues. Here is the picture of the result in CHROME and in my IIS LOG on localhost:

http://i.imgur.com/f8hZvrN.png

I tried to isolated the issues:

- Is a DB deadlock or C# business code issues? 

=> No, I add StopWatch on the controller before the treatment and after and here is the result of the watch.Elapsed.ToString() ( there is not code that take more than 1sec as you can see, the time is always very few ms)

Code processed in 00:00:00.0150842
Code processed in 00:00:00.0053349
Code processed in 00:00:00.0051664
Code processed in 00:00:00.0050065
Code processed in 00:00:00.0043222
Code processed in 00:00:00.0048748
Code processed in 00:00:00.0048705
Code processed in 00:00:00.0046028
Code processed in 00:00:00.0046772
Code processed in 00:00:00.0049595
Code processed in 00:00:00.0048072
Code processed in 00:00:00.0047114
Code processed in 00:00:00.0056416
Code processed in 00:00:00.0048765
Code processed in 00:00:00.0048628
Code processed in 00:00:00.0049971
Code processed in 00:00:00.0068048
Code processed in 00:00:00.0060838
Code processed in 00:00:00.0051356
Code processed in 00:00:00.0100584

I also did a similar test with a simple controller that return a simple string "test" and I can successfully reproduce this issue.

Regarding this result,, i notice that the issue can come from only 2 places:

- IIS configuration (on localhost, I used IIS EXPRESS provided by VS2015 Community edition with default settings, on server I use IIS 8 with default settings too).

- Some code that is called before/after my own controller and become messy when have to deal with multiples simultaneous queries

But regarding this issue and my current knowledge, I am stuck with that and don't know where to look at this. I searched on SO and Google, no clue found....

If needed, here is my Web.config:

https://pastebin.mozilla.org/8958687

Thanks for your help.

NB:

I have found that interesting information on this website:

http://www.jpelectron.com/sample/WWW%20and%20HTML/IIS-%20OS%20Version%20Limits.htm

IIS limit simultaneous connection. This can have an impact on localhost since I am using IIS EXPRESS and W10 home but not on staging or prod where we have a windows server 2012 and despite this limitation, I should't get this 500ms (up to 2s !) delay since the query took less time to process.

NB2: With the help of Dot Trace, I found that all the long queries is managed with a CLR Worker that wait 99% of the time.... Module : ntdll.dll and Thread State : Waiting. And all this is not in my code (Native stack traces without resolved functions : 98.7%). The question is why some thread wait 99% of the time instead of working?

IIS 10 Performance Suffers When Website Is Stored On Network Share

$
0
0

I compared the same website while it was placed on the C drive and while it was placed on the network share. While the website was on the network share the site load time was 6.4 seconds. When the site was placed on the C drive the site load time was 2.6 seconds. That is a 3.8 second difference. What can be done to improve the performance of storing the website on the network share.

Regarding IIS and application thread pools and async

$
0
0

When you have your controllers either in ASP.NET MVC or Web API set up to (correctly) use async/await, the thread processing the request will be freed up and returned to the thread pool. As advertised by every online document.

In the book Professional IIS 7, I read that initially HTTP.sys handles the requests in kernel mode and if the threads are maxed out, queues them up (each app pool having its own queue IIRC).

Now, since IIS7 the pipeline is integrated (as compared to IIS6), does that mean that IIS and an application poop is technically the same entity (for the lack of a better word)? And when my application performs an async task, the thread returned to the tread pool technically frees up a thread to process another request for IIS as a whole (for that app pool)?

Or does IIS have its own limited amount of threads and is just a mediator between HTTP.sys and the app pools? So if for example I'm running 4 sites, each app pool capable of servicing 100 requests, but IIS itself not being able to mediate, say, more than 300 requests. In this case, I wouldn't gain anything by freeing up threads in my app pool, since IIS is bottlenecking the whole flow.

Response.IsClientConnected causes exceptions

$
0
0

We recently tried incorporating Response.IsClientConnected into our asp.net site, but it causes seemingly random exceptions that only show up when we check this property.  If we comment out that code, we stop getting the exceptions.  We get a ton of items in our log file indicating that we have disconnected clients and we are still doing processing, so it is clearly an opportunity for optimization, but we need to figure out what is going on with the exceptions first.  Any idea what is causing this exception and how we can we work around it?

Our site is hosted on Windows Server 2008 r2 x64 with IIS 7.5 and .NET 4.5.

If Not Response.IsClientConnected Then
    ' write to log file
End If

We are getting the following exception (again, seemingly random and only when we have the check for IsClientConnected live on our site):

System.Runtime.InteropServices.COMException (0x800703E3): The I/O operation has been aborted because of either a thread exit or an application request. (Exception from HRESULT: 0x800703E3)

IIS WP using high memory

$
0
0

We have wcf service running inside an app pool which takes huge memory(almost 5-6gb). While monitoring, it was found that private bytes and working sets going upward, while available bytes showed a decreasing trend. The virtual bytes remained as a straight line at the top.

Debug Diag shows 

<div class="groupTitle summaryGroupLabel Warning"> Warning</div> <div class="group mt20">
DescriptionRecommendation
\clr.dll is responsible for 1.3 GBytes worth of outstanding allocations. The following are the top 2 memory consuming functions:

clr!CExecutionEngine::ClrVirtualAlloc+4a:1.3 GBytes worth of outstanding allocations.
clr!EEHeapAllocInProcessHeap+46:1.09 MBytes worth of outstanding allocations
</div>

The app pool reaches a stage where it becomes non responsive to ping every 20 minutes and there is aonother entry in the event log which says the available memory is less than 5% and so

Poor performance for FTP downloads compared to uploads

$
0
0

We have a Windows Server 2008 running the regular FTP. The folder location is a network share. The uploads to the drive are pretty fast compared to the download. we are seeing download speeds. 

There is a similar issue that was discussed in the thread http://forums.iis.net/p/1155312/1893725.aspx. But that thread is closed so i am opening a new thread. 

Any help is appreciated.

thanks

karthik


IIS 8.5, slowness in opening pages in browsers

$
0
0

IIS 8.5

(I am not an expert in Website authoring)

IIS is hosting a private website (application pool).

Pages loading (without loading data from database) in browsers take arond 6 secs to be displayed (the same page opned then takes less time).

I have found out that by analyzing the HTTP traffic 

Time spent from the request: 6 secs

Content encoded entity body (gzip): 15000 bytes -> 73000 bytes

File data: 73343 bytes.

I am not expert in web content, here my question:

Are 73 kb the content of file to be downloaded from the Web Server and loaded in the Page?

I have also checked the IIS log but I do not find any useful info.

Do you have any docs, link on how to better analyze IIS log?

Thanks four your help.

"Cache Control Header" takes 90% of the time for response

$
0
0

There is something really strange happening on my IIS 8.5 box. Request to root page of website takes 1.3s and 1.1s out of that is happening within Set_Response_Header method. What can be the reason for this delay? Does not make much sense.

123. -GENERAL_SET_RESPONSE_HEADER <div id="section_detail_123_details">
HeaderNameX-AspNetMvc-Version
HeaderValue4.0
Replacefalse
</div>
<div class="duration">1141 ms</div> <div class="severity-informational">Informational</div> 124. -GENERAL_SET_RESPONSE_HEADER <div id="section_detail_124_details">
HeaderNameCache-Control
HeaderValueprivate
Replacetrue
</div>
<div class="duration">0 ms</div> <div class="severity-informational">Informational</div> 125. -GENERAL_SET_RESPONSE_HEADER <div id="section_detail_125_details">
HeaderNameX-AspNet-Version
HeaderValue4.0.30319
Replacetrue
</div>

MS service Tracer Viewer, IIS. Performance problem

$
0
0

MS service Tracer Viewer, IIS 8 

I am working on identifing performance problem.

I am using MS service Tracer Viewer.

I have detected some delay is specific actions.

But I need some help from you (I am not expert in web development and troubleshooting).

Furthermore, I have not developed the application. It is running and my task is troubleshooting.

1) I have found out that some process actions takes ca 17 secs to have the response. Problem: how to investigate them for this delay?

2) Same process actions in other machine run faster (the application looks the same).

3) The system is used only for trobleshooting (so machine resource are free and stessed: CPU, RAM and Disks) 

Please, Could you mìprovide some info on how to tackle the problem.

Thanks

IIS Worker Process hangs every two hours

$
0
0

Hi,

As the subject says IIS Worker Process hangs every two hours (precisely) , and I'm not sure how to approach this problem.

Only thing that's for sure is that in every instance that problem occurs in the Performance Monitor's 'Analyze Wait Chain...'
lsass.exe is visible as a process which w3wp is waiting for to finish.

When lsass.exe finishes it's job, because of the piled up threads everything is unresponsive due to a 100% CPU usage and it
lasts for about 2 minutes.

As this is happening periodically in exactly two hours span I was convinced that some task on the particular system is causing the problem so I checked:

  • - No AntiVirus is running at particular moment
  • - No Local Firewall is running at particular moment
  • - No Application Pool recycling happened
  • - No Task (Task Scheduler) is configured to run every two hours
  • - No Application restart happens
  • - No resource usage peaks before the problem shows itself
  • - No sudden website usage peaks
  • - It happens every two hours even through the early morning when website usage drops to a bare minimum 

System:

  • - Cloud virtual sever
  • - Windows Server 2008 R2
  • - 6 processors
  • - 12 Gb RAM
  • - SQL Server 2014 Standard Edition
  • - IIS 7.5
  • - One ASP.NET MVC 5 application

Any suggestion how to solve this problem will be much appreciated.

Thanks. Best....

Igor

Request Execution Time counter ( Total ) evaluation of performance in multiple sites/app

$
0
0

Hello, when measuring / monitoring the Request Execution Time for a ASP.NET app  ,  in a server running multiple sites,  we might check the time for the specific application pool , or the _Total_ 

If we have 10 websites, and response is 1000 ms on each of them,  Total will be 10000 ms.   

That doesn't mean any of the request  will be 'queued ' and take so long , correct ?  

I'm asking this as our hosting service provider is raising alerts due to high request Exec time, but if I check individual sites, the response is fine for me. 

In other words, my question is , is the _Total Request Exec Time a value to consider as global performance in IIS , or does make more sense I watch single application ?

In any case, it seems I should at least increase the threshold for the  _Total.   3 s is too low.  Thanks for your suggestions IIS experts ! :) 

Slow performance on IIS

$
0
0

Hi all!

I've created an ASP website using Visual Studio that fetches some info from Active Directory on loading.
On my Visual Studio development machine the website loads fairly fast, lets say after 10sec.
But when i move the website to the IIS on our production web server, the site takes up to 1min to load.
The development machine and the webserver is in the same domain.

Any ideas where i start to troubleshoot?
Is there any good software that can log whats happening over the loading time?

Regards
Lars-Åke

Different loading time

$
0
0

Hello.

win 2012 R2  IIS 8.5

I am not expert in web development and I am working on understand slow response.

I am using Jmeter to simulate user.

Jmeter is used locally (directly from the web server) and from a client.

I am using Message analyzer, IIS trace (TraceViewer), wireshark, IIS logs and application logs.

I have enable IIS initialization and set: Always running (AppPool) and PreLoad in the Website.

I have found out a different behavior in loading same page:

Locally: generally is faster (only sometimes the first time takes time to load the page)

Client: Always the first run is slow, sometimes the next 2nd-3rd times slow and then faster.

After analysis,

same objects (making the web page) is loaded (locally and Client)

The time spent for Get/response is low (ms) checked with MS Message analyzer and wireshark (so network OK)

But the timing requested is different (I am not able to detect that make the IIS process slow from the Client comparing the timing loading locally).

Question:

Why different time loading same pages from client and locally (directly from server) ?

Thanks


IIS Prevents Drupal 8.2.6 from installing?

$
0
0

Hi. In the Drupal forums, I was informed that IIS can be the issue to the following problem. I installed Drupal 7, and Drupal 8.0.0 with no problem on My SQL. However I was unable to install Drupal 8.2.6 (latest). I entered the "Database configuration" information in the Drupal 8.2.6 site, selecting "Save and continue". Instead of going to the installation page, I am sent back to the "Database configuration page". This happens a lot. Why cant IIS/Drupal just continue to the installation? Is there anyone that can help me with this issue?

Thanks,

Performance of Kestrel behind IIS

$
0
0

I'm seeing a lot of graphs praising how fast Kestrel is with ASP.NET Core, but I can't find performance benchmarks that clearly state how it performs behind IIS (or any other server for that matter), since you need something to put Kestrel behind (as far as I know).

The only one I found showed very poor performance behind IIS, worse than normal framework MVC throughput. This has me concerned, since I will not be deploying to anything other than IIS in the foreseeable future. Currently building a Web API and opportunities don't present themselves very often to squeeze in a shiny new toy such as ASP.NET Core to keep experience fresh.

Can anyone point to some benchmarks a simple person like myself can understand?

iis high cpu load on applicationhost.config change

$
0
0

I'm developing an C/C++ application (service) that works with IIS 7.5-10.0 (Windows Server 2008 R2 - Windows Server 2016). It can add web applications and bind them with application pools or delete applications and pools on demand. These web applications are used by our customers when they working with our web sites. At this moment we have about 2000-2500 unique web applications and associated app pools in IIS ApplicationHost.config file on each web server (about 2.5 MB).

Every web server serves about a hundred applications and CPU workload are usually between 5 to 15 % and everything works fine until its time to add new app or delete existing. After that CPU workload jumps up to 100% and stays high for several seconds. At this moment everything on a server gets stucked and our customers begin to complain.

We are using Intel Xeon CPUs (up to 10 cores) and SSD RAID, but it not helps us to increase performance in this situation. At these moments CPU queue are about 5 to 10 times of its normal, so even a modern CPU can't cope with it.

As I noticed the reason of this behaviour is that IIS notifies all working instances of web applications (w3wp.exe) after every change (add or remove web app or pool) of its configuration. And each of working w3wp.exe instances do something inside nativerd.dll thread (I guess they re-reads IIS configuration in reaction of global notification) and loads the CPU by 2-5%. But usually there are about a hundred of them on a web server, so the freezing for a several seconds is guaranted because CPU is overloaded by 200-500%.

Need to say that all these published web applications are a third party software, so I have no their source code and I can't change them. I'm just writing a service application.

Is it possible to disable these notifications to w3wp.exe processes? These processes have nothing to do with the fact that there's one more web application or pool was added. They are isolated and don't affects each other after all.

Can you please advice me something in this situation?

Maybe there's some method of optimizing ApplicationHost.config size or reorganize its structure?

Thanks in advance and sorry for my English.

IIS 8 SAAS - Multi-Tenant config

$
0
0

Hello

We have a server width 144 logical processors. We are runing af SAAS under 4 domain names.

So we have config ProcessorGroup=0 for domain 1, ProcessorGroup=1 for domain 2, ProcessorGroup=3 for domain 3 and ProcessorGroup=3 for domain 4.

Eatch ProcessorGroup has 36 cpu.

Here is my config for a domain:

My problem is that domain 1 can effect domain 2. Is there a way to isolate domain 1 from domain 2 and the 2 can not effect eatch other ?

ProcessorGroup=0

How does IIS 8.5 distribute RAM Memory Resource to multiple worker processes ?

$
0
0

Hi everybody,

I have a web server of Windows Server 2012 R2 (IIS 8.5) with 64 GB of RAM.

On IIS we have about 15 Application pools for 15 sites/apps correspondingly.

All application pool Private Memory Limit config were set to 0 --> Unlimited.

But the strange thing here is in the high workload period, it seems to be that those worker processes never consume over 2GB/worker process (Even though i set it to unlimited). So we can think that the total RAM memory consumed by 15 worker processes is  approximately 30 GB at maximum.

So i wonder how IIS distribute RAM Memory to multiple worker processes when all the worker processes are running. Whether it distribute evenly or in another model ?

And is there a solution to increase RAM consumption of each worker process in this scenario?

Many thanks for your help

Viewing all 447 articles
Browse latest View live


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