<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

  <atom:link href="https://community.pyramidanalytics.com/rss/category/performance" rel="self" type="application/rss+xml"/>
  <title>Pyramid Analytics User Community&#32;Performance</title>
  <link>https://community.pyramidanalytics.com/category/performance/</link>
  <description></description>
  <language>en-us</language>
<ttl>240</ttl>
  <item>
          <title>Handling 504 and 502 Errors in Pyramid</title>
          <link>https://community.pyramidanalytics.com/t/83yf3cl/handling-504-and-502-errors-in-pyramid</link>
          <description><![CDATA[<p>If you're encountering 504 or 502 error messages, the issue is likely related to the reverse proxy or load balancer sitting in front of Pyramid. These errors often occur due to timeouts that are set too low. To prevent such issues, it's recommended to increase the timeout values on your reverse proxy and load balancer to at least <strong>10 minutes</strong>.</p>
<h3>Increasing Timeout Settings in Nginx Reverse Proxy</h3>
<p>If you're using <strong>Nginx</strong> as a reverse proxy, follow these steps to increase the timeout settings:</p>
<ol>
 <li><p>Open your <strong>nginx.conf</strong> file, typically located in <strong>/etc/nginx/nginx.conf</strong> or inside your site's configuration file under <strong>/etc/nginx/sites-available/</strong>.</p></li>
 <li><p>Locate or add the following directives inside the <strong>server</strong> or <strong>location</strong> block:</p> <pre class="language-none"><code class="language-none">proxy_connect_timeout&nbsp;600s;
proxy_send_timeout&nbsp;600s;
proxy_read_timeout&nbsp;600s;
send_timeout&nbsp;600s;</code></pre></li>
 <li><p>Save the file and restart Nginx to apply the changes:</p> <pre class="language-none"><code class="language-none">sudo&nbsp;systemctl&nbsp;restart&nbsp;nginx</code></pre></li>
</ol>
<p>This increases the timeout settings to 10 minutes (600 seconds), reducing the chances of timeout-related 502 and 504 errors.</p>
<h3>Increasing Timeout Settings in IIS</h3>
<p>If you are using <strong>IIS</strong>, follow these steps to increase the timeout:</p>
<ol>
 <li><p>Open <strong>IIS Manager</strong> on the Pyramid web servers.</p></li>
 <li><p>Double-click on <strong>Application Request Router Cache</strong>.</p></li>
 <li><p>Click on <strong>Server Proxy Settings</strong>.</p></li>
 <li><p>Locate the timeout settings and <strong>double</strong> the current value (or increase it to at least 10 minutes).</p></li>
 <li><p>Click <strong>Apply</strong> to save the changes.</p></li>
</ol>
<h3><strong>Increasing Timeout Settings for an AWS Load balancer</strong></h3>
<p>🔗 <strong>For the most up-to-date information on AWS ALB settings, visit:</strong><br> 👉 <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/" rel="nofollow noopener noreferrer" target="_blank">AWS ALB Documentation</a><br> 👉 <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html" rel="nofollow noopener noreferrer" target="_blank">AWS Health Checks</a></p>
<h4><strong>1. Increase ALB Idle Timeout</strong></h4>
<ul>
 <li><strong>Default:</strong> 60 seconds</li>
 <li><strong>Recommended:</strong> Increase to <strong>600 seconds</strong></li>
</ul>
<p><strong>Steps:</strong></p>
<ol>
 <li>Go to <strong>EC2 Dashboard</strong> → <strong>Load Balancers</strong></li>
 <li>Select your <strong>Application Load Balancer (ALB)</strong></li>
 <li>Go to the <strong>Attributes</strong> tab</li>
 <li>Click <strong>Edit</strong></li>
 <li>Set <strong>Idle timeout</strong> to <strong>600</strong> seconds</li>
 <li>Click <strong>Save</strong></li>
</ol>
<hr>
<h4><strong>2. Adjust Target Group Health Check Settings</strong></h4>
<ul>
 <li><strong>Increase timeout &amp; interval to prevent premature failures</strong></li>
</ul>
<p><strong>Steps:</strong></p>
<ol>
 <li>Go to <strong>EC2 Dashboard</strong> → <strong>Target Groups</strong></li>
 <li>Select your <strong>Target Group</strong></li>
 <li>Go to the <strong>Health Checks</strong> tab → Click <strong>Edit</strong></li>
 <li><strong>Set:</strong>
  <ul>
   <li><strong>Timeout:</strong> <strong>10 seconds</strong></li>
   <li><strong>Interval:</strong> <strong>30 seconds</strong></li>
   <li><strong>Unhealthy threshold:</strong> <strong>5</strong></li>
   <li><strong>Healthy threshold:</strong> <strong>3</strong></li>
  </ul></li>
 <li>Click <strong>Save</strong></li>
</ol>
<h3>Other Web Servers and Load Balancers</h3>
<p>If you are using any other third-party web server or load balancer, please refer to its documentation on how to increase its timeouts.</p>
<p>By increasing these timeout settings, you can ensure that your Pyramid application remains stable and minimizes 504/502 errors caused by timeouts.</p>]]></description>
          <pubDate>Thu, 06 Mar 2025 09:09:59 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/83yf3cl/handling-504-and-502-errors-in-pyramid</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>What to check went schedules/prints are not running</title>
          <link>https://community.pyramidanalytics.com/t/x2h1rbv/what-to-check-when-schedules-prints-are-not-running</link>
          <description><![CDATA[<p><span class="pen4"><strong style="">Issue:</strong></span></p>
<p>Pyramid stops running tasks such as models/prints or provisioning users.</p>
<p>&nbsp;</p>
<p><span class="pen4"><strong>Steps to mitigate the problem:</strong></span></p>
<p>The first thing to check is the Pyramid summaries panel.</p>
<p>Once on the page, in the bottom right corner of the screen, there is the Tasks panel, which shows the current status of all the tasks in the system.<br> If&nbsp;many of them are pending, this will be the reason for the above issue.</p>
<p style="text-align:left"><img alt="" class="fb-img" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/d072f0a4-884a-4a43-bdf9-affc212028ee/h/547.png" style="" width="1920"></p>
<p>It is likely that a user sets off a large number of prints and is overloading the system, or there is a need to add more task engines to your system to cope with the load.</p>
<p>To cancel the pending tasks, go to the&nbsp;admin console-&gt;Schedules-&gt;Task Manager. The Task Manager provides complete visibility on what tasks are running.<br> A running or pending task can be stopped by enabling the checkbox next to it, theמ stop it with the stop button:</p>
<p style="text-align:left"><img alt="" class="fb-img" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/0302382a-73c1-4034-84ea-af0c3664ad89/h/547.png" style="" width="677"></p>
<p>Before you stop the tasks, you must stop the schedule first to prevent it from spanning more tasks.<br> To find the schedule, you can click on the "Go to Item location" button to see the schedules for that item and stop it.</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/7c90f49d-7418-494a-b3de-034a3d2e1bf3/547.jpg" style=""></p>]]></description>
          <pubDate>Thu, 02 Feb 2023 21:01:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/x2h1rbv/what-to-check-when-schedules-prints-are-not-running</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>What is a &#x22;Subquery mode&#x22; ?</title>
          <link>https://community.pyramidanalytics.com/t/p8hflm4/what-is-a-subquery-mode</link>
          <description><![CDATA[<p> Note: "Sub Query" mode is only applicable to Microsoft Analysis Services data sources. </p> 
<p> Microsoft SSAS has a limitation that the "where" clause of the MDX statement can't accept more than one element from the same hierarchy. So for example,&nbsp; there is no natural way to set a query to show "sales by product where year is 2008 OR year is 2009".<br> To overcome this there are three options. </p> 
<ol> 
 <li> <p> Aggregation:<br> Aggregate the multi-selection of the where statement into a Custom Member. This is the default behavior of Pyramid. If you look at the MDX, you will see something of the following vain. </p> <p> <span class="pen4"><code>MEMBER [date].[year].[combox] as Aggregate([date].[year].[2008], [date].[year].[2009])</code></span> </p> <p> and then see: </p> <p> <span class="pen4"><code>where ([date].[year].[combox])</code></span> </p> <p> The benefit of this option is that the multi-select CAN include custom members and custom sets. However, there are scenarios where this query either takes a VERY long time to return or never returns at all. </p> </li> 
 <li>List:<br> It is also possible to supply a list into the "where" clause.<br> <br><span class="pen4">{<code>[date].[year].[2008],[date].[year].[2009]</code>}</span><br> <br>However, that might not work well if there is a very large list of items or if specialized logic or aggregations are needed.<br> &nbsp;</li> 
 <li>Sub-Query:<br> The "From" clause of the MDX statement looks like this:<br> <br><span class="pen4">FROM ( SELECT StripCalculatedMembers({[date].[year].[2008], [date].[year].[2009]}) ON 0 FROM [Pyramid Sales Demo] )</span><br> <br>This approach can&nbsp;sometimes&nbsp;perform better than the first approach but has the downside of not being able to include custom or even calculated members (created in Pyramid or created in the SSAS engine respectively). For this reason, the Aggregate option is the default.<br> <br>Aside from perhaps performance, and that the subquery mode doesn't allow for custom elements, there should be no difference in the results.</li> 
</ol> 
<p> Unfortunately, when working against SSAS the cube designs and data configurations are vast, and it's never "one size fits all" when querying it. </p> 
<p> For more details on enabled subquery mode see online help <a href="https://help.pyramidanalytics.com/Content/Root/MainClient/apps/Discover/PRO/Query%20Options/Query%20Settings.htm" rel="nofollow noopener noreferrer" target="_blank">here</a>. </p>]]></description>
          <pubDate>Sun, 02 May 2021 09:06:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/p8hflm4/what-is-a-subquery-mode</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>How to Generate Process and Thread Dump Files for Analyzing High Memory Usage of Pyramid Serivces</title>
          <link>https://community.pyramidanalytics.com/t/m1htftq/how-to-generate-process-and-thread-dump-files-for-analyzing-high-memory-usage-of-pyramid-serivces</link>
          <description><![CDATA[<p> Pyramid services are based on Java and require the&nbsp;server resources (mostly RAM and CPU usage)&nbsp;to be available for better performances. </p> 
<p> To prevent services from over-consuming the resources, Pyramid has a setting that limits the amount of memory that each service can consume. </p> 
<p> In some cases, Pyramid Support might request memory and thread dumps to analyze the performances of the services in addition to the Pyramid System/Transaction logs and the windows event&nbsp;server logs. </p> 
<p> <strong>If the services with high memory are the Runtime/Task engines or the Router, we will need to analyze the Java Process and Thread dumps:</strong> </p> 
<p> <strong>Thread dump of Open JDK Service:</strong> </p> 
<p> To generate a thread dump, you will need to open the task manager and&nbsp;add the 'Command-Line' column.<br> There you can determine which service is consuming the memory and whether it's exceeding the limit: </p> 
<p> <img src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/531e8d6e-fc3a-40e8-a0f2-a648f72671b2/547.png">&nbsp;&nbsp; </p> 
<p> After you've located the required service, open the command line with administrative rights, and&nbsp;run the following command: </p> 
<p> "C:\Program Files\Pyramid\Java\Bin\jcmd"&nbsp;<strong>25528&nbsp;</strong>Thread.print &gt; C:\Temp\ThreadDump_RTR.txt </p> 
<p> *Replace <strong>25528&nbsp;</strong>with the PID of the java process with high memory usage<br> **Please note that the path to the jcmd may be slightly different depending on your environment, so just change the path as needed by looking at the folder structure. </p> 
<p> Then send us the "ThreadDump_RTR.txt" file created on the c drive us. </p> 
<p> <strong>Process dump of Open JDK Service:</strong> </p> 
<p> For the same service, run this command: </p> 
<p> "C:\Program Files\Pyramid\java\bin\jcmd" <b>25528&nbsp;</b>GC.heap_dump c:\heapDump.hprof<br> <br>*Replace <strong>25528</strong>with the PID of the java process with high memory usage<br> **Please note that the path to the jcmd may be slightly different depending on your environment, so just change the path as needed by looking at the folder structure.<br> <br>Then send us the "heapDump" file created on the c drive to&nbsp;us. </p> 
<p> <strong>If the service that consumes the high memory is the DNC, you will need to do the following:</strong> </p> 
<p> <strong>Memory Dump for Windows Service:</strong> </p> 
<p> right-click on the DNC/Pyramid Windows Connector&nbsp;and choose "create dump file"<br> Open the file location and attach send the dump file to us. </p> 
<p> <img src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/a4b64a17-a0f1-43b2-a376-f0abad349e42/547.png">&nbsp; </p>]]></description>
          <pubDate>Sun, 27 Dec 2020 10:51:01 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/m1htftq/how-to-generate-process-and-thread-dump-files-for-analyzing-high-memory-usage-of-pyramid-serivces</guid>
          <dc:creator>Omri Zach</dc:creator>
        </item>

      <item>
          <title>Slow Performance when using the &#x27;Present&#x27;/&#x27;Publish&#x27; in design mode in Chrome Browsers</title>
          <link>https://community.pyramidanalytics.com/t/q59nxq/slow-performance-when-using-the-presentpublish-in-design-mode-in-chrome-browsers</link>
          <description><![CDATA[<p> We had some reports from clients regarding&nbsp;Slow Performance when using the 'Present'/'Publish' in design mode in Chrome Browsers </p> 
<p> We found that the cause was browsers extensions.<br> As it turns out, Google had changed the chrome extension API, which caused some&nbsp;extensions to break.<br> These&nbsp;broken extensions throw errors to the console and cause overall slowness. </p> 
<p> To resolve,<br> Turn off all extensions (chrome://extensions/),&nbsp;<br> Then close and open the browser </p> 
<p> To check if the extensions you need throws errors, turn each on, and click F12 for the Chrome dev tools, then choose the 'Console' tab (if it's not already open on that tab.<br> <img src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/f7bf4cb4-8069-4ae2-99e6-e411bb7cfbd8/547.jpg">&nbsp; </p> 
<p> If you continue to experience&nbsp;performance issues, contact our support team. </p>]]></description>
          <pubDate>Thu, 21 Nov 2019 14:20:42 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/q59nxq/slow-performance-when-using-the-presentpublish-in-design-mode-in-chrome-browsers</guid>
          <dc:creator>Yakov Shaul</dc:creator>
        </item>

      </channel>
</rss>
