154 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE

156 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE The Limits property page (shown in Figure 4.13) is by far the most useful of the lot. Figure 4.13 includes the defaults I recommend for most organizations. The storage limits and deleted item retention can be overridden on a per-mailbox basis. Management of information resources is important, but storage limits need to be carefully thought out so that they provide the correct level of service for your users. An important goal of IT is to provide users with an adequate place for all the necessary data to be stored, not to prevent people from storing data. Carefully consider any limits you put in place to make sure they meet your business needs. Failing to apply limits has a cost associated with it (for example, disk usage growing unchecked), but applying limits also has a cost (for example, forcing users to delete data that they may need to do their jobs effectively). The question to ask yourself is, which cost is least costly for the entire company, not for the IT department. NOTE Limits can be applied to a single mailbox store at a time, but that becomes tedious and difficult to maintain if you have to change something. In Chapter 7, Tweaking Operations, I will discuss the use of mailbox store policies to make this easier. Figure 4.13 Mailbox store Limits property page Limits that can be configured on the Limits property page include the following: Property Description Issue warning at Issues a warning stating that the mailbox has exceeded its storage limit. Prohibit send at Prohibits MAPI clients from sending or replying to messages if the mailbox exceeds this limit. This limit is not enforced for POP3 or IMAP4 clients. POP3 and IMAP4 clients send limits must be controlled through the SMTP virtual server they use to send mail. Prohibit send and receive at Causes the mailbox to reject messages until the user removes some of their messages.

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Inexpensive Web Hosting services

154 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE

STORES: MORE STORAGE THAN YOU CAN POSSIBLY BACK UP! 155 Properties that you assign to a particular mailbox store affect all of the mailboxes that are hosted on that particular store. Properties on the General property page include the following: On the Database property page, you can specify the following configuration options: NOTE On a server that has many mailbox or public folder stores, try to stagger the online maintenance intervals of the individual stores so that they do not all occur simultaneously. The default is between 1 a.m. and 5 a.m. for all stores. But also be aware that none of the online maintenance intervals can intersect the backup of the store or any individual database. Once an online backup commences, any online maintenance that was occurring within the storage group is halted. Property Description Default public store If you have a dedicated public folder store for mailboxes that are using a particular store, don t forget to assign the default public folder store. Offline address list Assigning an offline address list if one other than the default will be used. Address lists must be created in the Recipients Offline Address Lists container. Offline address books can be assigned individually for a few users; OABs alone are not a good reason to create multiple mailbox stores. Archive all messages sent or received by mailboxes on this store This is the equivalent of the Exchange 5.5 message journaling feature, except that in Exchange 2003 this feature can be turned on or off for each mailbox store, rather than for each server as in Exchange 5.5. Clients support S/MIME signatures Specifies that this mailbox store will allow S/MIME signatures. If this check box is cleared, then the S/MIME signature is stripped from the message. This is turned on by default. Display plain-text messages in a fixedsized font Converts the font for plain-text messages to a fixed-width font. This is turned off by default. Property Description Exchange database Specifies the location of the rich-text store (EDB) database file Exchange streaming database Specifies the location of the native content (STM) database file Maintenance interval Specifies the interval during which online maintenance is performed Do not mount this store at start-up Prevents this particular store from being mounted when the information store service is started This database can be overwritten by a restore Prevents the information store from mounting the database if it detects that the store was restored from an offline restore. This setting has no effect on online restores

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Inexpensive Web Hosting services

154 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE

