《Java性能优化指南》读书笔记-JVM性能调优入门

系统需求概述

Java系统的非功能性需求都统称为系统需求,包括这些方面的内容:

1.内存使用需求。  一般指系统行时所需要的内存空间,度量单位一般是G或者M.
2.延迟及响应性需求。一般指系统对用户请求的响应时长,一般用tp99或者tp999的值来度量。
3.吞吐量需求。指系统单位时间里能够处理的事务数。一般我们用tps来度量。
4.可用性需求。指系统处于可使用状态的度量,一般用可用率来度量。
5.可管理性需求。指对由运行、监控系统而产生的操作性开销的度量,同时也包含了系统配置的难以程度,用于衡量系统管理的难易程度。
6.启动时间。系统初始化完成到能够提供服务所消耗的时间。


上述内容是对常见的和常关注的系统需求的一个概括,实际系统的非功能性需求应该远不止这些,可能一些非常少见的系统关注的系统需求也不止上述这些内容。


确定系统需求优先级

系统需求中的内容有很多因素之间是相互矛盾的,不可兼得。

比如:

1.降低内存使用,有可能导致系统响应时间变长,吞吐量下降,甚至可用性降低。

2.提升吞吐量,可能需要增加内存,增加部署的JVM数量,这样可管理性就会降低,响应时间有可能增加。

因此我们针对特定的业务系统,根据系统的特点,我们应该做些取舍,选择合适的系统需求优先级,根据优先级来进行调优选择。我认为在我们的实际应用场景中应该有这样一些类型的系统。


系统类型    系统需求优先级        

用户浏览型

如:门户网站前台系统、公共信息展示

响应时间: 高

吞吐量:

可用性:高

可管理性:中

内存使用: 低

启动时间:低

用户操作型

如:用户后台操作系统、

响应时间: 高

可用性:高

吞吐量:中

可管理性:中

内存使用: 低

启动时间:低


后台服务型

如:提供对内、对外接口服务的系统。

响应时间: 高

可用性:高

吞吐量:高

可管理性:中

内存使用: 低

启动时间:低


后台任务型

如:异步执行后台任务的系统,比如定时任务。

可用性:中

吞吐量:中

响应时间: 低

可管理性:中

内存使用: 中

启动时间:低








你可能感兴趣的:(《Java性能优化指南》读书笔记-JVM性能调优入门)