virtual memory fragmentation happening too often. can this storage be expanded? recommendations?

the error is as follows: The virtual memory necessary to run your Exchange server is fragmented  in such a way that normal operation may begin to fail. It is highly recommended  that you restart all Exchange services to correct this issue - EventID 9582... I would like to make this error go away. What causes it and what can i do to avoid it... expand the memory allocation? is there a way to proactively defrag this before it gets too bad? it is not "convenient" to stop and restart the services during the day, and i don't like errors of this sort to begin with! your assistance is most earnestly and graciously sought, oh sages of the ether...
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

krichertAuthor Commented:
ok, so it's early, and this is before my first cup of coffee- i am running windows 2000 server, and exchange 2000....sorry!
Pete LongTechnical ConsultantCommented:
Hi krichert,
typical helpfull M$ article
Immediately after the information store service is failed over to a passive node, Event ID 9582 is logged in the event log:
Event Source: MSExchangeIS
Event Category: Performance
Event ID: 9582
Type: Error

Description: The virtual memory necessary to run your Exchange server is fragmented in such a way that normal operation may begin to fail. It is highly recommended that you restart all Exchange services to correct this issue.
The passive node maintains a stub store.exe process. If the passive node at one time hosted the virtual server and was not restarted after it released ownership of the virtual server, the memory in the store process already contains fragmentation.
To clear fragmentation, restart the current passive node, and then fail cluster resources to the newly restarted node. Additionally, restart the previously active node in case an unexpected failover was to occur.

Pete LongTechnical ConsultantCommented:
One of the most problematic areas of Exchange scaling is the lack of virtual memory in the store.exe process. As you scale a server to accommodate more users and more usage, the server may run low on virtual memory. This problem is signified by the presence of 9582 events in the Application log. In some cases, these events are informational or routine, and can be ignored. In other cases, the lack of virtual memory can cause severe performance degradation and message processing errors (signaled by 12800 events). The following is an example of 9582 events.

The Information Store service logs the following events if the virtual memory for your Exchange 2000 server becomes excessively fragmented:

The virtual memory necessary to run your Exchange server is fragmented in
such a way that performance may be affected. It is highly recommended that
you restart all Exchange services to correct this issue.
Note   This warning is logged if the largest free block is smaller than 32 MB.
The virtual memory necessary to run your Exchange server is fragmented in
such a way that normal operation may begin to fail. It is highly
recommended that you restart all Exchange services to correct this issue.
Note   This error is logged if the largest free block is smaller than 16 MB.
There is virtually no correlation between physical memory and virtual memory. Errors indicating that you are out of virtual memory cannot be solved by adding more physical memory. Additionally, errors indicating that you are out of virtual memory and virtual memory fragmentation are not just a feature of active/active clustering; active/passive clusters and even standalone machines can suffer from virtual memory issues as well. However, you will notice virtual memory issues more frequently on clusters because standalone servers are not usually scaled to multiple thousands of users.

To troubleshoot virtual memory problems

Determine if your server is running Windows 2000 Server or Windows 2000 Advanced Server. If your server is running Windows 2000 Server, ensure that the /3GB switch is not in the boot.ini file. If your server is running Windows 2000 Advanced Server and there is more than 1GB of physical RAM installed, ensure that the /3GB switch does appear in the boot.ini file.
Note   Because Windows 2000 Server does not support the /3GB tuning switch, do not attempt to scale individual servers to host multiple thousands of users.
Check the Application log for 9582 warnings (less than 32MB virtual memory blocks available) or 9582 errors (less than 16MB virtual memory blocks available). On some large systems, it is usual to drop below the 32MB threshold during peak activity; however the available virtual memory should rise significantly during non peak activity.
Check the application log for other errors that indicate that you are out of memory (such as 12800 MIME processing errors) in addition to 9582 warnings. If the warnings are accompanied by other errors indicating that you are out of memory, users may be unable to access mail. If no other processing errors occur, and users are able to access their mail, it indicates that the 9582 warnings may be relatively harmless. However, 9582 warnings should still be investigated for possible action.
Monitor the MSExchangeIS\VM Largest Block Size counter. This counter is the best way to investigate virtual memory issues. You can monitor this counter in real time, or monitor 1-minute intervals. Collecting 18-24 hours of data to determine if a trend indicates that memory is being released. Monitor the minimum value to see what the drop is. It can be normal on large servers if this minimum value is around 55MB.
Be aware that other store-related processes, such as virus scanning, can tip the threshold. However, as long as user performance is not affected, and the virtual memory block grows again during non-peak activity, corrective action may not be necessary. However, if you expect user load to increase, you may want to reduce overall virtual memory consumption so that the server can accommodate a greater load.
To reduce virtual memory consumption, first ensure that the Exchange server is running Exchange 2000 Server Service Pack 3 (SP3); Exchange SP3 has specific virtual memory optimizations.
If 9582 warnings are still being logged, then you must perform a registry change. This registry change is acceptable as long as there is an adequate amount of RAM available on the server. Monitor the Memory\Available Bytes counter. Make sure the counter indicates more than 200MB.
Change HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\HeapDeCommitFreeBlockThreshold to equal 262144.

At this point, if you are still experiencing virtual memory issues, then you either have a heavily loaded system or memory leaks. If you suspect a memory leak, monitor the Process(Store)\Private Bytes counter to determine if it is growing over time. If you suspect the system is overloaded, you will likely also encounter other indications, such as high CPU utilization.
If the 9582 warnings have not stopped, then look at your Physical Disk\Disk Queue Length counter for the database and transaction log drives (run the diskperf –y command at the command prompt to view these counters). The disk queue length should never be consistently above the number of spindles in the array. You will see peaks, and ranges into the low hundreds are acceptable. If the disk queue lengths are up into 300 and beyond consistently, then you may have a disk bottleneck.
If you reach this point and are still encountering virtual memory issues, you must further reduce virtual memory consumption. For example, find out what the storage group and database configuration is. You can reduce this to 3 storage groups—to try to further reduce virtual memory consumption.
The Ultimate Tool Kit for Technolgy Solution Provi

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy for valuable how-to assets including sample agreements, checklists, flowcharts, and more!

krichertAuthor Commented:
ok, this is great stuff! one question on the registry change... this is an octal value field, is the value you are providing the value to type in (i.e. value =  262144, hence value = 0x00262144 (2498884)), or am i supposed to convert it so the value ends up as (262144) instead of (2498884)????
Pete LongTechnical ConsultantCommented:
hehe Dont read it to deep, I usually make that mistake LOL just enter the value as 262144


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
krichertAuthor Commented:

thanks both for the help and the levity. it appears that the change to the registry has indeed solved the problem so far... and i tested with our weekly advertisement to our clientele with an html emailing rife with graphics... as a closing comment, could you complete the circle with what causes the fragmentation? is this just a normal function of reusing the same memory chunk with varietal size docs that naturally leads to this condition, or is it from problems? thanks again!!
Pete LongTechnical ConsultantCommented:
:0) Glad I could Help

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Storage Software

From novice to tech pro — start learning today.