- Posts: 176
- Thank you received: 0
Limiting Exchange 2010 Database Cache
- JudgeFredd
- Topic Author
- Offline
- Administrator
Less
More
9 months 3 weeks ago #139
by JudgeFredd
Limiting Exchange 2010 Database Cache was created by JudgeFredd
OBS!! DU SKAL INDSTILLE MIN. STR. HVIS DET ER EXCHANGE 2010 PS1, gør det uanset for en sikkerheds skyld..
MERE OBS! Når du forbinder første gang, skal opsætningen være som følger:
Select a well known naming context=Configuration
Select or type a domain name or server= "vælg servernavnet"
For exchange på SBS2011, hvis man ønsker en grænse på ca. 2GB, skal indstillinger være som følger:
cachesizemax 131072
cachesizemin 65536
Sådan er det sat op på KB's Server.
KØR: ADSIEDIT.msc
Link til løsning:
eightwone.com/2010/03/25/limiting-exchange-2010-database-cache/
LØSNING:
Limiting Exchange 2010 Database Cache17 Comments
Note (6apr2011): Setting the MsExchESEParamCacheSizeMax only doesn’t produce the required result as of Exchange 2010 SP1. For more information on how to limit the database cache size in Exchange 2010 SP1, see Limiting Exchange 2010 SP1 Database Cache.
I received a question from someone implementing Exchange 2010 who was surprised to see Exchange taking up all available memory. This is because in Exchange 2010 (2007 as well) memory allocation is dynamic, contrary to Exchange 2003 and earlier versions where, depending on the situation, you had to fiddle around with boot.ini switches like /3GB to make memory available to Exchange. Also, the maximum database cache size was limited in Exchange 2003 to around 1.2 GB due to virtual address space limitations (seeMSKB 815372).
The main reason Exchange 2007/2010 claims memory for its database cache is performance. The more memory is assigned to the database cache, the less I/O’s are generated because things can be dealt with in-memory and the database cache becomes more effective. When a certain amount of transactions has been reached, changes will be physically written to databases (so far they’ve been stored in-memory and written to transaction logs). This limit is called the log checkpoint depth target.
Since Exchange 2003, the log checkpoint depth target is 20 MB databases. As of Exchange 2007, for configurations existing of 2+ database copies, the depth target is 100 MB for active copies and 5 MB for passive copies. This means, after 100 MB of transactions changes will be physically flushed to the database. The more changes are delayed (i.e. stored in-memory and in transaction logs), the chance of overlapping changes or combined writes increases lessening I/O’s required. Note that to lessen the time to fail-over, passive copies have a lower depth target making them commit changes more often, minimizing the log files to replay after a fail-over.
Back to the topic, Database Cache. Exchange uses by default certain mailbox database cache sizes for certain amounts of memory. The table below contains these values for systems holding the mailbox server role as well as servers holding multiple roles (source):RAM Physical MemoryDatabase Cache Size, Mailbox RoleDatabase Cache Size, Multiple Roles2 GB512 MBUnsupported4 GB1 GBUnsupported8 GB3.6 GB2 GB16 GB10.4 GB8 GB32 GB24.4 GB20 GB64 GB53.6 GB44 GB128 GB111.2 GB92 GB
Now what if you have a real uncontrollable urge to limit Exchange in its attempt to optimize its database cache and you want to restrict its growth? You can do this by changing the following Active Directory property (per store) using ADSIEDIT.msc (or using another tool or scripting language of your liking) as follows:
Start ADSIEDIT.mscNavigate to Configuration > Services > Microsoft Exchange > <Organization Name> > Administrative Groups > <Administrative Group> > Servers > <Server Name> > InformationStoreRight-click InformationStore, (OG vælg Properties) and edit msExchESEParamCacheSizeMax. Set it it to the number of pages to maximize the Database Cache to. Note that Exchange 2007 works with 8 KB pages and Exchange 2010 with 32 KB pages!Restart the Microsoft Exchange Information Store service for the change to become effective.
So, for instance, if you want to limit the Database Cache to 4 GB of an Exchange 2010 server, set msExchESEparamCacheSizeMax to 131072 (4 GB = 4.194.304 KB / 32 KB). If you want to limit the Database Cache to 2 GB of an Exchange 2007 server, set msExchESEparamCacheSizeMax to 262144 (2 GB = 2.097.152 KB / 8 KB).
Note that lowering these values may degrade performance, in terms of server performance as well as in terms of end-user experience. However, smaller organizations with a limited number of mailbox users may benefit because they don’t let Exchange claim significant amounts of memory which it will never use.
MERE OBS! Når du forbinder første gang, skal opsætningen være som følger:
Select a well known naming context=Configuration
Select or type a domain name or server= "vælg servernavnet"
For exchange på SBS2011, hvis man ønsker en grænse på ca. 2GB, skal indstillinger være som følger:
cachesizemax 131072
cachesizemin 65536
Sådan er det sat op på KB's Server.
KØR: ADSIEDIT.msc
Link til løsning:
eightwone.com/2010/03/25/limiting-exchange-2010-database-cache/
LØSNING:
Limiting Exchange 2010 Database Cache17 Comments
Note (6apr2011): Setting the MsExchESEParamCacheSizeMax only doesn’t produce the required result as of Exchange 2010 SP1. For more information on how to limit the database cache size in Exchange 2010 SP1, see Limiting Exchange 2010 SP1 Database Cache.
I received a question from someone implementing Exchange 2010 who was surprised to see Exchange taking up all available memory. This is because in Exchange 2010 (2007 as well) memory allocation is dynamic, contrary to Exchange 2003 and earlier versions where, depending on the situation, you had to fiddle around with boot.ini switches like /3GB to make memory available to Exchange. Also, the maximum database cache size was limited in Exchange 2003 to around 1.2 GB due to virtual address space limitations (seeMSKB 815372).
The main reason Exchange 2007/2010 claims memory for its database cache is performance. The more memory is assigned to the database cache, the less I/O’s are generated because things can be dealt with in-memory and the database cache becomes more effective. When a certain amount of transactions has been reached, changes will be physically written to databases (so far they’ve been stored in-memory and written to transaction logs). This limit is called the log checkpoint depth target.
Since Exchange 2003, the log checkpoint depth target is 20 MB databases. As of Exchange 2007, for configurations existing of 2+ database copies, the depth target is 100 MB for active copies and 5 MB for passive copies. This means, after 100 MB of transactions changes will be physically flushed to the database. The more changes are delayed (i.e. stored in-memory and in transaction logs), the chance of overlapping changes or combined writes increases lessening I/O’s required. Note that to lessen the time to fail-over, passive copies have a lower depth target making them commit changes more often, minimizing the log files to replay after a fail-over.
Back to the topic, Database Cache. Exchange uses by default certain mailbox database cache sizes for certain amounts of memory. The table below contains these values for systems holding the mailbox server role as well as servers holding multiple roles (source):RAM Physical MemoryDatabase Cache Size, Mailbox RoleDatabase Cache Size, Multiple Roles2 GB512 MBUnsupported4 GB1 GBUnsupported8 GB3.6 GB2 GB16 GB10.4 GB8 GB32 GB24.4 GB20 GB64 GB53.6 GB44 GB128 GB111.2 GB92 GB
Now what if you have a real uncontrollable urge to limit Exchange in its attempt to optimize its database cache and you want to restrict its growth? You can do this by changing the following Active Directory property (per store) using ADSIEDIT.msc (or using another tool or scripting language of your liking) as follows:
Start ADSIEDIT.mscNavigate to Configuration > Services > Microsoft Exchange > <Organization Name> > Administrative Groups > <Administrative Group> > Servers > <Server Name> > InformationStoreRight-click InformationStore, (OG vælg Properties) and edit msExchESEParamCacheSizeMax. Set it it to the number of pages to maximize the Database Cache to. Note that Exchange 2007 works with 8 KB pages and Exchange 2010 with 32 KB pages!Restart the Microsoft Exchange Information Store service for the change to become effective.
So, for instance, if you want to limit the Database Cache to 4 GB of an Exchange 2010 server, set msExchESEparamCacheSizeMax to 131072 (4 GB = 4.194.304 KB / 32 KB). If you want to limit the Database Cache to 2 GB of an Exchange 2007 server, set msExchESEparamCacheSizeMax to 262144 (2 GB = 2.097.152 KB / 8 KB).
Note that lowering these values may degrade performance, in terms of server performance as well as in terms of end-user experience. However, smaller organizations with a limited number of mailbox users may benefit because they don’t let Exchange claim significant amounts of memory which it will never use.
Please Log in to join the conversation.
Time to create page: 0.473 seconds