webservice并行能力及配置

webservice分为服务端和客户端,服务端必然要支持多线程,而多线程一定有最大线程数极限,也一定可以对多线程进行管理。

对于一个以webservice为协议的能力开放系统,炫耀考虑如下问题:

1、如何准确拿到操作系统信息,以便初步制定解决方案?

windows:

cmd命令行:systeminfo

linux:

unix:

1、如何系统总的吞吐量(所有webservice接口创建的并行线程数)是多少?

2、如何创建和管理webservice线程?何时创建?何时销毁?

2、如何保障不同用户和不同业务的独立性,也即不因某个单功能业务量太大,导致其它业务受阻·?

3、如何为不同用户的不同功能分配webservice可用最大线程资源?

4、如何验证线程配置是否最优?


1、如何系统总的吞吐量(所有webservice接口创建的并行线程数)是多少?

1.1 JVM进程资源有限,线程数就一定有限,那么如何最大线程数是多少?

JVM可创建的最大线程数受两个因素影响:JVM本身限制+操作系统限制

最粗略的最大线程数=(JVM最大可用内存-堆最大内存-方法区最大内存)/每个栈(即线程)的大小

JVM最大可用内存=2G,实际可被程序使用的约1.5G

对最大内存=xmx=512M

方法区最大内存=MaxPernSize=256M

栈区最大内存=1.5G-512M-256M 约=768M

每个栈大小=1M(jdk1.5版本及以上)

查看栈大小配置命令:

jinfo -flag ThreadStackSize 5100
-XX:ThreadStackSize=0 ##0表示使用的默认值

webservice并行能力及配置_第1张图片

1.2 如何验证这个公式是否正确?





你可能感兴趣的:(系统架构)