Jump to content

VCACHE fix attempt


Xeno86

Recommended Posts

[...] I'm wondering why you put 4096 as the minfilecache for all RAM variations? What's your reasoning?[...]

Well, AFAIK, from my own experiences and from what I read around, MinFileCache is not critical and could be left out altoghether. However, setting it to 0 (zero) lets the system potencially to use no cache, and bad things might happen in this case. So I set it to a bare minimum that is a multiple of all ChunckSizes used, so as not having to worry about it anymore. But any value less than the MaxFileCache ought to do equally well. BTW, I disagree with Offler and others that recomend MinFileCache=MaxFileCache, because that makes the cache static, and if MS took the trouble of making it dynamic, I don't see the point of disabling the dynamic behaviour for no aparent reason. Be as it may, in every real word system I ever used, the cache rapidly goes up to the MaxFileCache value set and stays there, after less than 1h of use, and that's why I don't find it critical. There is one more motive to my choice: Intel and AMD processors use 4kB as the standard size for their virtual memory pages, thus I see no point in setting a MinFileCache that's less than a page, although there is no clear relation between these two things, because the cache should never be paged out of memory.

[...] I was playing around with huge RAM sizes in Virtual PC and the most i could get reported by the OS was 1158 MB. This was what the OS reported, when there was actually 1500 available. To get 1158 MB I set MaxPhysPage to 48899 and this was the last possible setting before windows wouldn't load.

[...]

So, actually, my fix of setting MaxPhysPage to 39999 is actually a very sound thing to do. Use the left over ram for the RAM drive as has been suggested. So the file that was released inside UBCD v4.6.0 called "MaxPhysP.exe" is fine to use after all. yay.

Yes, it is! :thumbup Then again, you might set it to 39A00, just to have exactly 922MB (I do love round numbers :D).

PS: There are two more interesting links to follow: VCACHE SETTINGS WIN9x/Me, a classic, already mentioned by Offler elsewhere, and the old Q108079, that I forgot to mention before. HTH.

Obs.: In view of Offler's cautionary post above, I'd revise my sugestions for 1.5GB to read as:

RAM ... MinFileCache ... MaxFileCache ... ChunkSize

1536 .. 4096......... 65535 ...... 1024

just to be on the safe side, if the idea is to create a general use .reg file.

Edited by dencorso
Link to comment
Share on other sites


For my system which has 1024mb of ram (do not count ramdisk) i am using right now MaxFileCache=65535 because with 131072 some bugs with the cache apeared after a longer period (several hours when system was online and opening and closing vcache critical apps). With 260144 they appeared quite often.

Have you got MaxPhysPage set to anything in SYSTEM.INI with bugs appearing when MaxFileCache is set to 131072?

As both Win 98SE and XMSDSK by Frank Uberto are XMS clients, since one has to load XMSDSK first, not forgeting to use the important /T command line switch to have the virtual disk load from the top (of extended memory) down, when Win 98SE gets to load it only sees the memory the virtual disk left unused. So, provided one sets XMSDSK to a reasonable size, Win 98 SE usually loads even if the MaxPhysPage is left altogether out, although I do like to set it anyway, just to remain on the safe side.

Link to comment
Share on other sites

I am currently doing some tests using Cacheman 5.50 to find out how much Disk Cache Windows 98 SE likes to use.

So far opening a whole heap of programs at once has taken it up to 90MB then closing them all reduced it to just 70MB.

Link to comment
Share on other sites

Ok, I tried opening and closing and opening and closing and opening different programs over a few hours. I included playing some media files (video and music) and playing a few windowed games.

My system has 256MB of RAM and the system was running stock vcache settings (ie. nothing added to system.ini)

With all the programs open I had NO Free Physical Memory available.

57MB of Paging File in Use

At one stage my DiskCache peaked at 103.8 MBytes but once all free Physical RAM was in use, the DiskCache was shrunk to 60.3 MB.

Someone should repeat this type of experiment with larger amounts of RAM so we can determine how Windows responds when it has more RAM available.

Edited by galahs
Link to comment
Share on other sites

Interesting I did the test again, trying to overload the system with running apps and again the DiskCache peaked at 103.8MB before shrinking!

Could it be that 103.8MB is a built in limit for systems with 256MB of RAM?

I'll carry out some more testing to see if I can replicate this behaviour.

Link to comment
Share on other sites

