[ZT]Apusic应用服务器的性能调节_JVM优化

微服务国产化改造-金蝶Apusic应用服务器 一、金蝶Apusic配置 2.1、修改启动端口 注意查看端口是否被使用 lsof -i tcp:9999 修改/opt/AAS/domains/mydomain/config/apusic.conf <ATTRIBUTE NAME="Port" VALUE="9999" /> 2.2、修改jvm启动参数 根据需要,修改/opt/AAS/domains/mydomain/bin/data.xml <aasjvm>-Xms2g -Xmx2g -XX:MaxPermSize=76 阅读详情
 来自: 金蝶中间件 发布时间: 2003-04-07

Apusic 应用服务器作为企业应用的运行平台,系统的性能非常重要。当应用对性能的要求比较苛刻时,就要考虑是否需要改变系统的缺省设置来提升服务器的性能。首先应该考虑系统的硬件环境(CPU主频高低、内存大小、硬盘转速及网络传输速率等)是否能满足应用的需求。对于复杂的大型分布式企业应用,硬件环境不应该仅仅满足Apusic应用服务器的最低要求配置,而应该提高硬件配置使应用运行的绰绰有余,如CPU和内存的使用率都不应大于80%。另一方面,改变软件环境的配置参数对于性能的影响也非常显著。本文就将介绍如何优化软件环境配置来提高系统性能,分为两个方面:Java虚拟机(JVM)的性能优化和 Apusic应用服务器配置的优化。

Java虚拟机(JVM)的性能优化

Java体系结构由四个不同却又相互关联的部分组成:语言本身、class文件格式、Java API 库和JVM。当执行一个Java程序时,源代码是用Java 语言写成,它被编译成class文件格式,运行在JVM中。同时,Java程序调用Java API 库的方法,访问系统资源。JVM 和 Java API 库形成了编译和运行环境,就叫做Java平台。JVM是基于堆栈的(stack-based),而不象汇编语言是基于寄存器的(register based)。JVM是一个动态堆栈基础上的抽象的计算机体系结构,提供了push、pop来操作数据。JVM的主要功能是装载class文件,执行字节码。java平台的执行工作量分为四个部分:

1. 字节码的执行:JVM花费大概一半的时间来解释字节码。

2. Garbage collection(垃圾回收)

3. 线程管理

4. 动态操作:类装载、绑定检查、安全检查、动态类装载、异常捕获、反射机制、本地方法的翻译。

其中,对象的垃圾回收会占用运行时间,造成程序的短暂中断。

我们可以通过命令行方式来启动Apusic服务器,这样就可以有选择的设置命令行参数。使用命令行参数的主要目的是:选择Java程序使用的JVM类型和JVM运行时占用堆内存的分配策略。

使用HotSpot

HotSpot JVM作为java 2 SDK 的一个附加模块,使用了state-of-the-art 技术大大的提高了系统性能:

1. 适应编译:HotSpot JVM会在程序的运行过程中分析性能的瓶颈("hot spots"),然后编译这些和性能提高最紧密的部分。

2. 改善的Garbage collection

3. 线程同步优化   

HotSpot JVM使用两个机器字(two-machine-word) 作为对象的header,而不象大多数JVM使用三个机器字,这样大约可以节省10%的堆内存空间,加速了对所有对象的扫描。

HotSpot JVM 也丢弃了 handle 的概念,对象引用的实现是通过直接指针,减少了内存的使用和提高了处理速度。访问实例变量象C 语言一样的高效。

可以去http://java.sun.com/products/hotspot/2.0/download.html 下载Java HotSpotTM Server VM 2.0,执行安装即可。如果需要可以针对 jdk 和 jre分别进行安装。

HotSpot JVM 分为 client 和 server 版本,分别针对典型的客户端应用程序和服务器端应用进行了优化。Jdk1.3安装后就包含了 Java HotSpot Client VM,上面安装的是Java HotSpot Server VM。

可以通过命令行参数选择要使用的JVM:

· java -server :Java HotSpot Server VM

· java -hotspot : Java HotSpot Client VM

· java -classic : Java 2 Classic VM

