How to PerfMon my 6 GB RAM on Windows 2003 Server Std 64bit to see how it is used?


I would like to determine how the 6 GB RAM is used on the Windows 2003 Server 64-bit version, Standard Edition. The machine is used as dedicated for Terminal Services. Thick clients are executed on the machine via TS by more users. When certain number of users (running the thick client) work simultaneously, the RAM starts to be swapped to disk. The problem is that Task Manager shows that only nearly 4 GB of RAM is used in the time. See http:Q_24567801.html for details.

As debuggerau http:M_926426.html noted in the above question, it could be the case that the extra memory (the 2 GB) is used for another purpose and suggested to use perfmon to find the detailed usage. I am very new to that kind of task. Could you suggest how that should be done?

LVL 29
Who is Participating?
Robin CMConnect With a Mentor Senior Security and Infrastructure EngineerCommented:
Also check out (at least) the:
View - Select Columns... - Process Memory
tab from Process Explorer:
This util can help with all kinds of problems. Perfmon is useful but if you want to learn one tool for Windows diagnostics I'd suggest you pick Process Explorer.
ZuluGrConnect With a Mentor Commented:
You can try PAL from here :
it uses perf mon counters for several things.
debuggerauConnect With a Mentor Commented:
I'd try the default perfmon settings firstly, it gives Pages/sec, which is the page file access.
Avg. Disk Queue Length which show the outstanding harddrive requests and % processor time, basically, how busy the processors are..
From this, I would monitor as the eleven users came online until performance starts to degrade.

gee, that was quick, I thought you would want us to review and possibly drill-down..
peprAuthor Commented:
Well, but my comment was lost :(

It was basically: 1) The PAL cannot be used for 64-bit Windows, 2) Process Explorer is nice, 3) I will use PerfMon if Process Explorer would not be enough.

For the case you are interested, I wrote a simple console application (C++) that just allocates given size of memory and waits until Enter -- see the snippet (I know it is not perfect but I don't mind). This way I can simulate memory demanding application without using the SAP client. All of this will be tested later; however, you deserve the points immediately ;)
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(int argc, char * argv[])
    const size_t kilo = 1024;
    const size_t mega = kilo * kilo;
    // Get the number of megabytes to be allocated (consumed;
    // max. 1 GB).
    size_t requestMB = 512;  // MB default
    if (argc > 1)
        int i = atoi(argv[1]);
        if (i > 0)
            requestMB = i;
    if (requestMB > kilo)
        requestMB = kilo;
    cout << argv[0] << " (" << requestMB << " MB)\n";
    // Allocate the memory of the size in bytes.
    size_t requestInBytes = requestMB * mega;
    vector<unsigned char> buf(requestInBytes);
    // Wait until Enter.
    cout << "Press [Enter] to finish the application... ";
    string s;
    getline(cin, s);
    return 0;

Open in new window

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.