新闻中心  News
  行业动态
苹果急于iPhone变慢,看我们如何让您的老系统加速

冬日的北京城,寒风刺骨。小编早6晚10,奔走在燕郊——首堵的大道上,时不时掏出当年“*肾”换来的iPhone6 plus,接受老板的指示。

就是这个“肾宝”,今天依旧不让人省心。6:45分,从人山人海的930被挤出来,两脚刚从悬空状态踏实落地在CBD的金光大道上,一道妖风刮来,小编才知道昨夜准备的羽绒服厚度不够啊。虽然有的人“防寒基本靠抖”,我还是决定靠跑。正飞奔的过程中,电话铃响了,估计又是那个“周扒皮”在催工了。


好不容易从里三层外三层的裤兜掏出来,哆哆嗦嗦放在耳边,就听见“喂、伟、萎...”三个字,它就熄火了,变成了砖头...... 尽管小编也希望就此打住,不要在这严寒的马路上接这种没屁用的电话,但为了尽早实现从燕郊迁到六环内的梦想,小编还是决定要彻底解决这个快半年的问题了,不然拖到老板忍无可忍,小编担心不说六环进不成,可能还得退回到27环去(据说那个地方离成都只有20公里了)。


半年来,闪退、卡顿、没响应、突然关机......越来越严重,也不知咋的?当年多少小编一样的屌丝愿意一年不吃早餐换来的东西就变成这样了呢?



这几天,小编终于找到了答案……






苹果就“电池门”事件道歉:“我们知道你们中一些人觉得苹果让你们失望了,我们深表歉意”



据说是因为这样的原因 :“苹果公司不想为所有受影响的iPhone提供免费电池更换,以弥补电池缺陷,而是试图掩盖事实。”

小编只能呵呵了,这生财也得讲点“道”是不是?这不是打劫吗?我们中国人宽宏大量,打官司就算了,让美国人自己折腾去吧,我们想办法把自己的事儿干好吧,那我们今天就来说说您的IT系统。


可能您听说过PDM(产品数据管理)或者PLM(产品生命周期管理)系统,这些系统对于提升制造企业产品开发过程和数据管控具有非常重要的价值,在工业4.0、智能制造时代更是成为了企业最核心的基础软件平台。但同时也有人把PDM直接叫“跑得慢”,就是说这种系统最大的问题往往是越用越慢,小编那肾宝出现过的问题它基本也都会出现。不过这您可不能责怪PTC、西门子或者达索,这和苹果问题不是同一个性质的。简单说,前者是技术和业务问题,后者是道德问题。无论您们上过Windchill,Teamcenter还是Enovia,您都会遇到如何提升和优化系统性能的问题。


下面小编就让我们那位帅帅的80后工程师哥哥(技术怎么样,小编不太懂,确实帅是真的,小编是倾慕已久呃)以Windchill(V10~V11)为例给您说说“变快”这事儿(详细内容请参见文末描述)。



当然,系统优化是一个复杂的系统工程,您如果遇到系统性能的问题,或者有更个性化的需求,可以联系我们,我们的帅哥靓女会亲临现场帮助您哟!


抱歉小编还有一句话,我每天这样奔波着、用着这"肾宝"还乐呵呵的。对您来说,找我们工程师gg解决问题只是一个方法,最最重要的还是您同样需要保持好心情。当您在系统发起请求后,下楼散散步、健健身、或者喝杯咖啡,再悠然的回来看看结果,这不就是我等屁民追求的理想工作方式吗?


帅帅的80后工程师哥哥:

在后台站30分钟了,你到底放完了没有?

苦命的小编:

草民这就退下

各位瞧好了,干货来了!

Windchill系统优化一般从如下几个方面着手:

1     硬件-选择合适的硬件环境

2     WCA-基本配置和优化

3     Windchill高级优化配置

4     数据库优化

5     Apache Web Server

6     Windchill DS优化

7     性能问题进一步调查


1.1         硬件-选择合适的硬件环境

◆ 进入官方参考文档下载页面,得到 Hardware Sizing Guidelines (硬件计算评估指南/ Windchill服务器大小调整指导原则/硬件配置需求)


◆ 结合具体的操作系统平台, 选择相应的文档进行硬件评估。注意还需要额外考虑未来业务扩展, 客制化业务以及用户数增加的因素。


1.2     WCA-Windchill Configuration Assistant进行基本配置和优化

