Effective use of Task Manager
Manager is a nice utility which provides a quick overview of what your Windows
2000 server is currently executing. It monitors applications, processes, memory,
threads and so on.
All of us use it often. However, there
are some lesser-known features of Task Manager that are very useful in troubleshooting
and performance monitoring. I will explain some common scenarios here.
How to invoke it?
There are many ways to do this:
- Right-click on an empty area of Task Bar and
choose Task Manager.
- Press Ctrl+Alt+Del and choose Task Manager from
- Press Shift + Ctrl + Escape.
- From the Start - Run dialog , type ‘taskman’
and run it.
Why use it?
It has many uses. The primary usage is
- System monitoring
- Tweaking the system at runtime
For these purposes, there are more sophisticated
tools available, but Task Manager is quick and
We will see some of the important uses
of Task Manager below.
First of all, it has various views. Here
is what each view shows and when to use it.
|| Shows all running applications
and their status.
|| The most common use is
to find applications that are 'Not Responding' and kill them using End Task.
However, remember that some applications may be running normally even when
the status is 'Not Responding'.
|| Shows all running processes
and many other parameters
|| Very useful for monitoring
memory usage, processor usage, paging, threads and so on. The default columns
are just a starting point. There are many more.
|| Gives visual information
about overall processor and memory usage
|| Works with multi-processor
1. Apart from End Task, what else can this
section be used for? Here is the first one—ending multiple tasks!
Tip of the week: You can select multiple
applications in task manager and kill all of them by choosing "End Task".
Common sense. But most people have never tried it!
2. Now, try selecting an application. Right-click
and choose ‘Go To Process’. The task manager will now open the Processes tab
and select the actual process (EXE) that runs the application. This is useful
when you want to analyse the performance of the executable but you know only
the application name (not the executable name)
3. Ever tried dragging some files from
one Explorer window to another Explorer window? You have to struggle manually
to ensure that both windows are tiled (arranged) properly so that you can drag
and drop easily? In fact, this can happen with any two applications that you
want to perform a drag-drop operation with. Moreover, it is also possible that
you want to work within one application while having multiple other applications
fully visible. (Remember multiple chat windows?)
Here is another great way of arranging
two or more windows in such a way that they fit on the screen without overlapping!
Arranging windows without overlap: Select
the required applications in Task Manager, Right-click and choose Tile Horizontally
or Vertically. That’s it!
Believe me, there is no better way of doing
this. So much for the Applications tab.
This is a very powerful section. By the
way, you cannot multi-select processes here. You can rearrange the displayed
column order by drag-drop. Common uses are:
1. Find out which processes are loading
the processor. To find this out, sort the CPU column in descending order (click
on the heading twice). This will show the most CPU hogging processes. Ideally,
most of the time is used by the ‘System Idle Process’. But in case of heavy
activity, you can locate potential bottlenecks quickly by looking at the items
at the top of the list.
2. Similarly, you can find out which applications
are taking up maximum RAM. Just sort the ‘Mem Usage’ column in descending order.
It is interesting to note how some simple applications can take up substantial
amounts of RAM.
For example, complex pages of Internet
Explorer (especially those containing lots of downloaded XML/scripts) can take
up several MBs of RAM. Similarly, when you open large documents, even Word can
take up lots of memory.
In fact, while studying this, I came up
with a very useful tip. It is listed towards the end of this article. Read on…
3. Nowadays, lots of viruses and worms
infest systems. Many of these install themselves as processes. For example,
the simplest way of finding whether the system is infested with Blaster is to
search for ‘msblast.exe’ in the process list.
Another common culprit you can catch here
is Wowexec. If you run some 16-bit programs, this is invoked. This is virtual
DOS machine. Sometimes, it continues to hog memory in huge amounts. You can
kill the process to save memory.
4. When you right-click on any process,
you have several options. ‘End process’ is simple enough. However, if there
are processes within processes, you can kill all of them by choosing ‘End Process
5. Using the Set Priority option (right-click
menu) you can temporarily promote the execution priority of selected process.
6. The real utility of this tool lies in
the other columns of information it can display. One of the most important information
would be Virtual Memory usage. The total memory used by a process is the sum
of actual and virtual memory. To add more columns to the monitor, select the
View - Select Columns menu item.
Most items are self-explanatory. But some
of these are very useful.
7. Page faults: This indicates the number
of times that data had to be retrieved from disk for this process because it
was not found in memory. This value is accumulated from the time the process
is started. If you want to know how many page faults are occurring incrementally,
you can use Page Faults Delta option. This delta is the difference between page
faults within the refresh interval of the Task Manager. High page faults indicate
that the server memory is under stress. You need to then find out other applications
that are competing for RAM and decide how to manage.
8. Another important item is Thread count.
This is useful in troubleshooting multithreaded processes.
9. Base Priority is another important parameter.
When processes are executed, they are assigned a priority level. This level
decides how much processor time the process will get. Enabling this column,
the base priority is displayed for each process. It is possible to elevate a
process to run at a high level of priority. This will have effect only till
the process lifetime (till it ends). Next time the process will get. Enabling
this column, the base priority is displayed for each process. It is possible
to elevate a process to run at a high level of priority. This will have effect
only till the process lifetime (till it ends). Next time the process will start
with its default priority. It is dangerous to increase priority of multiple
processes as it can hang the system.
10. Another nice feature is available in multi-processor
systems. You can explicitly make a particular process run on a particular processor.
Right-click on the process and choose Set Affinity option and then select one
or more processors. Of course these are temporary ways of increasing performance.
But in an emergency this is a good option to try.
11. In multi-processor systems, the processor graph
shows one graph per processor. This can be very useful to find out if the processors
are sharing the load appropriately.
This shows the processor and memory utilisation graphically.
The numbers displayed below the graphs can be confusing. The meaning of these
items is listed in the table alongside.
| Show Kernel Times (View
|| Useful to see how much
of processor activity is there for the core operating system kernel purpose.
| Physical Memory (Total)
|| Total RAM available
| Physical Memory (Available)
|| Free RAM. This is important.
If you find very low RAM available continuously, you have serious problems.
Either find out and stop unnecessary processes which are consuming RAM or
upgrade RAM. Alternatively, you could find applications that are consuming
more RAM and optimise them.
| System Cache
This is an area of memory into which the I/O system maps recently used
data from disk. This is done for improving performance by minimising disk
I/O. This setting can be optimised by choosing My Network Places - Properties
- File and Printer Sharing for Microsoft Networks - Properties dialog.
For application servers choose optimise for “network applications” option.
For file servers choose “…For file sharing” option. For servers that are
used for neither, use Minimize memory use.
| Commit Charge (Total)
|| This is size of virtual
memory currently in use by all processes, in kilobytes.
| Commit Charge (Peak)
|| The maximum amount of virtual
memory, in kilobytes, used in the session. This can give an indication of
whether the memory had reached a saturation point.
| Commit Charge (Total)
|| Sum of paged and non-paged
| Kernel Memory
|| Paged and non-paged memory
being used by OS. We don’t have much control over it.
Snippet: Increase your RAMfree of cost
Now this is called a tip of the year! While working
with the Task Manager I observed the following. You can also try it out.
- Start any application, say Word. Open some large
- Now start the Task Manager processor tab and sort
the list in descending order on Mem Usage. You will notice that Winword.exe
will be somewhere at the top, using multiple MBs of memory. Note down the
- Now switch to Word and simply minimise it. (Do not
use the Minimize All option of the task bar).
- Now go back to the Task Manager and see where Winword.exe
is listed. Most probably you will not find it at the top. You will typically
have to scroll to the bottom of the list to find Word. Now check out the amount
of RAM it is using. Compare it with the original. Surprised? The memory utilisation
has reduced by a huge amount.
- So where is the tip of the year? Simpleminimise
each application that you are currently not working on by clicking on the
Minimize button, and you can increase the amount of available RAM by a substantial
margin. Depending upon the number and type of applications you use together,
the difference can be as much as 50 percent of extra RAMand all this
is free of cost!
It is nothing unexpected actually. In any multitasking
system, minimising an application means that it wont be utilised by the
user right now. Therefore, the OS automatically makes the application use virtual
memory and keeps bare minimum amounts of the code in physical RAM. I have not
tried it, but I am sure it would work exactly the same way even in earlier versions
of Windows (and any other multitasking system).
||About the Author:Dr Nitin
Paranjape is the Chairman and MD of Maestros (Mediline). He is a consultant
with many organisations, covering appropriate technology utilisation, business
application of relevant technology, application architecture and audit as
well as knowledge transfer. He has authored more than 650 articles on various
technology-related subjects. He can be contacted at firstname.lastname@example.org