• 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.. These sett
Trang 1CALCCACHELOW 50000000
:
; Sets up the analytic server to use multiple threading during
; data loads
DLSINGLETHREADPERSTAGE FALSE
DLTHREADSPREPARE 2
DLTHREADSWRITE 2
;
; +++++++++++++++++++++++++++++++++++++++++++++
Configuration categories
As you can see, making entries into the essbase.cfg file 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 configuration 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 configuration 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 definite 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
Trang 2Configuration settings to consider
Here are a few essbase.cfg file settings you should consider using when first
having concerns about system performance
Always remember, you can add a new statement to the essbase.cfg file 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 file
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 configuration file,
can help improve the performance of your system as well as to help improve
the network connectivity:
• AGENTTHREADS: Specifies 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 five 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: Specifies the maximum number of concurrent
connections to the analytic server A lower number usually means faster
system response time
• NETDELAY: Specifies the delay in milliseconds, of how long the analytic
server will wait between retries on failed network requests
• NETRETRYCOUNT: Specifies 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: Specifies 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
Trang 3• AGENTLOGMESSAGELEVEL: Specifies 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: Specifies 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 finish faster, but does more and smaller chunks actually finish quicker? This is where testing and
experience come into play
• DYNCALCCACHEONLY: Specifies 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 specifies 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 specifies if concurrent calculations are allowed on
the same database
Syntax:
EXCLUSIVECALC TRUE | FALSE
Trang 4• UPDATECALC: This specifies 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 specified 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 definite 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 specifies 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
Trang 5In 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
file 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 efficiently
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 fly 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 file located in the ArborPath\Bin
folder This file allows you to set a maximum amount of memory to be used by either specific 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