◆ 详细的使用参照Windchill Administration - 配置Windchill环境指南, 第一章 "Windchill Configuration Assistant 配置 Windchill"

◆ 基本的步骤如下

1.       在 windchill shell 进入到目录 /utilities/wca

2.      生成优化配置文件 windchillconfigurator.xconf

·         执行命令 ant -f WindchillConfigAssistant.xml configureWindchill, 根据提示输入相应的信息

·         会生成结果文件 \utilities\wca\conf\windchill\windchillconfigurator.xconf, 里面包含 WCA 优化产生的参数

3.      传播文件 windchillconfigurator.xconf 内容至 Windchill 属性文件比如 wt.properties, db.properties

·         执行命令 ant -f WindchillConfigAssistant.xml propagateWindchill

4.      检查结果

·         文件 /site.xconf 里面会添加行

·         所有 windchillconfigurator.xconf 里面的参数会更新到参数文件比如 wt.properties, db.properties


注意

如果参数在 site.xconf 和 windchillconfigurator.xconf 同时存在, 那么以在 site.xconf 出现的先后顺序决定使用哪一个Windchill,使用最后面的哪一个。比如参数在site.xconf里面出现在了行 之后, 那么site.xconf里面的会被使用;如果出现在之前, 那么windchillconfigurator.xconf里面的会被使用。


1.3     Windchill-高级优化配置

关于下面这些参数的详细解释可以参照/codebase/properties.html或者搜索知识库。

1. 检查下面 db.properties 参数

2. 检查下面 wt.properties 参数

3. 配置首选项

· 站点管理员登录 Windchill 到 站点 > 实用程序 > 首选项管理, 配置首选项 表格 > 大小限制, 从默认 2000 降低到比如 100, 并锁定删除子列项

4. Windchill 队列检查

·         如果有队列出现海量条目堆积又无法全部执行完成, 使用命令 windchill wt.queue.QueueManager 清除

·         检查队列 commonScheduleQueue 里面的条目, 使之处于正常状态 Ready, Reschedule 或者 Executing

5. CAD 工作器优化

·         不要把 CAD 工作器部署在 Windchill 服务器上

·         如果需要, 可以单独配置 Background Method Server 处理可视化发布, 具体步骤参照《单独配置BMS处理可视化发布.docx》


1.4     数据库优化(Oracle)

通过 sqlplus 使用管理员帐号连接 Oracle, 比如 sqlplus / as sysdba, 执行下面命令:


SQL>alter system reset memory_max_target scope=spfile; --如果报告错误 "ORA-32010: cannot find entry to delete in SPFILE", 可以忽略
SQL>alter system reset memory_target scope=spfile; --如果报告错误 "ORA-32010: cannot find entry to delete in SPFILE", 可以忽略
SQL>alter system set sga_max_size=20g scope=spfile; --具体值根据硬件设定, 通常越大越好
SQL>alter system set sga_target=20g scope=spfile; --等于上面 sga_max_size
SQL>alter system set pga_aggregate_target=1g scope=spfile; --通常 512m 到 2g 之间的值即可
SQL>alter system set optimizer_index_cost_adj=10 scope=spfile; --10 是 Windchill 数据库的需要
SQL>shutdown immediate
SQL>startup
SQL>execute dbms_stats.gather_schema_stats(ownname=>'username', cascade=>true); --收集数据库统计信息. 替换里面的 username 成为 Windchill 的 Oracle schema 名 (具体见 db.properties 里面的 wt.pom.dbUser 参数值). 依赖于数据库资料多少,这一个命令的执行可能需要几十分钟到几个小时; 但是该命令的执行对于系统性能非常重要。


数据库索引

很多慢的操作是 SQL 引起, 并且需要调整索引来优化; 对已知的慢 SQL 的索引进行了总结(如果感兴趣可以联系我们获取)

最好停机 Windchill 进行操作, 如果建立过程中报告栏位上已经存在索引的错误, 可以忽略

具体参照《Windchill PDMLink10推荐的数据库索引来提高性能.docx》理解这些索引的目的解决的问题


1.5     Apache Web Server

Windchill丰富的客户端功能基于大量的 Javascript, css, xml, 图片等等; 将这些文件缓存在浏览器客户端会提高性能, 特别是通过 Internet 访问的情况下。


修改文件

·          Uncomment below lines in /conf/extra/expires.conf

