MicroStrategy ONE
System Sizing Guidelines
The following topics describe sizing guidelines to consider when you initially set up MicroStrategy. You should periodically reevaluate the system and update it based on actual system performance and use.
This section describes only the most basic guidelines. For detailed information refer to the System Administration Help.
Number of users
The number of users can be measured in the following ways:
- Total users: Users that are registered in the system. For example, if a corporate website is available to be viewed by 950 individuals, the site has 950 total users.
- Active users: Users that are logged into the system. If a site is available to be viewed by 950 total users and 30 of them are logged in to the site, there are 30 active users.
- Concurrent users: Users that have jobs being processed by a server (MicroStrategy Web, Intelligence Server, and so on) at the same time. For example, a site is available to 950 total users, and 30 people are logged in. Of 30 active users, 10 have jobs being processed by the server simultaneously; hence there are 10 concurrent users.
Of these measures, the number of concurrent users is important to consider. Your system must support the maximum number of concurrent users you expect at any given time.
Report complexity
The more complex a report, the more Intelligence Server resources are required. In this context, a "complex" report is one that requires a lot of analytical processing. While reports with long, complicated SQL are certainly complex in nature, they do not necessarily require additional Intelligence Server resources to execute. It is the analytical processing in a report that creates additional stress on an Intelligence Server.
Since analytically complex reports create a heavier load on the Intelligence Server than simpler reports, you should have a general idea of what the average report complexity is for your system. Knowing this can help you decide on a caching strategy. For example, you may decide to pre-cache complex reports and determine the processing power your Intelligence Server needs.
The database server processes the SQL that Intelligence Server generates, so reports with extremely complex SQL can place additional stress on the database server. You should take this into account when sizing your database server machine.
Ad hoc reports versus caches
Report caches store the results of previously executed reports. If a client (MicroStrategy Web, Developer, and so on) requests a report that is cached, Intelligence Server returns the cached report results to the client. For any ad hoc reports that are not cached, Intelligence Server must go through the entire report execution cycle before it can return the results. For this reason, report caching allows better response time while minimizing the load on the Intelligence Server.
The benefits of caching are more apparent for complex reports than for simple reports. While caching a complex report may significantly improve execution time, a report cache for a simple report may not make much difference in this regard.
Therefore, the more complex the ad hoc reporting is in your system, the greater the overall load on the Intelligence Server. Be sure to take this into account when sizing your Intelligence Server machine.
The process for element browsing is similar to ad hoc reporting. Element browsing takes place when you navigate through hierarchies of attribute elements, for example, viewing the list of months in the year attribute. By default, caching is enabled for element browsing. In addition, you can limit the number of elements to be retrieved at a time.
Report Services document
Report Services documents utilize MicroStrategy objects to run complex and sophisticated reports. The datasets available to a document determine its content. Each dataset represents a report and its component objects, such as attributes, metrics, custom groups, and consolidations. When a dataset is available to a document, the entire report or any component object from that dataset can be included in the document output.
When creating a document, refer to the following guidelines to avoid an increase in the Intelligence Server execution time and the overall CPU usage:
- The datasets should be few in number, but large in size.
- The number of grids in the output document should be less in number. Consolidate the data to fit into fewer grids in the output document, where possible.
- Use of complex elements, such as consolidations, custom groups, and smart metrics can increase the Intelligence Server usage, especially if arithmetic operators are used in element definitions.
- Use Custom formatting only when required.
OLAP Services
OLAP Services store reports as Intelligent Cubes in the physical memory of the Intelligence Server. When these Intelligent Cubes are cached in memory, report manipulations, such as adding derived metrics and derived elements, formatting, and drilling within the Intelligent Cube, take considerably less time. This is the case because the new SQL is not run against the database.
OLAP Services provide enhanced report manipulation functionality at the cost of Intelligence Server resources, as the cubes are stored in the memory of the Intelligence Server. Consider the following factors to determine the size of the Intelligent Cubes:
- Intelligence Server resources
- Expected response time
- User concurrency
You must monitor Intelligence Server CPU utilization and memory usage closely as OLAP Services might have an impact on the performance of the platform, particularly the memory and report response time. For information on OLAP Services, see the In-memory Analytics Help. Additional performance tuning best practices for OLAP Services are provided in the System Administration Help.
Additional considerations
Numerous factors can affect system performance, most of them related to system specifics, which makes them difficult to predict. Listed below are items you should consider when determining the requirements for your system:
- Developer versus MicroStrategy Web usage—MicroStrategy products are designed with the assumption that the majority of users access the system through MicroStrategy Web while a smaller percentage use the Developer products.
- Statistics logging—Statistics logging is very useful for analyzing and further refining the system configuration based on actual usage. However, logging all statistics all the time can create a noticeable increase in system response time. For this reason, you might choose to log only a subset of the statistics generated or only log statistics periodically.
- Backup frequency—Caches can be stored in memory and on disk. When you enable backup, you allow the Intelligence Server to write all cache files to disk. If the backup frequency is set to the default of zero, backup files are written to disk as soon as they are created. However, writing all cache files to disk all the time can cause a noticeable reduction in system performance.
Set the backup frequency to a value that minimizes disk writes and optimizes memory usage for your system.
- Ratio of MicroStrategy Web servers to Intelligence Servers—In a typical system you should have a 1:1 ratio of Intelligence Servers to MicroStrategy Web servers. This ensures that resources on both sides are optimized. However, you might find it useful to add Intelligence Servers or MicroStrategy Web servers depending on your particular requirements.
- Report Styles—MicroStrategy Web provides a set of different XSL report styles. These styles provide an easy way for you to customize how reports look. Due to the varying complexity of these styles, some might require more processing than others.
MicroStrategy Professional Services for high performance
MicroStrategy Professional Services has identified five primary levers customers can use to get dramatically faster performance:
- Employ in-memory Business Intelligence
- Design high performance dashboards
- Optimize query efficiency
- Implement effective caching strategies
- Configure MicroStrategy for high performance
In just one week, MicroStrategy Professional Services, will conduct a thorough examination of your Business Intelligence implementation, providing you with actionable recommendations on these five key areas to improve overall performance. The MicroStrategy Performance Analysis service delivers:
- Performance optimization roadmap: A customized report with prioritized recommendations to achieve performance goals.
- System configuration: Optimum configuration setting recommendations to achieve efficient use of resources across different MicroStrategy products.
- Performance monitoring plan: A set of performance related metrics to proactively monitor and identify performance opportunities.
To learn how MicroStrategy Professional Services can help you assess and prioritize your performance opportunities with a Performance Analysis, see MicroStrategy Services.
Common questions about sizing
The sections below provide brief explanations to common sizing questions. For detailed information on tuning your MicroStrategy environment, see the Tuning your System for Best Performance chapter in the System Administration Help. The sections below also provide other additional resources.
Why should I increase the processor speed of Intelligence Server?
Increasing the processor speed of Intelligence Server enhances performance and reduces execution time for all analytical tasks and for requests from the Extensible Markup Language (XML) and Component Object Model (COM) application programming interfaces (APIs). If you see that the machine or machines are running consistently at a high capacity, for example, greater than 80%, it may be a sign that a faster processor would improve the system's capacity.
For more detailed information on tuning your processors for your MicroStrategy environment, see the section Managing system resources in the System Administration Help.
Why should I add more processors to Intelligence Server?
Adding more processors to the Intelligence Server allows for a better load distribution among the processors. This provides an overall performance gain. If you notice that the processor is running consistently at a high capacity, for example, greater than 80%, consider increasing the number of processors.
For more detailed information on tuning your processors for your MicroStrategy environment, see the section Managing system resources in the System Administration Help.
Why should I increase memory on the machine that hosts Intelligence Server?
If the physical disk is utilized too much on a machine hosting Intelligence Server, it can indicate that there is a bottleneck in the system's performance. To monitor this on a Windows machine, use the Windows Performance Monitor for the object PhysicalDisk and the counter % Disk Time. If you see that the counter is greater than 80% on average, it may indicate that there is not enough memory on the machine.
For more detailed information on tuning your machine's memory for your MicroStrategy environment, see the section Managing system resources in the System Administration Help.
What would more network bandwidth do for me?
You can tell whether your network is negatively impacting your system's performance by monitoring how much of your network's capacity is being used. To monitor this on a Windows machine, use the Windows Performance Monitor for the object Network Interface, and the watch the counter Total bytes/sec as a percent of your network's bandwidth. If it is consistently greater than 60% (for example), it may indicate that the network is negatively affecting the system's performance.
For very large result sets, increasing network bandwidth reduces bottlenecks created by network congestion. The result is larger data flow and faster query response time.
For more detailed information on tuning your network for your MicroStrategy environment, see the section How the network can affect performance in the System Administration Help.
How many CPUs can a user fully utilize?
One user can fully utilize up to one CPU, regardless of the number of CPUs available in the server. The load is split across multiple CPUs in multi-processor servers.
For more detailed information on how licensing can affect the utilization of CPUs, see the System Administration Help.
What is the advantage of using hyper-threading for a dual processor?
The advantage of using hyper-threading with a dual processor is that it decreases the overall CPU usage. The use of hyper-threading is recommended if you have a large number of users.
What is the disadvantage of using hyper-threading for a dual processor?
The disadvantage of using hyper-threading is that it increases the Intelligence Server execution time slightly. Therefore, for faster processing, the use of hyper-threading is not recommended.
What is the largest Intelligent Cube size that I can store in an Intelligence Server?
Intelligent Cubes must be stored in Intelligence Server memory for reports to access their data. While this can improve performance of these reports, loading too much data onto Intelligence Server memory can have a negative impact on Intelligence Server's ability to process jobs. For this reason, it is important to govern how much Intelligent Cube data can be stored on the Intelligence Server.
For information on governing Intelligent Cube memory usage, loading, and storage, see the System Administration Help.