154 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE . You need to apply mailbox policies to different users to enforce mailbox limits and message size restrictions or to utilize message archiving. . You need special store event sinks to run for everyone in a particular mailbox store. You should be aware that creating an additional store initially requires approximately 10MB of RAM for the store to be mounted and approximately 25MB of virtual memory; as ESE DBA begins to allocate memory for caching, the memory will have to be split between all the mounted stores. Plus, Single Instance Storage is not preserved between the stores; thus, if you choose to break up the mailboxes on a server into two separate mailbox stores, plan to group the mailboxes based on which groups of people work together. NOTE Single Instance Storage is not preserved between stores. Two default stores exist on a newly installed Exchange 2003 server. For a server called SFOEX001, the mailbox store is called Mailbox Store (KILAUEA), and the database files are priv1.edb and priv1.stm. The public folder store on the same server is called Public Folder Store (KILAUEA); the database files are pub1.edb and pub1.stm. Creating a Store Creating additional stores is simple. Simply highlight a storage group that currently has fewer than five stores, right-click, and choose New Mailbox Store or New Public Store. Most of the properties of the mailbox and public stores are well documented in the online documentation, so I will just cover the important points and spare you the details that you can easily learn within the Exchange 2003 interface. When creating a mailbox store, all you have to provide is the store name. This is also referred to as the logical name, because the logical name shown in the Exchange System Manager hierarchy will not always match the actual names of the database files. Figure 4.12 shows a newly created mailbox store and the Exchange System Manager hierarchy. Figure 4.12 New mailbox store and the Exchange System Manager hierarchy

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Inexpensive Web Hosting services

CORRECTLY MANAGING STORAGE GROUPS 151 If you believe

STORES: MORE STORAGE THAN YOU CAN POSSIBLY BACK UP! 153 Also shown in Figure 4.11 are the check boxes to control whether to zero out deleted pages in the database files and whether circular logging is enabled. If Zero Out Deleted Database Pages is checked, then the information store will zero out pages that the messages occupied once they are deleted during the nightly maintenance interval. If any data remains in the page, the page will not be zeroed out; this may leave some deleted information in the page until the page has been defragmented or new data takes its place. Although this helps to ensure that even a data recovery expert cannot retrieve the data, it does add overhead to the server. Moving Storage Group Files The best way to move database files in Exchange 5.5 was to use the PerfWiz (Exchange Performance Optimizer). Moving storage group log files and the checkpoint file on Exchange 2003 is performed through the Exchange System Manager and is simple. Simply display the properties of the storage group (as shown in Figure 4.11), click the Browse button next to either the Transaction Log Location entry or the System Path Location entry, and then select a new location. However, once you click OK, all stores in the storage group will be dismounted while the files are moved. WARNING Transaction log locations and system path locations are easily moved, but all stores in the storage group are dismounted, and the users are disconnected while the files are being moved without any warning. Stores: More Storage Than You Can Possibly Back Up! Exchange 5.5 was limited to one private and one public information store, and administrators screamed for more scalability from Exchange 2000. This restriction was because if administrators let a private or public information store grow too large, the backup times could exceed a reasonable backup window, restore times could exceed the time specified by an SLA, and hosting multiple organizations on the same Exchange server was more difficult. Exchange 2000 introduced the concept of multiple mailbox stores on a single server. An Exchange 2000 or 2003 server can support up to 20 stores (four storage groups with five stores in each). These stores can be any combination of mailbox and public folder stores. NOTE If using Exchange 2003 SP2 Standard Edition, the maximum size of a store is 18GB to 75GB, and it supports only a single mailbox store; multiple public folder stores are supported using Exchange 2003 Standard Edition. Using Exchange 2003 Enterprise Edition, the maximum store size is 16TB. Servers supporting fewer than 1,000 mailboxes may not need additional stores. The following is a list of things that may indicate you need an additional store: . The server is supporting many mailboxes, and a single mailbox store is too large to be quickly backed up or restored quickly. . An SLA specifies a maximum restore time for any single mailbox restore. . You want to isolate VIP users such as managers and executives to their own, smaller mailbox stores. . The Exchange server is supporting multiple organizations, and each organization needs to have its own mailbox store. . Only certain mailboxes or folders require full-text indexing, but not all of the information in the store.

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Discount Web Hosting services

CORRECTLY MANAGING STORAGE GROUPS 151 If you believe