缺省情况是使用 HotSpot Client VM。可以用 java -server -version 来查看版本信息,确定是否以正确安装。

只要针对不同的应用,选择Client 或Server HotSpot VM。对于Server-side应用,有时性能会提高20%,只要简单的在命令行启动Server 时加上 -server 。

Garbage Collection

HotSpot JVM 提供了三种类型的垃圾回收算法,分别是:

1. Copy/scavenge collection

2. Mark-compact collection

3. Incremental (train) collection

具体的含义我不解释了,有兴趣可以查看相关的文档。

一个 JVM 的吞吐量是指除去 GC 消耗的时间占总执行时间的百分比。因此,80%的吞度量就是说 GC 消耗了20%的 JVM 处理时间。当你的应用程序运行时,JVM 的 GC 会造成程序的暂停。

堆内存被分成了 new 和 old 两部分,如下图:

new 部分包括新创建对象区和两个 survivor 区(SS#1和SS#2),新创建的对象分配内存在 new 中,长时间存活的对象被移动到了 old 部分。Perm 是一个永久区域,分配给JVM本省,可以通过 命令行参数 -XX:MaxPermSize=64m 来设置。

当 new 被填满后,会触发"辅助" GC,把存在足够长时间的对象移动到 old 中。当 old 中也被填满了,会触发"主" GC ,将遍历堆内存中的所有对象。可以看出,"主" GC 会消耗更多的时间。足够大的 new 会适合需要大量创建存在时间很短的对象,而 old 如果不够大会频繁的触发"主" GC ,大大降低了性能。所以,我们的任务就是如何设置堆内存的大小以及如何规划 new 和 old 区域的比例来适合我们应用。

"辅助" GC 使用Copy/scavenge collection 算法,"主"GC 使用 Mark-compact collection。

Heap分配策略

通过命令行参数,我们可以设置堆的大小和分配"new"、"old"的比例。一些常用参数如下:



详细的参数设置请参看相关的文档。

如何来规划我们的堆内存分配策略呢?没有一个明确详细的规定,只能根据我们具体的应用进行调节,使性能达到最优化。这种优化方法不需要程序员改变代码,但有时效果会很明显。下面总结了一些操作建议:

· 如果GC成为了瓶颈,请定制你的堆内存分配

· 分配尽可能多的内存给JVM。但如果过多,会引起内存和硬盘之间的交换,反而降低的性能。你可以分配80%的可用RAM 给JVM。

· 如果是Server-Side应用,请加 -server 参数。这样,缺省的NewRatio 是2,SurvivorRatio 是 25 ,适合大部分应用。也可以用NewSize、MaxNewSize来设置。

· 设置- Xms 和 -Xmx 的大小相等,可以避免在每次 GC 后调整堆内存的大小。 · 同样道理设置NewSize、MaxNewSize相等。

· "new"的大小最好不要大于"old"的一半。   

例如,可以通过下面的命令行启动Apusic服务器:

java -server -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m com.apusic.server.Main

Apusic应用服务器配置的优化  

下面主要说明Apusic中的两个文件影响性能的参数说明(这两个文件放在%APUSIC_HOME%/config目录中)及数据库中的设置。

apusic.conf

把其中两个参数修改为:   

MaxClients参数值设置的目的是防止拒绝服务攻击。当参数值设置较小时可以限制服务流量,起到防止拒绝服务攻击的作用,但是当访问的用户较多时而此参数设置较小时却会影响性能。一般情况下,不考虑防止拒绝服务攻击,此参数设置为-1,表示服务流量没有限制。  

MaxWaitingClients:与MaxClients有类似的功能,他表示当许多并发用户访问时,可允许等待的最大客户服务数。一般情况下,不考虑防止拒绝服务攻击,此参数设置为较大的数,如10000,如果设置较小,如50,当等待响应的并发服务队列数超过50时,使得一些服务得不到响应,从而丢失一些响应结果。

datasources.xml

min-spare-connections:指连接池最小容量

max-spare-connections:指连接池最大容量

stmt-cache-size:指语句缓存容量

resultset-cache-size:指结果集缓存容量

resultset-cache-timeout:指结果集缓存超时配置如下: ……   

连接池最小容量:也就是初始连接数,此值不宜设置太小,太小须不断建立连接。也不宜设置太大,太大消耗资源。  

连接池最大容量: 连接池中可容纳的最大连接数,当连接池中的连接数不够用时,需要等待其他的被使用的连接得到释放,才能使用,否则只能等待。根据应用的实际情况设置此值。   

语句缓存容量:对所执行的语句进行缓存,当再次执行此语句时,不必重新编译,从而提高了性能。根据机器内存的大小适当设置此值。   

结果集缓存容量:把所得到的结果集进行缓存,当再次使用此结果集时,不必再次从数据库中取得,而可以直接从缓存中取得,从而提高性能。根据机器内存的大小适当设置此值。   

结果集缓存超时:结果集过期时间,此时间不宜设置过长,以免浪费资源。  

注:语句缓存容量、结果集缓存容量、结果集缓存超时参数主要针对Oracle数据库来设计的。   

通过适当的调节Java虚拟机和Apusic的配置文件,可以显著的提升系统的性能。在一些具体的应用中,还能够通过增加实例池、加大Cached、改变并发策略等方法来改善系统的整体性能。开发人员只要经过不断的总结,就可以在Apusic应用服务器上开发出稳定而又高性能的企业应用。


版权所有 @2000-2003 深圳市金蝶中间件有限公司 保留所有权利
告别6888端口:手把手教你为金蝶中间件Apusic配置自定义域并优化性能 本文详细介绍了金蝶Apusic中间件的深度调优方法,包括自定义域配置、核心参数优化和JVM调优,帮助技术团队提升生产环境性能。通过环境隔离、独立配置和资源控制,实现业务系统的高效稳定运行,特别适用于金融、政务等领域的单机部署需求。 阅读详情

相关推荐

金蝶国产化中间件和人大金仓数据库

信创项目,主要改造MQ和内存数据库和人大金仓国产化的适配 ,以后可以切换到国产组件中运行,系统是统信UOS

LMC技术人生专栏 3250

金蝶Apusic中间件中部署 SuperMap iServer

作者:MR 一、系统配置要求请参考所使用的iServer的帮助文档,最新iServer版本的在线文档: http://support.supermap.com.cn:8090/iserver/help/html/Install_Uninstall/SystemConfig/SystemConfig.htm 本文使用软件版本为 iServer 8.1.1 、金蝶9.0;64

SuperMap技术控 3万+

金蝶Apusic应用服务器 V10企业版 用户手册+技术白皮书+调优手册

金蝶Apusic应用服务器 V10企业版 用户手册+技术白皮书+调优手册 AASV10

金蝶中间件部署报栈溢出_京东618压测时自研中间件暴露出的问题,压测级别数十万/秒...

618大促演练进行了全链路压测,在此之前刚好我的热key探测框架也已经上线灰度一周了,小范围上线了几千台服务器,每秒大概接收几千个key探测,每天大概几亿左右,因为量很小,所以框架表现稳定。借着这次压测,刚好可以检验一下热key框架在大流量时的表现。毕竟作为一个新的中间件,里面很多东西还是第一次用,免不得会出一些问题。压测期,我没有去扩容热key的worker集群,还是平时用的3个16C+1个4C...

weixin_39794340的博客 355

利用Android系统漏洞实现后台弹窗(外弹)

关键:从 Android 8.0(API 26)开始,禁止使用 context.sendBroadcast() 发送隐式广播(即没有指定 setPackage() 或明确组件的广播)。demo核心代码展示利用Android显示系统和广播系统的漏洞实现在后台弹窗的功能,支持最新Android15,16版本。核心功能都是在so层去做,大量使用了jni反调, 如果要上架到应用市场,需要对代码做进一步混淆,加固以应对市场安全扫描。3,开启虚拟显示窗口,这是个透明像素窗口。5,可开启一个线程,调用这个外弹窗口。

2018,再出发~ 1317

信息流广告ROI线性预测看板&投放分析监控看板展示&数据处理入库全流程

此看板数据量太大,在tableau public部署运行速度极慢,因此用图片作展示 数据清洗

Larry_Westside的博客 2317

解构金蝶 Apusic 中间件

接触 J2EE 也有些时间了。最近打算自己写一个 EJB 容器,琢磨了一下,打算就着技术书籍和 Apusic 的源码来搞个小研究。先在这开个坑,毕竟每天在家,除了上班准点报道,下班又准点报道,周末连坐下来想事情的时间也被各种扯淡事情打断,也是很烦的。:)1月24日: 先把几个重要概念梳理一下。平常我们用 javax.ejb.* 的 API 时,很少需要考虑别的东西。这里面就有中间件(容器)的...

