<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Benchmark tests for concurrent reloads using Qlik Data Gateway - Direct Access in Member Articles</title>
    <link>https://community.qlik.com/t5/Member-Articles/Benchmark-tests-for-concurrent-reloads-using-Qlik-Data-Gateway/ta-p/2522956</link>
    <description>&lt;H2&gt;&lt;FONT color="#339966"&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;The goal of these tests was to assess the performance and behavior of Qlik Data Gateway - Direct Access (hereafter Direct Access gateway) when installed on machines with limited resources.&lt;/P&gt;
&lt;P&gt;Direct Access gateway &lt;EM&gt;1.7.2&lt;/EM&gt; was used for these tests since it was the latest version available at the time. Later versions might provide improved performance.&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Test environment&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;We conducted these tests on two resource-constrained machines with configurations detailed in the table below. To minimize the effects of network latency, these machines, the source database, and the Qlik Cloud Services staging tenant were all located in the US East region.&lt;/P&gt;
&lt;TABLE style="width: 950px;" width="950"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Windows Server&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;No. of CPUs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Memory (GB)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Storage (GB)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Minimal&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Windows 2022&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;32&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Small&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Windows 2022&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;32&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Database description&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;We used a SQL Server database called &lt;STRONG&gt;benchmark&lt;/STRONG&gt; containing &lt;STRONG&gt;four&amp;nbsp;&lt;/STRONG&gt;tables, each with a varying number of entries. Detailed descriptions of these tables are provided in the table below.&lt;/P&gt;
&lt;TABLE class=" lia-align-left"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Number of entries&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;1,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;5,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;10,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;Sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;48,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Each table contained&amp;nbsp;&lt;EM&gt;ten &lt;/EM&gt;columns and was created using the following SQL Query:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0-1751442744430.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181788i67D72524540ECEA5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Charlton_Book_0-1751442744430.png" alt="Charlton_Book_0-1751442744430.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The data in each table was generated randomly using the following SQL Query:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1-1751442744435.png" style="width: 900px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181789i581F0D241AA32D56/image-size/large?v=v2&amp;amp;px=999" role="button" title="Charlton_Book_1-1751442744435.png" alt="Charlton_Book_1-1751442744435.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Test scenarios&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;The following tests were executed using the&amp;nbsp;&lt;EM&gt;Qlik SQL Server Connector.&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;Multiple parallel reloads&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In this scenario, we ran multiple reloads in parallel to determine the maximum number of concurrent reloads each machine was able to handle.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Minimal machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the minimal machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 800px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="213"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="94"&gt;
&lt;P&gt;&lt;STRONG&gt;3 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;&lt;STRONG&gt;5 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;STRONG&gt;10 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;STRONG&gt;15 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="94"&gt;
&lt;P&gt;2m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m13s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;2m13s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="94"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m29s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m2s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m3s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m7s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="9" width="94"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;7m52s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m16s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="7" width="108"&gt;
&lt;P&gt;8m8s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;7m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m24s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m49s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;14m30s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;8m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;15m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m51s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="6" width="94"&gt;
&lt;P&gt;14m38s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="4" width="108"&gt;
&lt;P&gt;21m56s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="108"&gt;
&lt;P&gt;22m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="108"&gt;
&lt;P&gt;22m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;27m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="94"&gt;
&lt;P&gt;19m28s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;23m2s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;27m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="8" width="94"&gt;
&lt;P&gt;19m28s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="8" width="108"&gt;
&lt;P&gt;24m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;31m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;33m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;34m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;34m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-2009&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;Closing data chunk stream from client&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;FONT color="#339966"&gt;Findings&lt;/FONT&gt;&lt;/H5&gt;
&lt;P&gt;It seems then, that the safe number of concurrent reloads for the minimal machine is &lt;STRONG&gt;13&lt;/STRONG&gt;. In some cases, a few reloads failed with the &lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt; error. However, when reloads were performed with chunk recovery (RELOAD_CACHE_MEMORY_MB=100) enabled, they were always successful.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Small machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the small machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 800px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="213"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="94"&gt;
&lt;P&gt;&lt;STRONG&gt;3 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;&lt;STRONG&gt;5 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;STRONG&gt;10&amp;nbsp;reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;STRONG&gt;15&amp;nbsp;reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="94"&gt;
&lt;P&gt;1m48s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;1m56s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;4m58s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;5m57s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m23s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;5m57s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="94"&gt;
&lt;P&gt;2m13s&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m32s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m40s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m27s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m48s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m36s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="9" width="94"&gt;
&lt;P&gt;4m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m43s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m52s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;8m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="7" width="108"&gt;
&lt;P&gt;3m43s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;9m6s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m34s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m34s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m42s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;9m6s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m7s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="3" rowspan="15" width="298"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;FONT color="#339966"&gt;Findings&lt;/FONT&gt;&lt;/H5&gt;
&lt;P&gt;During the testing, CPU utilization was nearly 100%. However, memory usage did not differ significantly between tests. At its highest, memory usage reached only half of the available memory.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;Large reloads&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In this scenario, we performed reloads with large amounts of data (1 million-10 million rows).&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Minimal machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the minimal machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 500px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Average fetch time&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;11&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;62&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;80&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Small machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the small machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 500px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Average fetch time&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;14&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;30&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Conclusion&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;Based on the benchmark tests, Direct Access gateway can safely run a maximum of&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-stringify-type="bold"&gt;13&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;concurrent reloads on a minimal Windows machine, although it will take less time to run them on a small machine.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 02 Jul 2025 09:00:06 GMT</pubDate>
    <dc:creator>Charlton_Book</dc:creator>
    <dc:date>2025-07-02T09:00:06Z</dc:date>
    <item>
      <title>Benchmark tests for concurrent reloads using Qlik Data Gateway - Direct Access</title>
      <link>https://community.qlik.com/t5/Member-Articles/Benchmark-tests-for-concurrent-reloads-using-Qlik-Data-Gateway/ta-p/2522956</link>
      <description>&lt;H2&gt;&lt;FONT color="#339966"&gt;Introduction&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;The goal of these tests was to assess the performance and behavior of Qlik Data Gateway - Direct Access (hereafter Direct Access gateway) when installed on machines with limited resources.&lt;/P&gt;
