Michael,

Page faults occur when the memory manager is asked for a register that is
not in PHYSICAL memory (meaning it has been swapped to the disk. The word
"fault" was an unfortunate choice by some original assembly programmer
because it makes folks think something is wrong when it may or may not be
wrong. When a chunk of memory is called for the memory manage figures out if
it exists physically (in RAM) or virtually (pretending it is in RAM but
really swapped to the disk). If the memory chunk is actually on the disk,
the memory manager says "wait just a sec" and then goes to the disk to
retrieve the info into physical memory before sending it back to the calling
process. This "wait a sec" operation is a page fault. On a very busy server
the memory manager might also have to figure out how to swap something else
to disk to make room for the memory required by the fault.

In general very high page fault rates mean that a good deal of what the
system needs is in the pagefile instead of in physical memory. Note, I said
"page fault rates". The actual number of page faults might be irrelevant,
since a 1 time operation calling something from the pagefile can result in a
very high number. What is more key is how often the number of page faults
increments. If you see constant and steady activity it's possible you are
swapping in and out in a steady stream and your disk is thrashing (leading
to disk errors and things like corrupt master mdb files :)  

Typically if you see a high rate you need more memory or you need to fine
tune the memory and processes that are running.  In the case of JRUN and
MSSQL on the same machine (not a great idea but common) - as well as SWOC
(the sequelink access driver - you mentioned MS Access), you need to specify
what amount of memory is going to jrun, what amount to mssql and then have a
reserve for kernel, swoc, and other operations.

So for example, on a 2 gig machine, you might set jrun to 756 megs heap
(effectively about 900 megs) set mssql to run 512 megs and leave the rest
for everything else. Of course, depending on the type of setup you would
need to adjust those values - every system is different.

Finally, if you run MSSQL on it's own box the best choice is usually to give
it its head and let it tune it's own memory usage. But if you run it on a
box with JRUN you need to specify a top limit - otherwise it will sometimes
overrun the box. It's just a smarty pants and thinks it is always the most
important software on the box (and really it should be - on it's own box). 

Hope this helps.


Mark A. Kruger, CFG, MCSE
(402) 408-3733 ext 105
www.cfwebtools.com
www.coldfusionmuse.com
www.necfug.com

-----Original Message-----
From: Michael Muller [mailto:[email protected]] 
Sent: Wednesday, May 20, 2009 8:41 AM
To: cf-talk
Subject: (ot) Page Faults


I'm dealing w/ a corrupt SQL Server master DB right now, so all my SQL
Server sites are offline at the moment (ugh) -- but that's not why I'm here.

While trying to figure out what in heck was going on on my server I looked
at Task Manager processes and sorted by various columns until I saw the Page
Faults column... jqs.exe was at 1.5 billion and jrun.exe was at 715 million.
sqlservr.exe was at 218 million.

So, after rebooting and restarting these processes (and getting all my
smaller Access sites back up -- since CF was hung on all the SQL Server
requests) they were all set back to 0, and then immediately started climbing
back up. jqs.exe is already over 300,000 and jrun is at 150,000.

So... wth? Is this a hardware issue?

>From Wiki Answers:

"In computer storage technology, a page is a fixed length block of memory
that is used as a unit of transfer between physical memory and external
storage like a disk, and a page fault is an interrupt (or exception) to the
software raised by the hardware, when a program accesses a page that is
mapped in address space, but not loaded in physical memory." 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322667
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to