我有一个运行在8核心系统上的tomcat应用程序。我观察到,当maxthread count从16更改为2时,对于13个请求/秒的吞吐量,性能有了显著的提高
然而,当我将吞吐量增加到30-40个请求/秒时,我看到请求排队。所以,这里发生的是由于只有maxthreads两个请求开始堆积。
然后,当我将maxThreads设置为非常高的值,如10k时,我看到JVM再次需要很长的上下文切换时间。
我的问题是,tomcat中是否有任何属性可以指定要在JVM中并行处理多少请求。
根据maxThreads的连接器文档(我假设这就是您更改maxThreads配置的地方):
要由此连接器创建的请求处理线程的最大数量,因此它决定了可以处理的同时请求的最大数量。如果未指定,则该属性设置为200。如果执行器与此连接器关联,则忽略此属性,因为连接器将使用执行器而不是内部线程池执行任务。请注意,如果配置了执行器,那么为该属性设置的任何值都将被正确记录,但它将被报告(例如通过JMX)为-1,以表明它没有被使用。
将线程计数设置为高于可用内核的数量没有问题(恰恰相反),因为并不是每个内核都一直在工作(它们通常都在等待外部输入,例如来自数据库的数据)。
如果我错过了这一点,而您更改了不同的maxThreads配置,请澄清。另一方面,您的问题是关于指定并行处理多少请求的配置:如果您引用了不同的maxThreads,那么Tomcat的默认值是200,并且可以在连接器的配置中更改(或者如文档所述,使用执行器)
1、IO层次结构 IO实现普遍采用了层次式的结构。其基本思想与计算机网络中的层次结构相同:将系统IO的功能组织成一系列的层次,每一层完成整个系统功能的一个子集,其实现依赖于下层完成更原始的功能,并屏蔽这些功能的实现细节,从而为上层提供各种服务。 一个比较合理的层次划分为四个层次的系统结构,各层次及其功能如下: 1)用户层IO软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与IO操作有关的
每次CodeIgniter运行时都有很多基础类作为核心框架的一部分被自动初始化.但你也可以使用经过你修改的类来替换甚至扩展这些原始的核心系统类. 大多数用户一般不会有这种需求,但对于那些想较大幅度的改变CodeIgniter的人来说,我们依然提供了替换和扩展核心系统类的选择. 注意: 改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么. 系统类清单 以下是系统核心文件的清单
每次 CodeIgniter 运行时,都有一些基础类伴随着核心框架自动的被初始化。但你也可以使用你自己类来替代这些核心类或者扩展这些核心类。 大多数用户一般不会有这种需求,但对于那些想较大幅度的改变 CodeIgniter 的人来说,我们依然提供了替换和扩展核心类的选择。 注解 改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么。 系统类清单 以下是系统核心文件的清单,它们在
主要内容:1.订单中所包含的内容信息,2.流程引擎,3.订单系统的发展1.订单中所包含的内容信息 为了使订单系统能够对订单进行高效、精准的管理和跟踪,订单会储存关于产品、优惠、用户、支付信息等一系列的订单实时数据,来和下游系统,如:促销、仓储、物流进行交互。 以一个通用B2C商城的订单为例,梳理其包含的信息如下: 这里要注意的是订单类型,随着平台业务的不断发展,品类丰富、交易方式丰富后,需要对订单进行多维度的分类管理,同时订单类型利于订单系统的扩展性。每种订单类型将
万法皆空,因果不空。 随着摩尔定律碰到瓶颈,越来越多的系统要依靠分布式集群架构来实现海量数据处理和可扩展计算能力。 区块链首先是一个分布式系统。 中央式结构改成分布式系统,碰到的第一个问题就是一致性的保障。 很显然,如果一个分布式集群无法保证处理结果一致的话,那任何建立于其上的业务系统都无法正常工作。 本章将介绍分布式系统中一些核心问题的来源以及相关的工作。
这款游戏是一个放置类的策略优化游戏,在这里你可以建立自己的空间帝国。 你从一个类似地球的星球开始,在宇宙中建立自己的道路,殖民新的星球,与外星文明作战。