Further testing has proven that theory wrong.

I just had it peak at 110.2MB

But the fact that Windows is dedicating that much DiskCache makes me think 65535 is a tad too small a limit or am I missing something?

Link to comment
Share on other sites

This is the settings table i'm working from to set the values in the AutoSYSTEMini project i'm working on:

graph.png

as you can see there's two values i'm not sure what to put for ... if anyone has ever used over 1 gig, what did you use for the MaxPhysPage value? Did you use it?

If anyone has any comments about the table, please type now or forever hold your peace! :lol:

Edited by soporific
Link to comment
Share on other sites

This is the settings table i'm working from to set the values in the AutoSYSTEMini project i'm working on:

[...]

If anyone has any comments about the table, please type now or forever hold your peace! :lol:

soporific, my friend, as I have said above: :whistle:

Obs.: In view of Offler's cautionary post above, I'd revise my sugestions for 1.5GB to read as:

RAM ... MinFileCache ... MaxFileCache ... ChunkSize

1536 .. 4096......... 65535 ...... 1024

just to be on the safe side, if the idea is to create a general use .reg file.

That said, AFAIK your 1158 MB configuration with MaxPhysPage=48899 IS the record.

I just don't recall where I read about someone else allowing windows to see 1022 MB...

The maximum value ever mentioned by MS is MaxPhysPage=40000 (1024 MB), in Q304943, and Offler, in a post above, reported 1024 MB. And that's all I know about it. For the time being, I think 39A00 is a good idea for 1.5 and 2.0 GB, until some experimentation shows one really can go further.

I think you and Offler are the only ones presently in position to start such testing. As for me, I'll try to add 512 MB more memory asap (I already do have such a stick), but I have serious doubts my mobo can manage that much memory well. The A7V600-Xs are know to have problems with more than one memory stick at or near FSB 400 (despite what ASUS says), so I cannot guarantee I'll be able to perform such testings anytime soon. I'll keep you posted, though. And, just for the record, I use ConservativeSwapFileUsage=0.

galahs, the point is not performance: above 512 MB, the question is whether windows is able to start at all, and if it does start, whether it will perform normally or throw all sorts of errors at you, the infamous "out of memory" errors in Q253912 among them. But, as I said before, IMHO the key parameters are MaxFileCache and MaxPhysPage. The others can be tweaked for performance, but are not crucial for starting ability and stability.

Edited by dencorso
Link to comment
Share on other sites

I had Win98 installed on my Pentium 4 which has 1.5GB of RAM.

I got the famous "Insufficient memory to initialize windows. Quit one or more memory-resident programs or remove unnecessary utilities from your Config.sys and Autoexec.bat files, and restart your computer."

So I used the MaxPhysPage=40000 line limiting the computer to using just under 1GB and the computer ran without a problem.

That was using default system.ini values (No MaxFileCache, no conservativeswapfile settings).

Based on further reading I now believe I should have added the MaxFileCache=261120 (or something less than 512000) but I must not have had Windows use enough DiskCache to run into this lack of memory addresses problem.

So my chart would read the following

RAM ... MaxFileCache

8 . . . . . leave as default

16 . . . . leave as default

32 . . . . leave as default

48 . . . . leave as default

64 . . . . 49152 + ConservativeSwapfileUsage=0

128 . . . 98304 + ConservativeSwapfileUsage=0

256 . . . 184320 + ConservativeSwapfileUsage=1

512 . . . 261120 + ConservativeSwapFileUsage=1

768 . . . 261120 + ConservativeSwapFileUsage=1

1024 . . 261120 + ConservativeSwapFileUsage=1

1536 . . 261120 + ConservativeSwapFileUsage=1

2048 . . ???

I would leave the ChuckSize as the default 512. I have seen no proof that larger chuck sizes increase performance.

I would have NO MinFileCache value.

I picked 261120 to allow enough memory addresses for users with a 256MB AGP graphics cards. Also I don't think too many people would see much benefit of having a diskcache over 255 MB.

.

Edited by galahs
Link to comment
Share on other sites

I managed to get my system to work with 1536 MB. :hello:

I am loading XMSDSK from config.sys, using INSTALL=E:\UTIL\XMSDSK.EXE 292992 N: /c1 /t /y

So, here are my initial results (using MaxFileCache=65535):

No MaxPhysPage or MaxPhysPage >= 48D00 -> "Insufficient Memory to Initialize Windows"