u013948083的专栏 9119

Halcon 3D视觉实战:5步将线激光高度数据转为可分析的深度图与点云

本文详细介绍了如何利用Halcon平台将线激光高度数据转换为深度图与点云的5步实战方法。通过具体代码示例和工业检测案例(如锂电池胶水测量),帮助工程师高效处理3D视觉数据,实现从原始数据到三维可视化的完整技术链路。

weixin_29039773的博客 361

Apusic应用服务器的性能调节_JVM优化

            Apusic应用服务器作为企业应用的运行平台,系统的性能非常重要。当应用对性能的要求比较苛刻时,就要考虑是否需要改变系统的缺省设置来提升服务器的性能。首先应该考虑系统的硬件环境(CPU主频高低、内存大小、硬盘转速及网络传输速率等)是否能满足应用的需求。对于复杂的大型分布式企业应用,硬件环境不应该仅仅满足Apusic应用服务器的最低要求配置,而应该提高硬件配置使应用运行的

JDMBA的专栏 4724

Multisim仿真运放积分器踩坑实录:为什么你的方波变不成三角波?

本文针对Multisim仿真运放积分器时方波无法转换为三角波的常见问题,提供了详细的排查与调试指南。文章指出,经典RC积分电路因直流反馈开路导致运放饱和,核心解决方案是在反馈电容两端并联大阻值电阻以稳定直流工作点。通过参数优化(调整Rin、C、Rf)和高级仿真技巧,手把手教你调出线性度好、幅度适中的完美三角波,并分享异常波形(如饱和、不对称、振荡)的对应策略。

