HBASE-7498 Make REST server thread pool size configurable
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1429364 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c8138e1c3e
commit
c543a70e68
|
@ -44,6 +44,7 @@ import org.mortbay.jetty.Server;
|
|||
import org.mortbay.jetty.nio.SelectChannelConnector;
|
||||
import org.mortbay.jetty.servlet.Context;
|
||||
import org.mortbay.jetty.servlet.ServletHolder;
|
||||
import org.mortbay.thread.QueuedThreadPool;
|
||||
|
||||
import com.sun.jersey.spi.container.servlet.ServletContainer;
|
||||
|
||||
|
@ -140,6 +141,17 @@ public class RESTServer implements Constants {
|
|||
|
||||
server.addConnector(connector);
|
||||
|
||||
// Set the default max thread number to 100 to limit
|
||||
// the number of concurrent requests so that REST server doesn't OOM easily.
|
||||
// Jetty set the default max thread number to 250, if we don't set it.
|
||||
//
|
||||
// Our default min thread number 2 is the same as that used by Jetty.
|
||||
int maxThreads = servlet.getConfiguration().getInt("hbase.rest.threads.max", 100);
|
||||
int minThreads = servlet.getConfiguration().getInt("hbase.rest.threads.min", 2);
|
||||
QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);
|
||||
threadPool.setMinThreads(minThreads);
|
||||
server.setThreadPool(threadPool);
|
||||
|
||||
server.setSendServerVersion(false);
|
||||
server.setSendDateHeader(false);
|
||||
server.setStopAtShutdown(true);
|
||||
|
|
|
@ -930,4 +930,27 @@
|
|||
properties from a zoo.cfg file has been deprecated.
|
||||
</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.rest.threads.max</name>
|
||||
<value>100</value>
|
||||
<description>
|
||||
The maximum number of threads of the REST server thread pool.
|
||||
Threads in the pool are reused to process REST requests. This
|
||||
controls the maximum number of requests processed concurrently.
|
||||
It may help to control the memory used by the REST server to
|
||||
avoid OOM issues. If the thread pool is full, incoming requests
|
||||
will be queued up and wait for some free threads. The default
|
||||
is 100.
|
||||
</description>
|
||||
</property>
|
||||
<property>
|
||||
<name>hbase.rest.threads.min</name>
|
||||
<value>2</value>
|
||||
<description>
|
||||
The minimum number of threads of the REST server thread pool.
|
||||
The thread pool always has at least these number of threads so
|
||||
the REST server is ready to serve incoming requests. The default
|
||||
is 2.
|
||||
</description>
|
||||
</property>
|
||||
</configuration>
|
||||
|
|
Loading…
Reference in New Issue