MaxPhysPage = 48C00 (1164 MB) works, but Win 98SE sees only 1162 MB. It is the absolute maximum that works.

MaxPhysPage = 48B00 (1163 MB) works, but Win 98SE sees only 1161 MB.

These two configurations above sometimes start OK, sometimes throw "Insufficient Memory to Initialize Windows".

MaxPhysPage = 48A00 (1162 MB) works, but Win 98SE sees only 1160 MB;

MaxPhysPage = 48900 (1161 MB) works, but Win 98SE sees only 1159 MB;

MaxPhysPage = 48899 (1161 MB) works, but Win 98SE sees only 1159 MB;

MaxPhysPage = 48800 (1160 MB) works, but Win 98SE sees only 1158 MB.

I stopped here and am testing the stability of this configuration. * If I set MaxFileCache=131072, it starts, but I get "There is not enough memory available to run this program" at some point, even with cpu-z.

And if I set MaxFileCache=262144, I just get "Insufficient Memory to Initialize Windows" and the system simply doesn't start at all.

Added 18th October 2007 - 06:40 PM:

* My stability tests on the 1158 MB show that it is stable, at least for 8h. So I reduced some more the value of MaxPhysPage, in order to find the highest value that windows accepted without displaying that strange behaviour of detecting the requested value minus 2 MB (which is a bug I never had read about before!).

MaxPhysPage = 48600 (1158 MB) works, but Win 98SE sees only 1156 MB;

The above is the smallest value with which windows still detects the requested value minus 2 MB.

So, the setting below is the maximum that behaves as expected. I'm using it now (1157 MB).

MaxPhysPage = 48500 (1157 MB) works, and Win 98SE sees all 1157 MB;

MaxPhysPage = 48400 (1156 MB) works, and Win 98SE sees all 1156 MB.

More later. HTH.

Added 22nd October 2007 - 05:33 AM:

Sorry, sorry, everybody! :blushing: I made a mess of this post when I wrote it and it eluded me up to now! I fell victim of the "paste bug" and pasted MaxFileCache where I should have written MaxPhysPage, meaning to modify it, and just forgot to do it. :blushing: Now it is as it should be. Sorry!

BTW, I'm presently using MaxPhysPage = 48600 and MaxFileCache=98304, without any problems, for the last two days. I'll try again to raise MaxFileCache (yes, MaxFileCache!) a little more tomorrow...

Link to comment
Share on other sites

This website: http://adriansrojakpot.com/Speed_Demonz.htm is the first one I have found that actually done some benchmark testing to see the improvement using MaxFileCache and Chunksize settings.

The conclusion was the stock 512 byte chunk size was the best performer and that limiting the MaxFileCache didn't improve performance.

Thanks for this info. I have been following this thread with interest, and have tried various settings. I have 1GB RAM and also have under [386Enh]:

MaxPhysPage=40000

MinSPs=16

ConservativeSwapfileUsage=1

DMABufferSize=64

WITHOUT DOUBT the setting that has worked best under [vcache] -- that makes most use of the 1GB RAM fitted -- is this:

MaxFileCache=522240

MaxPhysPage=40000

So, I think that's good advice (above). I found that other settings, such as limiting MaxFileCache didn't take advantage of the 1GB RAM (which often still had 700MB left after several hours of working. Now, at last, most of the 1GB is getting used.

Link to comment
Share on other sites

That is exactly my thought.

Having lots of un-used RAM is wasted RAM.

Windows FileCache is used to speed up Windows. The more RAM you allow it to use the faster your windows experience will be. And Windows is clever enough that if a program your running needs more RAM to run a program, it will decrease the size of its FileCache.

That is why I still think users are setting MaxFileCache too low.

The other thing we need to clarrify is the effect of VideoMemory on memory address allocation.

How does using a graphics card with a large memory (64MB +) affect the highest allowable MaxFileCache value?

Link to comment
Share on other sites

MORE INFORMATION

Vcache is limited internally to a maximum cache size of 800 MB.

This problem may occur more readily with Advanced Graphics Port (AGP) video adapters because the AGP aperture is also mapped to addresses in the system arena. For example, if Vcache is using a maximum cache size of 800 MB and an AGP video adapter has a 128-MB aperture mapped, there is very little address space remaining for the other system code and data that must occupy this range of virtual addresses.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...