152 CHAPTER 4 UNDERSTANDING EXCHANGE 2003 DATA STORAGE storage groups. In other words, if you have four storage groups, you can run only one restore. If you have three storage groups, you can run two simultaneous restore operations. . A maximum of four storage groups can be created on any Exchange 2003 server. This limit is enforced because current hardware platforms cannot adequately support the RAM requirements that more than four storage groups would place on the hardware. WARNING Backing up a single store in a storage group halts online maintenance on all stores in the storage group. For most Exchange servers supporting fewer than 1,500 mailboxes, there will not be a need to create additional storage groups. You may need to create additional storage groups if the following is true: . You have five stores in the first storage group and need more. . You have a store, such as a public folder store, that requires circular logging. . You have a service-level agreement (SLA) that may require that certain mailbox data from different stores be backed up or restored simultaneously or on different schedules. . You need to create a store that will not be affected by the possible failure of another store in a storage group. NOTE Exchange 2000 and Exchange 2003 support four storage groups per server. Each storage group can have up to five stores (mailbox or public). Creating Storage Groups Any administrator with the Exchange Administrator role can create additional storage groups. Simply right-click the server name on which you want to create a new storage group, choose New Storage Group, and enter the name of the storage group. In Figure 4.11, you can see a newly created storage group called Executives and Managers SG. The System Path Location will contain the checkpoint file (in this case, E01.CHK); the System Path Location took the default path (using the default Exchange location and the full storage group name). I modified the Transaction Log Location entry to demonstrate that it is probably simpler to choose your own directory names. I find simpler directory names easier to navigate if I ever have to do a repair. Figure 4.11 A newly created storage group

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Discount Web Hosting services

CORRECTLY MANAGING STORAGE GROUPS 151 If you believe

CORRECTLY MANAGING STORAGE GROUPS 151 If you believe your server is experiencing poor performance because of disk-level fragmentation, you should perform a complete backup of the system and do one of the following: . Run the ESEUTIL utility with the /D option to defragment database files; however, if the disk is badly fragmented, this may only make the problem worse. . Move the EDB and STM files off the disk, and then move them back onto the disk. . Run the Windows Disk Defragmenter. NOTE Running ESEUTIL or moving the ESB and STM files off the disk may be partially successful only if there are other files on the disk or if the disk is badly fragmented. Correctly Managing Storage Groups Exchange 2000 or 2003 storage groups are a collection of mailbox or public stores that share a common set of transaction log files, storage group configuration properties, and an instance of the ESE database engine. The first database in a storage group that is mounted causes a new instance of ESE.DLL to be loaded. NOTE The first database mounted requires about 130MB of virtual memory. Subsequent databases mounted within the storage group require only an additional 25MB of virtual memory plus 10MB of RAM. A good practice is to fill out the first storage group with stores before creating additional storage groups. The default storage group created is called First Storage Group. It automatically contains a mailbox store and a public folder store, though either of these can be deleted if necessary. The following list outlines some of the facts surrounding the creation of additional storage groups: . Each storage group has a unique set of transaction log files. For best performance, each storage group s transaction log files should be on a separate physical hard disk. Even if circular logging is required only for a single store in the storage group, all stores in the storage group must share the same configuration. . The first database mounted in a storage group will consume approximately 130MB of additional virtual memory because it starts a separate instance of the ESE database engine. . If any store in a storage group is undergoing an online backup, online maintenance will be suspended on the other stores in the storage group. . If any database in a storage group suffers a catastrophic failure (disk failure or database corruption), the information store will dismount all stores in the storage group, mark the failed store as bad, and then remount the good stores. This can interfere with normal operations for users whose mailbox or public folder is on a good store in the same storage group. . Only one database can be backed up or restored at a time within a single storage group; this is true even if you select the entire storage group. Only a single store is backed up at a time, but you can back up different databases in different storage groups simultaneously. However, multiple backups or restores can occur across storage groups. If you are going to perform simultaneous restores, you cannot perform more than five minus the number of

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Discount Web Hosting services

ZEN AND THE ART OF PERFORMANCE MONITORING 373

