Bpmx是一个较大的平台,直接发布的话会有内存问题,经查阅一些资料,java1.5没有解决好之前版本的历史问题,所以在垃圾处理gc上有很多配置需要手动完成,之后的版本同上。

Bpmx平台自带的文档中部分解决了这个问题,在开发平台上运行没有问题。在直接发布到tomcat上的时候,也可由此确定此项目的内存需求,大约在500m到1g之间,class内存在256m,但是经测试,他的配置是有问题的。

接下来直接讨论具体的实施细节。

1、tomcat安装和项目拷贝目录没有变化。注意先配置jdk环境变量。

2、在tomcat安装目录下的bin文件夹,找到catalina.bat,右击鼠标选择编辑。在   @echo off下面插入一行,就是第二行,输入一下内容。

3、输入:  set JAVA_OPTS=-server -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:MaxTenuringThreshold=31 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70

4、保存退出后,还是在bin文件夹,双击打开startup.bat

5、弹出的命令窗口不要关闭,如果需要关闭服务,在这个命令窗口输入Ctr-C即可。

实施细节就这么些,这个配置将适用于2g以下内存的项目,这些数值需要符合一定的算法,不要随便修改这些参数,可能直接导致服务崩溃。根据需要可以删除-XX:+Print开头的属性项,在访问比较频繁的时候,大量的回显也会影响系统效率。

下面说一说原理方面的。

除回显配置外,其他的主要是两方面,内存设置和垃圾回收设置。根据资料提供的经验,-Xmx和-Xms应该输入相同的值,相应的-Xmn应当是这个值的4分之一,这个设置在绝大多数项目中就是足够的,但是在部署bpmx的时候,会出现OOM异常,消息大致是gc...limit,这个报错如果在百度上搜索是找不到的,基本上和第一条的都是出自一个版本,链接如下:http://blog.csdn.net/kongls08/article/details/8468713。这篇文章写得也很不错,但是只提到了3个报错,都不是关于gc的,所谓gc就是java的垃圾回收,这个报错的原理就是前面所说的,在旧版中sun公司没有预料到动态内存调用会像现在这么流行,从而在没有足够的配置的时候gc会产生一些类似于指针方面的问题。我不知道为什么关于gc的资料会这么少,直接搜索gc配置,又会弹出很多不想关的资料。都说程序员查东西需要谷歌,没办法我就只好上bing.com。都说这个搜索不怎么样,我还是找到了一些东西。先说说平台文档的问题,他建议的配置中-XX:MaxNewSize这种类似的东西,是适用于jdk1.3和jdk1.4的,在1.4以上已经被-Xmn所取代。配置的是新生代内存的最大值和初始值,但是新的配置中已经被并到了一起。持久内存空间-XX:PermSize和-XX:MaxPermSize是比较独立的一部分,如果在访问jsp文件的时候经常出错,就可以把这一对值调大一点。

在另一个站点中,我找到了处理垃圾回收的办法。http://hllvm.group.iteye.com/ group/wiki/2870-JVM。他的内存设得比我们的需求要大的多,但是我们的问题在于tomcat没有把丰富的系统资源利用起来,而不是系统资源不够,调的大一些暂时不会有问题。

