Re: Disk thrashing with paging file

Tech-Archive recommends: Speed Up your PC by fixing your registry



Thanks Jim. Your Timer suggestion is a very good idea which I'll try before
resorting to the APIs. In the Timer would I need to do anything particular
to stop (or at least reduce) Windows paging out memory. E.g. The app has
tables of data in memory each with 1000's of rows (and I believe this is a
major cause) so would randomly accessing some of the rows (i.e. Copy to
local variables) reduce the amout of data that gets paged out?

As my app uses lots of other VB6 COM DLLs (late & early bound) then should I
access these components too in the Timer to reduce paging out the program
code? If so is it just a matter of testing the object reference or calling
a method of the component?

Presumably there're no problems using the SetProcessWorkingSetSize and
Virtual... API calls in VB6?

"Jim Mack" <jmack@xxxxxxxxxxxxxxx> wrote in message
news:O$kMoezpGHA.516@xxxxxxxxxxxxxxxxxxxxxxx
Chris wrote:
I have the following problem with the paging file on Win 2000
workstations (256 MB / SP3 / Single physical disk) running our custom
user interface app (VB6) and SQL Server. During periods of user
inactivity Windows pages out memory and, when the user starts using
the app again, there's a long period of disk thrashing while memory
is paged back in. Analysis has indicated that neither our apps or
SQL Server is doing anything at the time to trigger or inhibit
the thrashing. (However alot of this problem is due to the fact that
our user interface app holds lots of data in memory. The app uses a
further 50 VB6 COM DLLs.)

Apart from the obvious (Reducing memory usage of our apps / Using
recommended page file size & optimising for foreground apps /
Optimising SQL Server / Disabling un-needed O/S components / Reducing
disk access / Upgarding hardware) is there anything that can be done
to shorten the disk thrashing period? Will using
SetProcessWorkingSetSize or VirtualLock APIs make a difference?

As I read your post I was thinking "wonder what the working set is?", only
to see that you'd already considered it. It's worth a try, certainly. But
the right to set the size is usually reserved for users running as admins --
ordinary users may not have the proper privileges.

You could also try not ever being truly idle -- a timer can help fix that
:-)

--

Jim Mack
MicroDexterity Inc
www.microdexterity.com


.



Relevant Pages

  • Re: Disk thrashing with paging file
    ... before resorting to the APIs. ... In the Timer would I need to do ... anything particular to stop Windows paging out ... The app has tables of data in memory each with 1000's ...
    (microsoft.public.vb.winapi)
  • ToolTip memory leak in .Net 2.0
    ... Since I upgraded to .net 2.0 code like this leaks memory. ... In my app it amounts to hundreds of megs when left running over a couple of ... Add a Timer with an interval of 100, ... I've found no workaround except to stop changing tooltips at runtime. ...
    (microsoft.public.dotnet.framework.performance)
  • Re: msflexgrid with ctrl-pgup & ctrl-pgdn
    ... It is still possible for your VB app to ... Timer event, which occurs about ten milliseconds after the key was ... Private Sub Form_Unload ... Private Declare Function SetWindowsHookEx Lib "user32" _ ...
    (comp.lang.basic.visual.misc)
  • Re: How to set up a Linux machine that occupies the minimum memory footprint ?
    ... Of course, if you use 8GB of RAM, or more precisely if you ... Are you saying that if I have a 4GB RAM memory, ... Linux will somehow "know" that it doesn't have ... You've said in another message that your app is ...
    (comp.os.linux.setup)
  • Re: How to set up a Linux machine that occupies the minimum memory footprint ?
    ... Of course, if you use 8GB of RAM, or more precisely if you ... Are you saying that if I have a 4GB RAM memory, ... Linux will somehow "know" that it doesn't have ... You've said in another message that your app is ...
    (comp.os.linux.misc)