blob: 309277bb75016296b4b3c74168d1aa3cc920c483 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="mem_limits">
<title>Controlling Impala Resource Usage</title>
<titlealts audience="PDF"><navtitle>Controlling Resource Usage</navtitle></titlealts>
<prolog>
<metadata>
<data name="Category" value="Impala"/>
<data name="Category" value="Performance"/>
<data name="Category" value="Memory"/>
<data name="Category" value="Scalability"/>
<data name="Category" value="Resource Management"/>
<data name="Category" value="Administrators"/>
<data name="Category" value="Developers"/>
<data name="Category" value="Data Analysts"/>
</metadata>
</prolog>
<conbody>
<p>
Sometimes, balancing raw query performance against scalability requires limiting the amount of resources,
such as memory or CPU, used by a single query or group of queries. Impala can use several mechanisms that
help to smooth out the load during heavy concurrent usage, resulting in faster overall query times and
sharing of resources across Impala queries, MapReduce jobs, and other kinds of workloads across a <keyword keyref="distro"/>
cluster:
</p>
<ul>
<li>
The Impala admission control feature uses a fast, distributed mechanism to hold back queries that exceed
limits on the number of concurrent queries or the amount of memory used. The queries are queued, and
executed as other queries finish and resources become available. You can control the concurrency limits,
and specify different limits for different groups of users to divide cluster resources according to the
priorities of different classes of users. This feature is new in Impala 1.3.
See <xref href="impala_admission.xml#admission_control"/> for details.
</li>
<li>
<p>
You can restrict the amount of memory Impala reserves during query execution by specifying the
<codeph>-mem_limit</codeph> option for the <codeph>impalad</codeph> daemon. See
<xref href="impala_config_options.xml#config_options"/> for details. This limit applies only to the
memory that is directly consumed by queries; Impala reserves additional memory at startup, for example to
hold cached metadata.
</p>
</li>
<li>
<p>
For production deployments, implement resource isolation using your cluster management
tool.
</p>
</li>
</ul>
</conbody>
</concept>