public static void main(String[] args) throws Exception { System.out.println("Jersey performance test web service application"); final String jaxRsApp = args.length > 0 ? args[0] : null; //noinspection unchecked final ResourceConfig resourceConfig = ResourceConfig .forApplicationClass((Class<? extends Application>) Class.forName(jaxRsApp)); URI baseUri = args.length > 1 ? URI.create(args[1]) : BASE_URI; int selectors = args.length > 2 ? Integer.parseInt(args[2]) : DEFAULT_SELECTORS; int workers = args.length > 3 ? Integer.parseInt(args[3]) : DEFAULT_WORKERS; final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, resourceConfig, false); final TCPNIOTransport transport = server.getListener("grizzly").getTransport(); transport.setSelectorRunnersCount(selectors); transport.setWorkerThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize(workers).setMaxPoolSize(workers)); server.start(); System.out.println(String.format("Application started.\nTry out %s\nHit Ctrl-C to stop it...", baseUri)); while (server.isStarted()) { Thread.sleep(600000); } } }
listener.getTransport().setSelectorRunnersCount(selectorRunnersCount);
Runtime.getRuntime().availableProcessors(); clientTransport.setSelectorRunnersCount(kernelThreadsCount); clientTransport.setKernelThreadPoolConfig( ThreadPoolConfig.defaultConfig()
@Override public void customize(TCPNIOTransport transport, FilterChainBuilder filterChainBuilder) { transport.setIOStrategy(SameThreadIOStrategy.getInstance()); transport.setKernelThreadPool(selectorPool); transport.setWorkerThreadPool(workerPool); transport.setSelectorRunnersCount(selectorCount); } }
transport.setSelectorRunnersCount(selectorThreadCount);
private void customizePoolSize(TCPNIOTransport transport) { if (maxKernelPoolSize != null) { transport.getKernelThreadPoolConfig().setMaxPoolSize(maxKernelPoolSize); } if (kernelCoreSize != null) { transport.getKernelThreadPoolConfig().setCorePoolSize(kernelCoreSize); } if (maxWorkerPoolSize != null) { transport.getWorkerThreadPoolConfig().setMaxPoolSize(maxWorkerPoolSize); } if (workerCoreSize != null) { transport.getWorkerThreadPoolConfig().setCorePoolSize(workerCoreSize); } if (selectorRunnerCoreSize != null) { transport.setSelectorRunnersCount(selectorRunnerCoreSize); } } }
transport.setSelectorRunnersCount(1); transport.setKernelThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize(1).setMaxPoolSize(1)); transport.setIOStrategy(new SameThreadIOStrategyInterruptWrapper(true));
listener.getTransport().setSelectorRunnersCount(selectorRunnersCount);
transport.setSelectorRunnersCount(4);
@Test public void testThreadInterruptionElsewhereDoesNotMakeServerDeaf() throws Exception { final TCPNIOTransport transport = TCPNIOTransportBuilder.newInstance().build(); transport.setSelectorRunnersCount(1); transport.setKernelThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize(1).setMaxPoolSize(1)); transport.setIOStrategy(new SameThreadIOStrategyInterruptWrapper(false));
TCPNIOTransport transport = transportBuilder.build(); transport.setSelectorRunnersCount(1); return transport;
TCPNIOTransport transport = transportBuilder.build(); transport.setSelectorRunnersCount(1); return transport;
public GrizzlyServerManager(ExecutorService selectorPool, ExecutorService workerPool, ExecutorService idleTimeoutExecutorService, HttpListenerRegistry httpListenerRegistry, TcpServerSocketProperties serverSocketProperties, int selectorCount) { this.httpListenerRegistry = httpListenerRegistry; requestHandlerFilter = new GrizzlyRequestDispatcherFilter(httpListenerRegistry); sslFilterDelegate = new GrizzlyAddressDelegateFilter<>(); httpServerFilterDelegate = new GrizzlyAddressDelegateFilter<>(); FilterChainBuilder serverFilterChainBuilder = FilterChainBuilder.stateless(); serverFilterChainBuilder.add(new TransportFilter()); serverFilterChainBuilder.add(sslFilterDelegate); serverFilterChainBuilder.add(httpServerFilterDelegate); serverFilterChainBuilder.add(requestHandlerFilter); // Initialize Transport executorProvider = new WorkManagerSourceExecutorProvider(); TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance().setOptimizedForMultiplexing(true) .setIOStrategy(new ExecutorPerServerAddressIOStrategy(executorProvider)); configureServerSocketProperties(transportBuilder, serverSocketProperties); transport = transportBuilder.build(); transport .setNIOChannelDistributor(new RoundRobinConnectionDistributor(transport, selectorCount >= MIN_SELECTORS_FOR_DEDICATED_ACCEPTOR, true)); transport.setSelectorRunnersCount(selectorCount); transport.setWorkerThreadPool(workerPool); transport.setKernelThreadPool(selectorPool); // Set filterchain as a Transport Processor transport.setProcessor(serverFilterChainBuilder.build()); this.idleTimeoutExecutorService = idleTimeoutExecutorService; }
Runtime.getRuntime().availableProcessors(); clientTransport.setSelectorRunnersCount(kernelThreadsCount); clientTransport.setKernelThreadPoolConfig( ThreadPoolConfig.defaultConfig()
Runtime.getRuntime().availableProcessors(); clientTransport.setSelectorRunnersCount(kernelThreadsCount); clientTransport.setKernelThreadPoolConfig( ThreadPoolConfig.defaultConfig()
Runtime.getRuntime().availableProcessors(); clientTransport.setSelectorRunnersCount(kernelThreadsCount); clientTransport.setKernelThreadPoolConfig( ThreadPoolConfig.defaultConfig()
Runtime.getRuntime().availableProcessors(); clientTransport.setSelectorRunnersCount(kernelThreadsCount); clientTransport.setKernelThreadPoolConfig( ThreadPoolConfig.defaultConfig()