Link to home
Start Free TrialLog in
Avatar of lasax
lasax

asked on

Exchage Server/DC runs out of virtual memory every few days.

My Exchange 2003 is running on Small Business Server 2003, which is also the domain controller.  I've inherited the network, and I'm trying to figure out why the Exchange server regularly runs out of Virtual Memory.

I'm monitoring with the SolarWinds Exchange Monitor tool, and it shows that I have around 4.88% Available Virtual Memory.

Is this normal / acceptible?  A few days ago, Exchange stopped sending & recieving external emails.  I rebooted the server, and then all was ok, but I'm wondering if it is normal for the virtual memory to be constantly max'd out.  I know that generally, one wouldn't put an Exchange server on the same piece of hardware as a DC, but from what I've read, it is done using SBS.  Can anyone give any comments, suggestions, or advice regarding this topic?
Avatar of ryansoto
ryansoto
Flag of United States of America image

For SBS exchange on the same machine is standard.
Now what process in taskmgr.exe is hogging space.  I know your saying virtual memory but something is probably using standard memory
Avatar of lasax
lasax

ASKER

Hmmm.  Looks like sqlservr.exe is is using 1.6 gb.  
ASKER CERTIFIED SOLUTION
Avatar of Philip Elder
Philip Elder
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of lasax

ASKER

I'm new to SBS.  I've always run Windows Server OS in Enterprise environments where we clusterd systems and pretty much always had separate hardware for individual functions.  I already checked the 3gb switch issue, and I see that this is not recommended on SBS.  
User home directories are on this server, as well as shared printers.  CPU usage stays low (like 3-8%), and server doesn't appear to be stressed otherwise.  There are only about 40 users at the company.
MPEC thats a nice tool.  Can this be applied to other things say spoolsv.exe
Avatar of lasax

ASKER

Thank you so much!  I will read through this & try it out!  Cheers!
The above steps are specific to setting the allowed memory for any SQL instance to take.
As far as spoolsv.exe, not too sure on that one.
Philip
Avatar of lasax

ASKER

Hi,
I tried this procedure, but got the following failure message {actual servername replaced with "mysbsserver" for this example}.
C:\>osql -E -S mysbsserver\msfw
[DBNETLIB]SQL Server does not exist or access denied.
[DBNETLIB]ConnectionOpen (Connect()).
The offending service is indeed sqlservr.exe (PID 1804).  SQL Server Service Manager is currently set to "Stop".  I tried the mentioned procedure twice (once logged in with a domain admin account, and next time with the SQLAdmin account.
Any idea why I would get this error?  Server does exist, and access should not be denied.  Hmmm...
Avatar of lasax

ASKER

This didn't seem to solve the issue.  I'm now considering that perhaps I had too many user accounts on the server.  I read that the limit on SBS2003 is around 75 users.  There were over 80 objects before (though about 17 were disabled accounts of terminated employees.  I deleted about 12 of these disabled accounts and performance seems to have improved slightly, even though the virtual memory still ran down to 5% free yesterday.  Physical memory seems to be ok.  Is it normal or acceptible that the server just fills up this buffer of virtual memory since it is available?  Server does not seem slow or anything.  Only once, the outgoing & incoming mail stopped working.  Now I have been rebooting the server on weekends to try to maintain stability (I've read that this is recommended for SBS2003).
Make sure the instance is running when you run the commands. Also, logging in as domain admin is the key.

Virtual memory can be 2GB-4GB in size on SBS 2003. We set a 10GB partition aside on our boxes for both the OS swap file and the ISA URL cache.

This keeps the virtual memory file relatively fragment free thus improving the system's performance.

Philip
Avatar of lasax

ASKER

Ahaaa.  Ok, that makes sense.  So it won't upset Exchange or anything if I enable it just long enough to do this procedure?  We have a separate SQL2005 server on another box.  I'm assuming that this is the reason the SQL instance has been disabled on SBS2003.  If this is the case, I will run the instance & try the procedure again.  Thanks!
Using the above mentioned method, you should be able to peg the culprit and put a limit on its memory usage.
Philip