Bpmx实施经验的更多相关文章

  1. CM记录-CDH大数据平台实施经验总结2016(转载)

    CDH大数据平台实施经验总结2016(转载) 2016年负责实施了一个生产环境的大数据平台,用的CDH平台+docker容器的方式,过了快半年了,现在把总结发出来. 1. 平台规划注意事项 1.1 业 ...

  2. DDD实施经验分享—价值导向、从上往下进行(圈内第一个吃螃蟹DDD实施方案)

    阅读目录: 1.背景 2.从业务开始 3.从战略到战术 4.借助外力推动研发(QA.领导.自动化测试) 5.领域模型与SAAS平台的内核(价值最大化) 6.最后 1.背景 DDD本身的技术就不介绍了, ...

  3. 3星|《绩效使能:超越OKR》:较全较新资料汇编,华为实施经验少

    全书是关于绩效管理与OKR的比较新比较全的资料汇编.从泰勒的科学管理说起,一直到现代的KPI.最近的OKR.梳理了工业革命以来重要的绩效管理思想的具体方法.适应情况,详细讲OKR的来龙去脉.适应情况. ...

  4. 选错实施顾问公司 ERP项目九死一生

    今天接到一个朋友的电话,他是一家企业老总.这位老总感到非常头疼的是他的企业选择了一款国际上名气很大的ERP软件,但实施效果却强差人意.他的疑问是"不是说只要选对了ERP产品,谁实施都能成功吗 ...

  5. CRM实施目标、需求、策略、厂商、流程等基本介绍全解

    事实证明,有不少实施了CRM系统的企业经历了失败.这是为何?而据一个在线CRM论坛调查其失败的原因:       67%是因为缺乏组织和管理变革去适应CRM:如组织机构未调整.未融入企业文化.流程不清 ...

  6. CRM实施失败?请注意这6大问题及对策!

    据Gartner调查显示:约50%的CRM项目不能达到客户期望.这一点与很多其他的IT项目状况非常类似,大多出于管理问题,供应商服务能力,项目执行不善等. 另据一个在线CRM论坛调查其失败的原因:67 ...

  7. 【TOP100案例专访】当当网工程师林嘉琦谈双11大促经验及APM实践

    导读:第七届TOP100全球软件案例研究峰会将于11月30日-12月3日在北京国家会议中心举办,本届峰会以“释放AI生产力 让组织向智能化演进”为开幕式主题,旨在推动企业在趋势下拥抱AI.探索和思考A ...

  8. MES实施会有哪些情况?为你介绍两种常见的类型

    MES项目实施顾问是一份极具挑战的工作,需具备大量的专业知识,以及丰富的实施经验.今天,小编为大家介绍最常见的两种MES实施顾问类型,希望对大家有所启发. 保姆型实施顾问 是指以实施顾问为主导,只要是 ...

  9. OA系统从选型到实施完整攻略

    本文结合一线IT人士分享OA实施经验,单纯地讲述OA的选型与实施,为相关经验较少的IT人士提供真正的帮助. 一.如何选择OA系统 说起OA选型,稳定性.易用性.灵活性.成本和服务少不了.但是,只了解这 ...

随机推荐

  1. JavaScript中有关数字的精确计算

    问题这样的: 37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) ,我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会 ...

  2. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

  3. 1奶茶店创业成本: 2发饰品加盟店创业成本 3眼镜行业店创业成本 从“程序员转行卖烧饼”想到IT人创业

    总结: -------奶茶店创业成本: 而这个奶茶店初期投资是:3万元加盟费+1万元保证金+8000装修+两万设备(冰柜.展示柜.收银机等等).别说赚钱,什么时候把初期投资赚回来呀! 一个店的利润就是 ...

  4. TypeError: coercing to Unicode: need string or buffer, ChatRoom found

    在用django框架中遇到一个错误,是模型编写中出的错误 TypeError: coercing to Unicode: need string or buffer, ChatRoom found 解 ...

  5. JAVA 多线程随笔 (三) 多线程用到的并发容器 (ConcurrentHashMap,CopyOnWriteArrayList, CopyOnWriteArraySet)

    1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操 ...

  6. Windows Store App Image开发示例

    通过上面的介绍,读者已经了解了Image对象及ImageBrush对象的使用方法和常用属性,在实际的开发工作中,比较常用的是Image对象,下面以一个幼儿园识物识字卡应用为例,来帮助读者更好的理解Im ...

  7. Reveal for mac延长30天试用的简单方法

    在iOS逆向过程中经常使用Reveal来远程查看iOS平台应用的UI布局,但Reveal有30天使用限制,经常隔一段时间想使用的时候发现已经过期了,如图: 此时在OS X中打开命令行终端,输入以下命令 ...

  8. TortoiseGit流程安装使用手册

    end if

  9. node.js 学习

    http://www.cnblogs.com/haogj/category/612022.html

  10. JAVA动手动脑

    1.运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是 ...