Having performance-related issues can feel like a daunting task to troubleshoot, since there are many different parts that work together to make your intranet run. This article is designed to help you check some common causes for performance-related concerns off your checklist.
Be sure to confirm that your server has adequate specs based on our Software Requirements article.
Low resource limits on a server is a common cause of performance related issues. Using tools such as Resource Monitor or even the Task Manager will help you analyze how heavily the resources are currently being used on the server. While experiencing performance issues that are related to the resources, generally while monitoring the resources you'll see a constant 'peak' of usage. There are multiple factors for what causes this peak, but the most common are:
- Lucee/Railo memory settings
- Elastic Search memory settings
- Available server resources
The determination of whether the causes above are resulting in performance issues can be done using the same tools for monitoring performance. Looking at the individual processes and how much memory they're using can indicate if the cause is Lucee/Railo or Elastic Search; the process names for these are tomcat8.exe and elasticsearch-service-x64. If Lucee/Railo or Elastic Search are causing performance issues generally the process will be using a constant amount of memory. For example if you see that the tomcat8.exe process is consistently sitting at 2GB of memory usage this is an indication that the memory settings need to be increased for Lucee/Railo. You can learn how to adjust the Lucee/Railo settings by checking out Memory Settings in the Railo/Lucee Configuration article, to learn how to adjust the Elastic Search memory you can check out the Elastic Search Memory Settings article.
Refer to the following image to locate in the Task Manager to see how much usage these 2 services are currently using:
The last item mentioned above is available server resources; by this we mean the overall resources available. This issue is the easiest to determine when monitoring the resource usage if the server is consistently using near 100% of the available resources, then the overall resources available should be increased. Depending on how the server is configured this process can be as easy as adjusting the settings for a virtual machine or it could be acquiring more resources for a physical server.
Our Software Requirements article includes minimum requirements, as well as recommended requirements around CPU. At minimum, it's recommended to have at least a single quad core CPU.
It's also recommended that for this minimum configuration, that you use 1 socket for all 4 processors as we have seen issues where this can cause problems with other customer environments:
The following table outlines the approximate memory usage for the different components of the intranet, which can help when analyzing the server's current memory usage.
|Service Name||Process Name||Description||RAM|
|World Wide Web Publishing||w3wp.exe||Used to serve .cfm pages to the user.||~ 1 GB|
|Lucee||tomcat8.exe||Lucee is the engine that turns program logic into .cfm content for IIS.||2 - 6 GB|
|Elasticsearch||elasticsearch-service-x64||The search engine. It adds documents to the index and returns metadata to provide search details in the Intranet global search.||2 - 6 GB|
|SQBoxTaskManager||SQBoxServices.exe||This schedules and kicks off the Insights databridge to process statistics for the Intranet.||500 MB - 1 GB|
|SQL Server||(On SQL or web server) sqlservr.exe||Runs the queries to update or pull information about the Intranet.||500 MB - 2 GB|
|SQL Server Browser||(On SQL or web server) sqlbrowser.exe||Provides SQL Server connection information to the web server (for datasource connectivity).||Minimal|
SQL Server can cause performance issues as it begins using more resources. While the resources used by SQL itself may not seem overly high, when combined with the other services it can cause the resource limits of the web server to be hit. To alleviate the strain on the web server the SQL Server can be separated to a separate database server. This process will lower the overall resources used on the web server and can allow for other process such as Lucee/Railo to use more resources. To learn how to move the SQL Server you can check out the Move SQL Database to New Server article.
External content can result in longer page load times. This occurs because before the page is completely loaded a request needs to be made to the external resource to pull in the data. As more external content is added to the site the amount of time the page takes to load will increase.
In cases where the external content is only added to a single page it would only affect the load time of that one page. We've also seen cases where the left menu has been loaded with multiple widgets that pull in external content. As the left menu is displayed on all pages of the site this can result in larger load times for all pages across the site.
Network speeds of both the server and client can have an impact on the overall load time of the site. Network-related issues can generally be determined by testing on different machines and testing the load time directly from the server where there's not a network limitation.
Additionally, keeping up to date with new versions and patches for the intranet can result in better performance.