Chapter 9 [ 355 ] CALCCACHELOW 50000000 : ; Sets up the analytic server to use multiple threading during ; data loads DLSINGLETHREADPERSTAGE FALSE DLTHREADSPREPARE 2 DLTHREADSWRITE 2 ; ; +++++++++++++++++++++++++++++++++++++++++++++ Conguration categories As you can see, making entries into the essbase.cfg le is a relatively easy task. However, making good entries is where your Essbase knowledge and experience pays off. The following is a listing of the conguration categories and their general usefulness: • Ports and connections: Most of these settings are obviously to help your Analytic Server manage itself on the network and with other components. • Logging and error handling: These settings help Essbase determine things like the level of detail in an output log or the maximum number of lines written during a process. • Calculation: The calculation settings category has many settings that help with system performance, mainly during calculation execution. • Hybrid analysis: These settings do more for the conguration of Essbase's interaction between itself and a backend relational database. This type of data querying is known as hybrid analysis. • Query management: These settings help with the special needs of installations that make use of partitioned databases and heavy hybrid analysis methods. There is not a lot here for overall system performance. • Memory management: Now, here is a good category! We like this one so much that we have given it its own separate section in this chapter. A denite positive impact on system performance can be gleaned from these settings. • Data import/export: Like the category name indicates, you can help improve the overall performance of your data loading and data exporting processes. • Miscellaneous: While some of these settings will end up being necessary for your own installation, there really isn't any performance enhancing settings in the miscellaneous category. This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423 Download at Boykma.Com Advanced Techniques [ 356 ] Conguration settings to consider Here are a few essbase.cfg le settings you should consider using when rst having concerns about system performance. Always remember, you can add a new statement to the essbase.cfg le at any time by simply opening it in any text editor. After you have added or removed the necessary statement, you save and close the le. The new settings will take effect the next time the Essbase service is started or restarted on the server. Ports and connections In this section, we will talk about the server agent threads, net delays, and agent delays. These settings, added to the Essbase server conguration le, can help improve the performance of your system as well as to help improve the network connectivity: • AGENTTHREADS: Species how many threads the server may spawn for connections. If you have a low number of paid licenses, you would set this setting a little higher than average. The default is ve for maximum performance. • AGENTDELAY: The higher you set this setting the longer the Essbase service will wait to process requests from connections. Obviously, the higher the AGENTTHREADS setting, the higher you should set this setting. • AGTSVRCONNECTIONS: Species the maximum number of concurrent connections to the analytic server. A lower number usually means faster system response time. • NETDELAY: Species the delay in milliseconds, of how long the analytic server will wait between retries on failed network requests. • NETRETRYCOUNT: Species the number of times the analytic server will retry a failed network request. Logging and error handling In this section, we will talk about how you can set the limits for data load errors as well as the level of detail captured in the output error messages. • DATAERRORLIMIT: Species the maximum number of rows written to the log for individual processes. The default is 1,000 and the maximum is 65,000. Your experience will help you decide how much information you need in the log. This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423 Download at Boykma.Com Chapter 9 [ 357 ] • AGENTLOGMESSAGELEVEL: Species to Essbase what level of detail is to be written to system logs. The more knowledgeable you become, the less information you will require to monitor your system, thereby keeping the logs smaller and improving system performance. Calculation Here we will talk about the settings that will best help improve the run-time and overall performance of your Essbase calculation scripts. • CALCCACHE: Tells the analytic server whether to use a calculator cache. When set to true, you can also set the CALCCACHELOW, CALCCACHEDEFAULT, and CALCCACHEHIGH settings that can be used in any database calculation scripts. • CALCLOCKBLOCK: Species how many data blocks Essbase will lock at one time during a calculation. There are mixed feelings on the setting because a higher number of locked blocks seems like it would nish faster, but does more and smaller chunks actually nish quicker? This is where testing and experience come into play. • DYNCALCCACHEONLY: Species to the analytic server if Essbase can use memory outside of the dynamic calc memory to complete its tasks. This may not be a good idea because Essbase may tend to wait if allowed for more memory causing the process to actually slow down. • CALCPARALLEL: This species how many parallel threads are allowed at one time while calculating the data. Essbase recommends that the maximum number of parallel threads be one less than the total number of processors on your server. For example, if your server has 8 processors you would code 7 as your maximum number of threads to use. ° For 32 bit: Block storage option, you can select between 1 to 4 ° For 64 bit: Block storage option, you can select between 1 to 8 ° For Aggregate Storage option, you can select in between 1 to 8 with 2 being the default. Syntax: CALCPARALLEL [APPNAME] [DBNAME] N • EXCLUSIVECALC: This species if concurrent calculations are allowed on the same database. Syntax: EXCLUSIVECALC TRUE | FALSE This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423 Download at Boykma.Com Advanced Techniques [ 358 ] • UPDATECALC: This species if intelligent calc is turned on or off by default. Syntax: UPDATECALC TRUE | FALSE Data import/export In this section we will walk through the settings you can use to improve the system's performance while loading data into your cube or while extracting data from your cube. • DLSINGLETHREADPERSTAGE: This setting tells Essbase to use Single Thread or use the number of threads specied in the DLTHREADSPREPARE and DLTHREADSWRITE. This can be set for an individual application or for the entire analytic server. Syntax: DLSINGLETHREADPERSTAGE [APPNAME] [DBNAME] TRUE | FALSE • DLTHREADSPREPARE: This setting tells Essbase how many threads to prepare to use for a data load. This is a denite performance enhancer and it is recommended you specify a number that is one less than the total number of processors on your server. Syntax: DLTHREADSPREPARE n • DLTHREADSWRITE: This setting is used with the DLTHREADSPREPARE setting and species the number of threads to actually use during a data load. Again, the number should be one less than the number of processors on your server. Syntax: DLTHREADSWRITE n Code Sample: DLSINGLETHREADPERSTAGE ESSCAR ESSCAR TRUE DLTHREADSPREPARE 2 DLTHREADSWRITE 3 In the above example, DLSINGLETHREADPERSTAGE is set to TRUE, so this tells the Essbase server to use a single thread for the Esscar application for data loading and the DLTHREADPREPARE and DLTHREADSWRITE will not used. DLSINGLETHREADPERSTAGE ESSCAR ESSCAR FALSE DLTHREADSPREPARE 2 DLTHREADSWRITE 3 This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423 Download at Boykma.Com Chapter 9 [ 359 ] In the above example, DLSINGLETHREADPERSTAGE is set to FALSE, so this tells the Essbase server not to use single threaded data loading on the Esscar application and the DLTHREADPREPARE and DLTHREADSWRITE settings are used. These settings will improve the performance of the Essbase data loads. Well, there you have it. What was going to be a little bit about the essbase.cfg le has turned into quite a long-winded affair. That's okay, because there is a lot to know, and a lot that can have a positive effect on your operations. Memory management Oh look, here is more information that could be in the essbase.cfg section. Yes, that is true, but memory management is probably the most important task you can perform to keep your Essbase system running smoothly and efciently. It's no secret that everything in life is a give and take. With Essbase, it gives you unparalleled capacity for slicing and dicing large amounts of data, all the while performing real time calculations on the y. What Essbase takes for this is unbelievably large amounts of memory to deliver this functionality with anywhere near acceptable response times. Before we talk about some of the essbase.cfg settings you can use to help control your system's memory usage we want to discuss a few other things you can do: 1. Make sure all of your applications and databases are set to only start when there is a request for data and not when the analytic service starts. For every started database, Essbase will reserve the memory necessary for that database and there will be that much less memory available for the rest of the system. 2. Create a small job that will run periodically and stop applications and databases that are not actively in use, because in Essbase, once the application or database is started, the only thing that stops it is a server shutdown, the administrator, or by a command from a script or job. 3. Monitor and adjust all caches and buffer settings, since they all use memory. 4. Make judicious use of the config.mem le located in the ArborPath\Bin folder. This le allows you to set a maximum amount of memory to be used by either specic applications or by all applications on the server. If an application uses its maximum allotment of memory, it will either shutdown or slow way down and attempt to process with what it has. This is a very important setting because you do not want one application sucking all of the memory out of the system and halting the other databases and their processes. This material is copyright and is licensed for the sole use by Paul Corcorran on 5th July 2009 8601 ave. p #1, , lubbock, , 79423 Download at Boykma.Com . Corcorran on 5th July 20 09 8601 ave. p #1, , lubbock, , 794 23 Download at Boykma.Com Chapter 9 [ 3 59 ] In the above example, DLSINGLETHREADPERSTAGE is set to FALSE, so this tells the Essbase server not. sole use by Paul Corcorran on 5th July 20 09 8601 ave. p #1, , lubbock, , 794 23 Download at Boykma.Com Chapter 9 [ 357 ] • AGENTLOGMESSAGELEVEL: Species to Essbase what level of detail is to be. Paul Corcorran on 5th July 20 09 8601 ave. p #1, , lubbock, , 794 23 Download at Boykma.Com Advanced Techniques [ 356 ] Conguration settings to consider Here are a few essbase. cfg le settings you