weixin_29231263的博客 115

Flink实战(101):双流join(三)双流中实现Inner Join、Left Join与Right Join

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 简介 之前文章中提到JoinedStream与CoGroupedStream,例如下列代码: dataStream.join(otherStream) .where(0).equalTo(1) .window(TumblingEventTimeWindows.of(Time.seconds(3))) .apply { ... } 由于joinedStream与

微信搜:import_bigdata,大数据领域硬核原创作者 739

如何修改apusic应用服务器的启动内存

tomcat应用服务器可以通过在catalina.bat中添加“set JAVA_OPTS=-Xms128m -Xmx350m”这样的设置,来修改tomcat的启动内存。     apusic应用服务器也可以设置启动内存。 一、windows下设置启动内存     到%apusic_home%\domains\mydomain\bin目录下,找到startapusic.cmd文件

沉醉的专栏 1617

基于GPUMD的NEP机器学习势函数—二氧化硅融化

势函数作为分子动力学模拟中最终要的输入之一,其准确性很大程度上决定了模拟结果的可靠性,传统经验势无法很好地描述所有现象,而能进行准确预测的基于第一性原理计算的分子动力学计算量非常大,无法进行大体系长时间的计算。因此最近兴起的机器学习势函数正是解决这一问题的有效工具,它可以通过对第一性原理的计算结果进行学习,通过这个方法得到的势函数具有接近第一性原理的计算精度。这里介绍一种基于GPUMD的NEP机器学习方法。

Rockyoung 5320

APUSIC配置文件说明(apusic.conf)

1  apusic.conf        把其中两个参数修改为:          MaxClients参数值设置的目的是防止拒绝服务攻击。当参数值设置较小时可以限制服务流量,起到防止拒绝服务攻击的作用,但是当访问的用户较多时而此参数设置较小时却会影响性能。一般情况下,不考虑防止拒绝服务攻击,此参数设置为-1,表示服务流量没有限制。      MaxWaitingClients:与Ma