&lt;P&gt;Direct Access gateway &lt;EM&gt;1.7.2&lt;/EM&gt; was used for these tests since it was the latest version available at the time. Later versions might provide improved performance.&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Test environment&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;We conducted these tests on two resource-constrained machines with configurations detailed in the table below. To minimize the effects of network latency, these machines, the source database, and the Qlik Cloud Services staging tenant were all located in the US East region.&lt;/P&gt;
&lt;TABLE style="width: 950px;" width="950"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Windows Server&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;No. of CPUs&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Memory (GB)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;STRONG&gt;Storage (GB)&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Minimal&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Windows 2022&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;2&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;32&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;Small&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;Windows 2022&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;4&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;8&lt;/P&gt;
&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;32&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Database description&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;We used a SQL Server database called &lt;STRONG&gt;benchmark&lt;/STRONG&gt; containing &lt;STRONG&gt;four&amp;nbsp;&lt;/STRONG&gt;tables, each with a varying number of entries. Detailed descriptions of these tables are provided in the table below.&lt;/P&gt;
&lt;TABLE class=" lia-align-left"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Number of entries&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;1,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;5,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;10,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;Sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="312px" height="40px"&gt;
&lt;P&gt;48,000,000&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Each table contained&amp;nbsp;&lt;EM&gt;ten &lt;/EM&gt;columns and was created using the following SQL Query:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0-1751442744430.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181788i67D72524540ECEA5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Charlton_Book_0-1751442744430.png" alt="Charlton_Book_0-1751442744430.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The data in each table was generated randomly using the following SQL Query:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1-1751442744435.png" style="width: 900px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181789i581F0D241AA32D56/image-size/large?v=v2&amp;amp;px=999" role="button" title="Charlton_Book_1-1751442744435.png" alt="Charlton_Book_1-1751442744435.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Test scenarios&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;The following tests were executed using the&amp;nbsp;&lt;EM&gt;Qlik SQL Server Connector.&lt;/EM&gt;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;Multiple parallel reloads&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In this scenario, we ran multiple reloads in parallel to determine the maximum number of concurrent reloads each machine was able to handle.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Minimal machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the minimal machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 800px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="213"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="94"&gt;
&lt;P&gt;&lt;STRONG&gt;3 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;&lt;STRONG&gt;5 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;STRONG&gt;10 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;STRONG&gt;15 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="94"&gt;
&lt;P&gt;2m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m13s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;2m13s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="94"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;6m29s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m2s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m3s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m7s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="9" width="94"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;7m52s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m16s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="7" width="108"&gt;
&lt;P&gt;8m8s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;7m44s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m24s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m49s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;14m30s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;8m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;15m11s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;16m51s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="6" width="94"&gt;
&lt;P&gt;14m38s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="4" width="108"&gt;
&lt;P&gt;21m56s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="108"&gt;
&lt;P&gt;22m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;26m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="108"&gt;
&lt;P&gt;22m21s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;27m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="94"&gt;
&lt;P&gt;19m28s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;23m2s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;27m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="8" width="94"&gt;
&lt;P&gt;19m28s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="8" width="108"&gt;
&lt;P&gt;24m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;31m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;33m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;34m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;34m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;DirectAccess-2009&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;Closing data chunk stream from client&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;FONT color="#339966"&gt;Findings&lt;/FONT&gt;&lt;/H5&gt;
&lt;P&gt;It seems then, that the safe number of concurrent reloads for the minimal machine is &lt;STRONG&gt;13&lt;/STRONG&gt;. In some cases, a few reloads failed with the &lt;FONT color="#FF0000"&gt;DirectAccess-4025&lt;/FONT&gt; error. However, when reloads were performed with chunk recovery (RELOAD_CACHE_MEMORY_MB=100) enabled, they were always successful.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Small machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the small machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 800px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="213"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="94"&gt;
&lt;P&gt;&lt;STRONG&gt;3 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="108"&gt;
&lt;P&gt;&lt;STRONG&gt;5 reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;&lt;STRONG&gt;10&amp;nbsp;reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&lt;STRONG&gt;15&amp;nbsp;reloads&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="94"&gt;
&lt;P&gt;1m48s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;1m56s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;4m58s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;5m57s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m23s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;5m57s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="94"&gt;
&lt;P&gt;2m13s&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;2m54s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m32s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m40s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m27s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;5m48s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;7m19s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m36s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m1s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="9" width="94"&gt;
&lt;P&gt;4m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="2" width="108"&gt;
&lt;P&gt;3m43s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="96"&gt;
&lt;P&gt;7m52s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m17s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="96"&gt;
&lt;P&gt;8m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m26s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="7" width="108"&gt;
&lt;P&gt;3m43s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD rowspan="3" width="96"&gt;
&lt;P&gt;9m6s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m34s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m34s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m42s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="4" width="96"&gt;
&lt;P&gt;9m6s&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;8m50s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m7s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;9m15s&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD rowspan="15" width="213"&gt;
&lt;P&gt;sample_table_48m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="3" rowspan="15" width="298"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="120"&gt;
&lt;P&gt;&amp;gt; 1h&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;&lt;FONT color="#339966"&gt;Findings&lt;/FONT&gt;&lt;/H5&gt;
&lt;P&gt;During the testing, CPU utilization was nearly 100%. However, memory usage did not differ significantly between tests. At its highest, memory usage reached only half of the available memory.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;Large reloads&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In this scenario, we performed reloads with large amounts of data (1 million-10 million rows).&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Minimal machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the minimal machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 500px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Average fetch time&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;11&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;62&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;80&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;Small machine results&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The results for the small machine are presented below.&lt;/P&gt;
&lt;TABLE style="width: 500px;"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Table name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;&lt;STRONG&gt;Average fetch time&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_1m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_5m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;14&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="280.688px" height="40px"&gt;
&lt;P&gt;sample_table_10m&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="218.312px" height="40px"&gt;
&lt;P&gt;30&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;FONT color="#339966"&gt;Conclusion&lt;/FONT&gt;&lt;/H2&gt;
&lt;P&gt;&lt;FONT color="#000000"&gt;&lt;SPAN&gt;Based on the benchmark tests, Direct Access gateway can safely run a maximum of&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-stringify-type="bold"&gt;13&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;concurrent reloads on a minimal Windows machine, although it will take less time to run them on a small machine.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Jul 2025 09:00:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Member-Articles/Benchmark-tests-for-concurrent-reloads-using-Qlik-Data-Gateway/ta-p/2522956</guid>
      <dc:creator>Charlton_Book</dc:creator>
      <dc:date>2025-07-02T09:00:06Z</dc:date>
    </item>
  </channel>
</rss>

