In Part1 of this series, we discussed how most every application issue in production can be listed in one of three buckets: exceptions, non-responsiveness, and performance issues. This last bucket includes memory pressure issues, which is by far the most common type of .NET application issue I've seen in my time at Microsoft Support.
This episode is the first of three dedicated to troubleshooting memory pressure issues in .NET applications (the kind of troubleshooting Microsoft Support performs in the production environment). But before we jump straight into the aspects of troubleshooting, it's best to get a good understanding of virtual memory. Without this background, many of your troubleshooting efforts may lead to dead ends or - even worse - false conclusions.