知识大全 Apusic应用服务器的性能调节
Posted 知
篇首语:发光并非太阳的专利,你也可以发光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Apusic应用服务器的性能调节相关的知识,希望对你有一定的参考价值。
Apusic应用服务器的性能调节 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Apusic应用服务器作为企业应用的运行平台 系统的性能非常重要 当应用对性能的要求比较苛刻时 就要考虑是否需要改变系统的缺省设置来提升服务器的性能 首先应该考虑系统的硬件环境(CPU主频高低 内存大小 硬盘转速及网络传输速率等)是否能满足应用的需求 对于复杂的大型分布式企业应用 硬件环境不应该仅仅满足Apusic应用服务器的最低要求配置 而应该提高硬件配置使应用运行的绰绰有余 如CPU和内存的使用率都不应大于 % 另一方面 改变软件环境的配置参数对于性能的影响也非常显著 本文就将介绍如何优化软件环境配置来提高系统性能 分为两个方面 Java虚拟机(JVM)的性能优化和Apusic应用服务器配置的优化 Java虚拟机(JVM)的性能优化 Java体系结构由四个不同却又相互关联的部分组成 语言本身 class文件格式 JavaAPI库和JVM 当执行一个Java程序时 源代码是用Java语言写成 它被编译成class文件格式 运行在JVM中 同时 Java程序调用JavaAPI库的方法 访问系统资源 JVM和JavaAPI库形成了编译和运行环境 就叫做Java平台 JVM是基于堆栈的(stack based) 而不象汇编语言是基于寄存器的(registerbased) JVM是一个动态堆栈基础上的抽象的计算机体系结构 提供了push pop来操作数据 JVM的主要功能是装载class文件 执行字节码 java平台的执行工作量分为四个部分 .字节码的执行 JVM花费大概一半的时间来解释字节码 .Garbagecollection(垃圾回收) .线程管理 .动态操作 类装载 绑定检查 安全检查 动态类装载 异常捕获 反射机制 本地方法的翻译 其中 对象的垃圾回收会占用运行时间 造成程序的短暂中断 我们可以通过命令行方式来启动Apusic服务器 这样就可以有选择的设置命令行参数 使用命令行参数的主要目的是 选择Java程序使用的JVM类型和JVM运行时占用堆内存的分配策略 使用HotSpot HotSpotJVM作为java SDK的一个附加模块 使用了state of the art技术大大的提高了系统性能 .适应编译 HotSpotJVM会在程序的运行过程中分析性能的瓶颈( hotspots ) 然后编译这些和性能提高最紧密的部分 .改善的Garbagecollection .线程同步优化 HotSpotJVM使用两个机器字(o machine word)作为对象的header 而不象大多数JVM使用三个机器字 这样大约可以节省 %的堆内存空间 加速了对所有对象的扫描 HotSpotJVM也丢弃了handle的概念 对象引用的实现是通过直接指针 减少了内存的使用和提高了处理速度 访问实例变量象C语言一样的高效 可以去下载JavaHotSpotTMServerVM 执行安装即可 如果需要可以针对jdk和jre分别进行安装 HotSpotJVM分为client和server版本 分别针对典型的客户端应用程序和服务器端应用进行了优化 Jdk 安装后就包含了JavaHotSpotClientVM 上面安装的是JavaHotSpotServerVM 可以通过命令行参数选择要使用的JVM &# ;java server JavaHotSpotServerVM &# ;java hotspot:JavaHotSpotClientVM &# ;java classic Java ClassicVM 缺省情况是使用HotSpotClientVM 可以用java server version来查看版本信息 确定是否以正确安装 只要针对不同的应用 选择Client或ServerHotSpotVM 对于Server side应用 有时性能会提高 % 只要简单的在命令行启动Server时加上 server GarbageCollection HotSpotJVM提供了三种类型的垃圾回收算法 分别是 .Copy/scavengecollection .Mark pactcollection .Incremental(train)collection 具体的含义我不解释了 有兴趣可以查看相关的文档 一个JVM的吞吐量是指除去GC消耗的时间占总执行时间的百分比 因此 %的吞度量就是说GC消耗了 %的JVM处理时间 当你的应用程序运行时 JVM的GC会造成程序的暂停 堆内存被分成了new和old两部分 如下图 new部分包括新创建对象区和两个survivor区(SS# 和SS# ) 新创建的对象分配内存在new中 长时间存活的对象被移动到了old部分 Perm是一个永久区域 分配给JVM本省 可以通过命令行参数 XX:MaxPermSize= m来设置 当new被填满后 会触发 辅助 GC 把存在足够长时间的对象移动到old中 当old中也被填满了 会触发 主 GC 将遍历堆内存中的所有对象 可以看出 主 GC会消耗更多的时间 足够大的new会适合需要大量创建存在时间很短的对象 而old如果不够大会频繁的触发 主 GC 大大降低了性能 所以 我们的任务就是如何设置堆内存的大小以及如何规划new和old区域的比例来适合我们应用 辅助 GC使用Copy/scavengecollection算法 主 GC使用Mark pactcollection Heap分配策略 通过命令行参数 我们可以设置堆的大小和分配 new old 的比例 一些常用参数如下 详细的参数设置请参看相关的文档 如何来规划我们的堆内存分配策略呢?没有一个明确详细的规定 只能根据我们具体的应用进行调节 使性能达到最优化 这种优化方法不需要程序员改变代码 但有时效果会很明显 下面总结了一些操作建议 &# ;如果GC成为了瓶颈 请定制你的堆内存分配 &# ;分配尽可能多的内存给JVM 但如果过多 会引起内存和硬盘之间的交换 反而降低的性能 你可以分配 %的可用RAM给JVM &# ;如果是Server Side应用 请加 server参数 这样 缺省的NewRatio是 SurvivorRatio是 适合大部分应用 也可以用NewSize MaxNewSize来设置 &# ;设置 Xms和 Xmx的大小相等 可以避免在每次GC后调整堆内存的大小 &# ;同样道理设置NewSize MaxNewSize相等 &# ; new 的大小最好不要大于 old 的一半 例如 可以通过下面的命令行启动Apusic服务器 java server XX:NewSize= m XX:MaxNewSize= m XX:SurvivorRatio= Xms m Xmx m apusic server Main Apusic应用服务器配置的优化 下面主要说明Apusic中的两个文件影响性能的参数说明(这两个文件放在%APUSIC_HOME%\\config目录中)及数据库中的设置 nf 把其中两个参数修改为 MaxClients参数值设置的目的是防止拒绝服务攻击 当参数值设置较小时可以限制服务流量 起到防止拒绝服务攻击的作用 但是当访问的用户较多时而此参数设置较小时却会影响性能 一般情况下 不考虑防止拒绝服务攻击 此参数设置为 表示服务流量没有限制 MaxWaitingClients 与MaxClients有类似的功能 他表示当许多并发用户访问时 可允许等待的最大客户服务数 一般情况下 不考虑防止拒绝服务攻击 此参数设置为较大的数 如 如果设置较小 如 当等待响应的并发服务队列数超过 时 使得一些服务得不到响应 从而丢失一些响应结果 datasources xml min spare connections 指连接池最小容量 max spare connections 指连接池最大容量 stmt cache size 指语句缓存容量 resultset cache size 指结果集缓存容量 resultset cache timeout 指结果集缓存超时配置如下 …… 连接池最小容量 也就是初始连接数 此值不宜设置太小 太小须不断建立连接 也不宜设置太大 太大消耗资源 连接池最大容量 连接池中可容纳的最大连接数 当连接池中的连接数不够用时 需要等待其他的被使用的连接得到释放 才能使用 否则只能等待 根据应用的实际情况设置此值 语句缓存容量 对所执行的语句进行缓存 当再次执行此语句时 不必重新编译 从而提高了性能 根据机器内存的大小适当设置此值 结果集缓存容量 把所得到的结果集进行缓存 当再次使用此结果集时 不必再次从数据库中取得 而可以直接从缓存中取得 从而提高性能 根据机器内存的大小适当设置此值 结果集缓存超时 结果集过期时间 此时间不宜设置过长 以免浪费资源 注 语句缓存容量 结果集缓存容量 结果集缓存超时参数主要针对Oracle数据库来设计的 通过适当的调节Java虚拟机和Apusic的配置文件 可以显著的提升系统的性能 在一些具体的应用中 还能够通过增加实例池 加大Cached 改变并发策略等方法来改善系统的整体性能 开发人员只要经过不断的总结 就可以在Apusic应用服务器上开发出稳定而又高性能的企业应用 cha138/Article/program/Java/hx/201311/26290相关参考
知识大全 Apusic AS的Web应用中调用commons-loggi
ApusicAS的Web应用中调用commons-loggi 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
本文讨论了在ERPCRM电子商务和定制的应用环境中管理可用性性能和应用服务等级时所面临的问题本文的目标读者是负责应用可用性性能服务等级和容量计划的业务和IT管理人员文中涉及到下面的IT基础架构部分
在应用程序开发中可以通过函数来提高系统的性能与代码的重复利用在SQLServer数据库中也可以通过自定义函数来提高服务器的性能用户自定义函数可以从外部接受必要的参数并在内部执行一些复杂的操作最后返
虽然说SQLServer数据库本身提供了很好的锁管理机制但是从某一方面来说其实数据库只是一些客户端应用程序的傀儡这主要是因为客户端应用程序对服务器上获取的锁几乎有完全的控制能力客户端应用程序发出的
随着计算机技术的发展、微型计算机的广泛应用及其性能价格比的不断提高,一种新型的、功能更强、调节精度更高的数字电液调节系统,很快地取代了模拟调节系统,并广泛地应用于各种大型汽轮机的控制。上图为再热汽
随着计算机技术的发展、微型计算机的广泛应用及其性能价格比的不断提高,一种新型的、功能更强、调节精度更高的数字电液调节系统,很快地取代了模拟调节系统,并广泛地应用于各种大型汽轮机的控制。上图为再热汽
硬件小白求问.个人电脑和服务器性能差多少各有不同,个人电脑好比小轿车,服务器好比卡车小车跑的快,省油,卡车能拉更多的东西loadrunner错误27796和服务器性能不好有关吗此报错代码有很多种错误提
如何调整Oracle数据库服务器的性能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracl
基于Oracle9i的服务器性能评测 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 随着Inte
ASPX页Web服务调用性能优化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 文介绍了如何通过