XP system w3wp.exe process CPU usage 100% of the reasons and solutions

  

For Internet information service administrators, in the management process often encounters the Web server CPU usage 100%, and this is mainly The w3wp.exe process occupies 100% of the CPU memory. The following is a description of the common causes and specific solutions for this problem in the XP system.

Explanation of w3wp.exe: Full name: IISApplicationPoolProcess, w3wp.exe is a part of IIS tool, w3wp.exe is a process associated with application pool in IIS (Internet Information Server), if you There are multiple application pools, and there will be multiple corresponding v3wp.exe process instances running. This process is used to allocate a large amount of system resources.

Common reasons are as follows:

1. The amount of Web traffic is large, so the server pressure is caused by

This is also the most common situation. If the amount of Web traffic is large, especially if there are too many online users at the same time, the processed Requests Current is too high, which will put a lot of pressure on IIS and the server at the same time. In particular, the server needs constant computing and sends the generated page to the client, which requires a large amount of CPU resources, resulting in 100% CPU.

2. Dynamic page (.aspx) program logic complexity

This problem is quite serious for the CPU usage of w3wp.exe, which may be relatively small in access level. In the case, there is not much impact, but on high-concurrency websites, especially when Asp.NET's Requests Current exceeds 250, it will be an important factor for w3wp.exe to occupy CPU.

I have come across a situation where two webs (A and B) are deployed on two servers with comparable configurations, and both sites have a large amount of traffic, and the access pages are concentrated in two. Two separate pages of the site, and the number of IIS connections on the two pages is about 50, but the complexity of the page program is a lot wrong. The pages in the A site have only a few simple Repeater bindings. The pages in the B site have a large number of bindings, string filtering replacements, Repeater nesting bindings, and so on. In this case, in a large-flow, high-concurrency environment, when the number of IIS connections reaches 3W, the CPU usage is still about 50%, and when the number of IIS connections reaches 7K, the CPU is 90. More %, causing a lot of pressure on the server, and IIS was blocked.

3. There are dead loops in the page program

If the web access is not large, but the CPU is very high, then the program in the page must have an infinite loop or a program with serious performance. .

4. Http mode download site

If the site is an HTTP form download station, you also encountered w3wp.exe taking up 100% of the CPU.

5. Server resources are not automatically released

Sometimes, the traffic of a site increases sharply within an hour. As a result, the operating system allocates more CPU resources, but when the traffic goes down, The CPU occupied by w3wp.exe is not released in time, and it is still above 90%.

6. IIS log file operations

For example, analyzing the data in the IIS log file at this time, and importing the IISLog log into the database, this operation will also cause this phenomenon.

Solution:

First, quickly locate the problem site

1. Use the iisapp-a command to quickly locate the problem site. Of course, if the current server only runs one web site, then this step can be skipped.

Enter iisapp-a in cmd, there will be information in the following figure:

2, of course, this requires you to each site must have a separate application pool corresponding, the name of the application pool, the best is the name of the site, as shown below:

3, with regard to the configuration of the IIS application pool, can not say here, I can not understand Search. After that, then open the Task Manager, as follows:

4, the observation process for the w3wp.exe to view the CPU usage is high, then use the results to compare its PID listed in iisapp, It's easy to find out which CPU is too high for that site.

Second, restart IIS and application pool

This step is urgent, it is generally a palliative step. If your site is built with load balancing (load balancing, NLB), then the current server is down in load balancing (load balancing, NLB) and then restarted. If you don't have load balancing (load balancing, NLB) and your site is online, then it's more than 10 seconds of tragedy. You can't access it for a short time.

Third, add page level cache to the page

If the Web is an Asp.Net program, then be sure to <%@ OutputCache Duration="10" VaryByParam="none" %>. However, there are many people who have not used OutputCache, which leads to the problem of downloading the page frequently, so they have given up using it. Here, there is a solution for the download of the page caused by OutputCache.

OutputCache is very useful, the benefits are three: read the page directly from memory, page response faster, user experience is better; greatly reduce the pressure on the server, especially for high-concurrency websites, especially CPU Pressure; reduce the strength of the DB, reduce the pressure on the DB (database).

Fourth, check the page logic

If the WEB traffic is very low, but there is still w3wp.exe (IIS) CPU takes up about 100%, then check the code logic of the page, very There may be an infinite loop or a large number of operations.

The above is an introduction to the problem that the w3wp.exe process occupies 100% of CPU memory. It describes the reason for this situation. It also explains the specific solution if the Internet information service administrator or user touches it. If the problem cannot be solved, you can try to solve it by the above method.

Copyright © Windows knowledge All Rights Reserved