Why do we minimize windows file cache?
Can anybody please explain why do we minimize the windows file cache?
help.sap.com has the below lines..
"The Windows file cache directly competes with SAP programs for physical memory by pushing them out of the memory. Therefore, you should minimize the file cache"
Can anybody explain what does this exactly mean?
Lars Breddemann replied
when I first read your question I thought:
"This must be a joke-question! Surely nobody who has to deal with highly complex system landscapes like the ones NetWeaver makes necessary would have a real issue with understanding this basic concept!"
But on the other hand, we all started working in this business with more or less sound knowledge about the technical foundations that influence the systems we work with.
So, here is my try on this:
Main memory (in most computers today also known as RAM) is a resource to store data shared among all programs that run on that computer at the same time.
The SAP NetWeaver workprocesses (disp+work.exe) are such programs. And the Windows filesystem management is also a kind of program in that sense.
Both of these two programs need RAM to do their work. The more memory they get, the better they can do their work.
If you decide to install NetWeaver to a computer the documentation developers assumed, that this will be the main use for this computer. For example, they did not expect that you use the same computer as a file- or print server or webserver or server for anything else (although this would be possible).
Therefore it was decided that, to make the NetWeaver program work best, it would be best to give it as much resources (like RAM) as possible. Obviously this means that these resources have to be taken from other programs, just like the filesystem cache of Windows.
And there we are: by reducing the file cache of the Windows server we allow other programs (like our NetWeaver) to use more RAM for it's own purposes.
Usually there are not so much 'file actions' on a server where NetWeaver is running that this is a problem. Most of the data processed in a workprocess is read over the network from the database and stored back to it, so no need to keep a big cache for 'file actions'.
If your question just refered to the "pushing out of the memory" part, no problem either!
As you may have realized by know the demand for RAM is large. In fact its so large, that most often it is too expensive to buy as much RAM for a computer as it would be needed to fullfill all the demand.
Fortunately, not all data stored into the RAM is needed all the time. Actually, most parts of it are not used for most of the time. This characteristic of the demand for RAM opens the opportunity to save parts of the data in the RAM into a file (no, you won't need the filesystem cache for this file ) and thereby make space for other data to be stored in RAM.
This functionality is also called 'paging' as the data is written to disks in chunks which are called 'pages'.
Ok, with this faboulous feature we got the option to put more data into the RAM than we actually have installed into our computer, which is really great.
Unfortunately when we want to access our data again, it has to be loaded back from disk into memory. And for that some other part of the data in RAM needs to be saved to disk first to make space for the data we want to access.
This 'writing out - reading in' of data takes time. Programs like the workprocesses need to wait until the operating system has done this for them. Until this is done, they can basically do nothing than wait - and so can the users that see a 'hourglass' mousepointer when they called a new transactiom.
So 'paging' is really bad for the system performance and for the response times of the system.
Therefore it is usally wanted to keep this paging down on a level where it does not affect the workprocesses too badly.
And this can only be done by either putting more RAM into the machine or reducing the demand for RAM - which is done e.g. by minimizing the filesystem cache.
I hope this lengthly explanation helped you to get the idea.