Apusic应用服务器的性能调节

Apusic应用服务器的性能调节,第1张

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应用服务器上开发出稳定而又高性能的企业应用 lishixinzhi/Article/program/Java/hx/201311/26290

第一、处理器
升级处理器相对如上两种而言就显得要困难很多,而且处理器购买非常困难,并不合适一般企业。另外,服务器的结构非常的复杂,对于 *** 作的技术需求极高,升级过程显得非常的困难。不过对于入门级的处理器而言,采用这一手段进行升级就方便容易很多,且安装较为方便,无需太过考虑其他方面。
第二、硬盘
最开始使用的服务器硬盘一般多为入门级,也就是说基本上只是用来满足日常运营的,当需求提升时,一定无法满足需求。因此,如果条件允许,至少要拥有8MB甚至16MB Cache的硬盘。当然了,转速自然越大越好,只是在散热上需多做功夫。
第三、内存
和电脑一样,服务器的内存也是增加数据运行的基础,如果内存跟不上,数据处理速度一定不快。因此,当出现处理缓慢的状况时,可以适当的采用增加内存的方式来加大处理器的高效运行。而且现阶段内存的价格降低,增加内存容量可谓势在必行。
如何提高服务器托管的服务器性能
1、为网站选择合适的线路
国内的网络是有区域划分的南电信北网通南方地区以电信为主北方则以网通为主电信与网通是两家不同的运营商 同时也是竞争对手因此他们之间互访的速度会比较慢若是网站面向南方用户访问的话用电信面向北方用网通若是面向全国的话建议用双线才可以保证各地区的访问速度
2、服务器托管时选择共享带宽还是独享带宽
展示、文字、论坛类的网站,通常是占用资源最小的,可以选择共享带宽,默认的带宽就足够用;而下载、视频、**类的网站则对带宽的占用量比较大,一般情况下推荐用独享的带宽,具体可以根据网站每天的访问人数来决定。
3、托管服务器选择合适的配置
一般情况下双核E7300系列2G内存的配置能满足普通网站应用的若是网站规模较大访问量较多可以考虑用四核或者至强配置的机器
4、选择专业的IDC服务商
不要图便宜去选择个人或者是代理商只有正规的IDC公司才可以保障产品的质量以及售后对于服务器来讲售后和售前同样重要千万不可轻视
5、售后服务时影响托管服务器稳定的重要因素
DC行业的售前与售后同等重要记得在租用之前就先把售后内容以及流程了解好避免后期一些不必要的收费售后项目


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10871580.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存