ZEN AND THE ART OF PERFORMANCE MONITORING 375 If I am looking for the process that is using up most of the CPU time, then I click the CPU column and sort based on the current percentage of CPU usage. On a reasonably idle server, the System Idle Process will be entertaining the CPU most of the time. If you have looked at your own server, you may be saying to yourself, Self, what in the world is store.exe , and does it have a memory leak? In Figure 9.2, store.exe is currently occupying 595MB of RAM and peaked at 875MB. The store.exe file will generally use all of the memory it can on an Exchange server; it is a feature, not a bug. The store (and the ESE database engine) allocates as much memory for caching as possible up to a certain point. Even after running Exchange 2003 for more than two-and-a-half years, I have never seen the store.exe occupy more than 2GB of RAM. For optimum memory usage, though, make sure the BOOT.INI file is using the /3GB / USERVA=3030 switches for Windows 2003 or /3GB for Windows 2000 Advanced Server. Other processes in the Image Name list include inetinfo.exe ; this is Internet Information Services (IIS) and all of its components including web services, POP3, IMAP4, FTP, SMTP, or other services you have enabled. On a heavily used OWA or SMTP server, you can expect inetinfo.exe to easily occupy a few hundred megabytes of RAM. The mad.exe file (the Mailer Administrative Daemon) is better known as the System Attendant. The System Attendant on a busy server will often climb up to more than 100MB of RAM. Much of the rest of the processes you see in Figure 9.2 are actually processed launched by Symantec Mail Security for Microsoft Exchange and are not native Windows or Exchange 2003 processes. The final property page in the Task Manager that may prove useful when you need a quick look at current performance is Networking. The Networking property page shows the average network usage over the last few minutes. Before making any rash judgments as to the state of your server s network connection, look closely at the scale to the left. For example, the Networking property page in Figure 9.3 looks reasonably busy, but look at the scale it only peaked a few times to more than 12.5 percent usage. This particular figure shows a production server with approximately 475 active users plus my Remote Desktop Connection. Figure 9.3 Analyzing average networking usage using Task Manager

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Low Cost Web Hosting services

ZEN AND THE ART OF PERFORMANCE MONITORING 373

374 CHAPTER 9 IMPROVING PERFORMANCE Figure 9.1 Performance property page of the Task Manager The most useful items, for me at least, on the Performance property page are the memory statistics. Under the Commit Charge section, the Total statistic indicates the total amount of virtual memory that is currently committed for use. The Available statistic indicates the total amount that is actually available; this is the amount of RAM plus the current page file size. The Peak is the total amount of RAM that has been required. A sure sign that a server requires more memory is when the Peak or the Total statistics are near the Limit statistic. A sure sign of an impending problem is when the Peak statistic is near the Limit statistic and the Limit statistic is at the maximum size of the page file. The Processes property page is the other interesting place you will find fun and exciting information about a server s performance. The first step I usually take is to click the Mem Usage column heading so that I can sort by the memory usage of each service. You can see this in Figure 9.2; I have even added a couple columns (click View Select Columns to do this) for your enjoyment. I also increased the size of the Task Manager just a bit so that the additional columns would be viewable. Figure 9.2 The Task Manager Processes property page

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Low Cost Web Hosting services

ZEN AND THE ART OF PERFORMANCE MONITORING 373

