help in control of paging on a selected app

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have an appl that has virtual memory requirements of approx 1.8gbyte. The
performance is awful (response to user actions), and I'm convinced that it's
constantly swapping. It's running on a dual PIII 1000mhz, 4gbyte RAM, 4gbyte
swap file, system with no other applications.
But the task manager shows that it's always got 1/2 of the appl in memory
and the rest in the swap file. Back in my VMS days, the admin could
configure each appl to be not-swappable or set the minimum working set
(higher) to prevent unnecessary swapping. Can this be done on WIN2000
advserver ??
Help ! I need a solution before the users revolt !
 
OK, with 4gb of RAM the page file should be 6 gb (1.5 ram) and with your app
maybe higher. Did you isolate it (pagefile) on its own disk? Next make
sure the pagefile is not fragmented - use perfect disk because it will
defrag a pagefile otherwise you will have to create one on another disk,
delete the fragmented one, defrag the original disk and recreate the
pagefile on the original disk then delete the other pagefile. The pagefile
settings (initial and maximum) should be the same size to prevent
fragmentation. WxK gives a program a 2gb memory space so memory should not
be an issue. As for swapping out you can set its priority lower/higher.
Have you done any monitoring?

Lee
 
I don't think I clearly stated the issue.
- because win2000/nt is a virtual memory system, we are stuck with the
concept of page files and swapping
- anyone interested in quick user response, realizes that ANY swapping of
your application is counterproductive.
- swapping pages by the OS (in order to compute a response to a
keystroke/click) will result in response times that are 10-20 times slower
than a response computed with no swapping
- obviously, if the appl is already very slow (because of constant
swapping), the last thing we want to do is promote MORE swapping.
- in a perfect world, NO pages of this appl would ever be swapped, and the
OS could address 100% of the application constantly.
- for those of us who remember OS's that were not based on swapping, your
application was 100% memory resident, and the user response times were
limited primarily by the cpu cycles (not 1000's of disk reads to reload your
appl).
- I'm looking for anyone that knows how to tune win2000 to accomplish this
goal.
- Thank you for your response.
 
Don't forget that there are other user mode processes running while your
program is running (not including any programs that you launch). If your
program requires 1.8GB, that's a healthy chunk of available memory. It is
likely that Windows will swap you out periodically. Don't forget the kernel
will require a fair chunk, and any I/O you do will take pieces. That's just
the way an OS that pages works. The program needs to be designed to work
efficiently on the OS on which it will run. It may be that this was ported
from VMS without any thought to that issue, or designed without any thought
to that issue.

You might try /3GB in your boot.ini file to give user mode 3G instead of 2,
cutting the kernel down to 1G.

Changing to real-time will change how frequently it is asigned time slots in
which to run, but it will not change whether it gets swapped out or not.

If you have access to the code, you might lock the memory. But that will
only guarantee that the memory will be there when the program runs. It will
not guarantee that the program will not be swapped out along with the memory
when it's time quanta elapses and Windows decides to swap.

Also, are you sure you are running the SMP kernel? Does this program use
any custom drivers?

Marc Reinig
System Solutions
 
Back
Top