5132

ImportError: DLL load failed: 找不到指定的程序的解决方案

本文主要介绍了ImportError: DLL load failed: 找不到指定的程序的解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 18万+

一文吃透 ABAP CDS SELECT:语法全景、关联与去重、可运行示例与实战心法

摘要: 本文深入解析ABAP中CDS视图的SELECT语法,重点介绍两种等价写法、关联与路径表达式优化、DISTINCT去重逻辑及WHERE/GROUP BY/HAVING/UNION等子句的应用。通过可运行的业务伙伴角色去重、关联路径查询及多角色筛选示例,演示如何将CDS特性转化为项目实践。强调关联复用性优于传统JOIN,并指出DISTINCT的权限边界与误用场景,帮助开发者从行式思维转向图式数据建模。(150字) 关键词: ABAP CDS、SELECT语法、路径表达式、DISTINCT去重、关联复用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 395

金蝶部署dem

注意: 金蝶没有maxPostSize="-1" 要在/opt/AAS-V9.0/domains/mydomain/config/ vm.options里配置apusic.http.request.maxHeaderLine=819200 War包要手动解压放/opt/AAS-V9.0/domains/mydomain/ applications进去才可以生效 一、安装DM数据库 安装完成之后,修改配置文件dm.ini中的一些参数 MEMORY_POOL =...

qq_42561368的博客 1404

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

金蝶容器Apusic中重新部署war包

1 简介 由于当前的项目platform需要部署在192.168.1.92上,因此在添加了新的功能之后,需要重新为项目制作jar包和重新把项目部署在金蝶容器中,在此简要的把部署的过程总结如下。 注意:platform项目默认部署的在192.168.1.92上,并且端口为8080,由于项目基于SpringBoot,因此在默认情况下访问接口时是需要加入项目名称platform的,但为了之前接口的一致性...

不当初 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

同一个请求访问有时报 ‘404‘,有时访问正常 ‘200‘

问题如图所示: 原因: 在服务中心同一个服务可能开了多个实例,并且多个实例提供的功能不完全的一致,故导致同一个请求访问服务的时候,有时访问到的是存在此次访问接口的实例,但有时访问到的却不存在此次访问接口的实例,如下图所示: 解决办法: 将另外一个实例下线即可 ...

m0_51176516的博客 4449

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用docker-compose,调整JVM参数 JVM参数不生效

里的微服务占用内存太大部分本奎,就想调整下jvm参数优化下,又网上很多调整JVM参数的方法不能用或者调整后不生效,参考多篇文章后总结一个方法。服务器配置比较低,导致部署在。

jdk java api 中文 下载 1704

金蝶部署项目

金蝶部署项目

qq_41512902的博客 1万+

AAS-V10.0用户手册:金蝶中间件的全功能指南

AAS-V10.0用户手册:金蝶中间件的全功能指南 【下载地址】AAS-V10.0用户手册 探索金蝶中间件Apusic V10.0的强大功能,本仓库提供详尽的用户手册,助您快速掌握软件操作精髓。无论您是新手还是资深用户,这份手册都将成为您高效工作的得力助手。通过清晰的指导和实用的技巧,您将能够充分发挥Apusic V10...

gitblog_06770的博客 805

apusic应用服务器配置默认应用

如何将apusic应用服务器下的一个应用配置成默认应用,不需输入应用名即可访问

沉醉的专栏 1557

apusic应用服务器下乱码问题的解决

如何解决从tomcat或其他应用服务器下开发的应用移植到apusic下出现的乱码问题

沉醉的专栏 1749

金蝶V9.0修改jvm内存大小

金蝶jvm内存太小导致无法GC 在金蝶根目录下的当前域中找到启动文件,例如:AAS/domains/mydomains/bin下的 startapusic 文件 打开启动文件修改35行的参数即可

StrongGS的博客 2863
上一篇: 2004年度中国社会十大恶心人物排行榜[转帖]
下一篇: 我们是工人老大哥。[转帖]
zaowei21
博客等级 码龄25年 38粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值