ZEN AND THE ART OF PERFORMANCE MONITORING 373 . Monitor activity during typical periods of activity. The system will definitely look underused if you monitor these same resources at midnight. However, I recommend monitoring activity at midnight just to see how much of the major resources are actually being used when there is little to no activity on the server and to create an idle baseline. . Don t sweat the peaks. Look for sustained activity throughout the life of your monitoring session. Spikes in activity such as CPU and disk usage are standard and nothing to be concerned about. It is normal for a CPU to spike to 100 percent occasionally. . Establish a baseline for your system. Monitor your system when there are no active users to see how the system components such as memory, disk access, processor utilization, and network usage behave when the system is in an idle state. Then monitor your system as its load increases. Make sure to save the log files so you can look at historical data and compare it with your projected system growth and system resource requirements. . Maintain performance information over time to show growth impacts on the system and application availability. Performance Checks: Quick and Dirty If I have a performance problem on any server, the Performance console is not the first tool I fire up. One of the coolest additions to Windows NT 4 was the addition of the Windows Task Manager. You can quickly glean lot of useful information from the Task Manager, but be warned that this information is at-a-glance information and has no bearing on performance history beyond what you see on the screen. My favorite starting place is the Performance property page. Figure 9.1 shows the Performance property page from a typical Exchange 2003 server. This server has 2GB of RAM; you can discern that information from the Physical Memory s Total counter. Of this RAM, approximately 927MB of it is available to other processes, and approximately 1GB of this RAM is in use by the system cache. Monitoring Is Not a One-Time Occurrence When you begin performance monitoring of any kind, you are concerned about averages, not spikes in activity. How do you get this average? You watch your systems over long periods of time. The performance data you gather from a single morning of monitoring may not be representative of your server s true behavior. The performance data you gather over a week may not even give you a true indication of the normal behavior of server performance. Only after taking samples for weeks at a time will you be able to get a better idea of average usage. Taking a single look at an Exchange server and deciding from that single look that you have a certain type of bottleneck might yield accurate results. But then again, it may yield an incorrect solution based on incomplete information. You may spend thousands of dollars to fix a bottleneck that did not really exist in the first place. In the meantime, the real bottleneck goes on unresolved. When you begin performance monitoring, have a long-term goal in mind. Learn to use the analysis tools in a product like Microsoft Excel, or purchase a monitoring software package such as Microsoft Operations Manager ( www.microsoft.com/mom ) or NetIQ ( www.netiq.com ) that can help you to collect, store, and analyze Exchange performance data.

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Low Cost Web Hosting services

READ RECEIPT 369 Figure 8.22 Microsoft Operations Manager

372 CHAPTER 9 IMPROVING PERFORMANCE Once you have some context for overall performance monitoring, this chapter will categorize and discuss several Performance console counters that may prove useful when performing system performance analysis. The categories include counters for monitoring basic Windows performance, counters for monitoring Exchange 2003 server objects, and counters that may provide useful information about your Exchange environment but that don t relate specifically to performance. The major topics covered in this chapter include the following: . Taking a holistic approach to performance monitoring . Monitoring Windows counters . Monitoring Exchange 2003 counters . Windows and Exchange counters that indicate potential problems . Optimizing Exchange 2003 servers NOTE Microsoft has released a number of performance analysis tools that can help you to find bottlenecks and configuration problems. A summary of these can be found at http://mostlyexchange. blogspot.com/2006/02/exchange-performance-tools.html . Zen and the Art of Performance Monitoring I almost called this section of the book The Holistic Approach to Performance Monitoring ; actually, in a different version of this book I did. You would think that performance monitoring would be an exact science; either there is a performance problem or there isn t. I suppose given all of the variables that can be monitored, you could make performance monitoring an exact science, but that would involve a lot of variables. WARNING The Performance console is a prebuilt MMC in the Administrative Tools folder that includes the System Monitor ActiveX control snap-in and the Performance Logs and Alerts snap-in. When you start monitoring a server, you have to take a holistic approach. You can t look at any single component of the system and decide that component is a bottleneck you have to look at the system as a whole. Before we start discussing the basics of using the System Monitor tool or the Performance management console, here are a few issues to keep in mind: . Don t get monitoring tunnel vision! Don t monitor a specific resource and decide that resource is the bottleneck without taking a broader view of monitoring. For example, if the CPU looks overtasked, check to make sure there is sufficient memory, as well. Consider third-party products that may be impacting performance, such as antivirus applications or other products that may be leaking memory. . Make sure you know the scale that is being used when using the System Monitor chart view. Some values are percentages; naturally, the range goes from 0 to 100 percent. Other values, such as bytes free, RAM used, milliseconds, and so on, are actual measurements. Though they may be plotted on the graph from 0 to 100, a value near the top of the scale does not indicate that the resource is exhausted. This is important to consider, especially when you are monitoring values of multiple resources on a single chart. Something at the bottom of the chart may actually indicate the problem because of the scale of the actual chart, so make sure to double-check the scale every time you work with System Monitor.

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Low Cost Web Hosting services