#
# ExpiresActive On
# ExpiresDefault A259200
# Header append Cache-Control "public"
#

·          So to end up with


ExpiresActive On
ExpiresDefault A259200
Header append Cache-Control "public"

·         Exclude nocache.js files from caching

·         Update /conf/extra/additions.conf with the section in bold:

# These files generally contain highly dynamic content.
# Disable Expires header entirely for these files.

ExpiresActive Off
#ExpiresDefault A0
Header append Cache-Control "no-cache"


ExpiresActive Off
#ExpiresDefault A0
Header append Cache-Control "no-cache"



1.6     Windchill DS优化

1.       关闭WindchillDS。

2.      编辑文件/server/config/java.properties (可能需要根据硬件调整具体值)

start-ds.java-args=-server -Xms512m -Xmx2048m

3.      执行命令:

/server/bat/dsjavaproperties (Windows)

/server/bin/dsjavaproperties (Unix)

4.     启动WindchillDS。


1.7     进一步调查和优化

·          性能问题的原因是多方面的, 比如下面的因素也可能会引起, 有时需要多方面调查

Ø  产品 Bug

Ø  客制化问题

Ø  操作系统问题

Ø  硬件问题

Ø  网络问题

Ø  客户端问题

·         从 Windchill 角度, 如果参照上面的步骤后, 系统还存在性能问题, 参照 一下Windchill如何调查整体性能问题来深入调查。

1.        首先参照以上步骤对系统进行适当的调优

2.        收集信息

收集下面信息来尝试了解和定位根源 (也可以提交 case 联系 技术支持)

·         通过 站点 > 实用程序 > 系统管理 > 系统配置收集器, 选择 Performance 类别, 点击收集系统信息然后提交信息给技术支持

·         如果无法使用系统配置收集器, 也可以手动收集下面信息

①    \codebase\wt.properties

②    \db\db.properties

③    服务器硬件信息: 操作系统 (Windows, Linux, Solaris, HP 或者 AIX); 总内存和剩余内存; CPU数目和使用情况;如果数据库和Windchill在不同服务器上, 需要分别提供

④    问题时间段内完整的 MethodServer 和 ServerManager 日志; 如果有相应的 Javacore 或者 heapdump 文件一并提供

⑤    问题时间段内完整的 /logs/access log

⑥    Oracle 性能报告

·         SQL 位于 \db\sql\oracle\OracleTuningReport.sql, 可以复制到 Oracle 服务器上

·         在 Oracle 服务器上, 通过 sqlplus, 使用 sys 或者 system 用户连接 Oracle 执行, 比如:
sqlplus "sys/sys as sysdba" @OracleTuningReport.sql
执行过程中可能会要求输入 yes, 运行结束后在 OracleTuningReport.sql 所在的目录会得到文件report.txt

3.        定位根源和解决

结合下面的技术, 分析信息尝试定位根源

·         《Windchill方法服务器为何意外停止工作.docx》

·         《通过日志文件了解方法服务器是否运行良好.docx》

·         《如何调优Oracle以及如何理解Oracle Gather Info Script的输出信息.docx》

4.        进一步调查

如果问题根源还是不清楚, 通过 Loggers 和相关技术进一步调查

·         编辑 $WT_HOME\codebase\WEB-INF\log4jMethodServer.properties, 配置下面Loggers

log4j.logger.wt.method.MethodContextMonitor.contexts=DEBUG, stdout, methodServerLogFile
log4j.logger.com.ptc.jca.Timing=INFO
log4j.logger.wt.method.server.timing=INFO
log4j.logger.wt.pom.rowCount=INFO
log4j.logger.wt.method.server.httpgw=INFO
log4j.logger.com.ptc.perfomance=INFO
log4j.logger.wt.servlet.ServletRequestMonitor.request=DEBUG, stdout, methodServerLogFile

·         问题发生时候收集 Thread Dumps (参见 CS107636)

·         收集 Heap Dumps 来帮助定位根源

·         通过 站点 > 实用程序 > 服务器状态 > 监控工具 来帮助定位根源

·         使用 WindchillProfiler

·         使用 PTC System Monitor (PSM)


今天就先到这里了,没看懂?这么多术语看懂了就怪了。赶快猛戳下面的二维码,呼叫我们工程师gg吧

2018年3月,下述培训将在北京举行,提前抢免费名额呃(关注公众号,输入“报名”)

------Windchill系统管理员培训

------Windchill系能性能调优培训