-
金蝶软件(中国)有限公司
EAS
常见性能问题处理指引
修订记录
版本
1.0
修改日期
2007-11-23
作者
陈钧、蒋俊
审核人
胡锦敏
初始版本
修改要点
目录
1
概
述
......................................
..................................................
..................................................
.
2
1.1
目标
.
..
..................................................
..................................................
....................
2
1.2
范围
.
.....................................
..................................................
...................................
2
1.3
读者
.
..
..................................................
..................................................
....................
2
性能问题处理
.
................................................ .................................................. ........................
3
2.1
性能问题反馈要求
.
...............................
..................................................
.................
3
2.2
EAS
部署模型
.........
..................................................
...............................................
3
2.3
问题归类
.
..................................................
..................................................
..............
5
2.4
磁盘空间满
.
..................................
..................................................
..........................
7
2.5
残留
EAS
< br>进程无法停止
.............................
..................................................
..........
8
2.6
EAS
进程消失
.........
..................................................
...............................................
9
2.7
EAS
无法启动
.........
..................................................
...............................................
9
2.8
CPU
持续高消耗
< br>............................................... .................................................. ...
1
0
2.9
换页空间使用率高
.
..............................................
..................................................
11
2.10
IO
等待率高
..........
..................................................
...............................................
1
2
2.11
Apusic License
失效
.......................................
..................................................
......
1
2
2.12
数据库碎片化严重
.
..............................................
..................................................
1
3
2.13
数据库阻塞和死锁
.
..............................................
..................................................
1
4
2.14
网络质量问题
.
................................................ .................................................. ......
1
5
2.15
客户端内存泄漏
.
< br>............................................... .................................................. ...
1
5
2.16
Portal
方式的性能问题
...
..................................................
.....................................
1
6
运行日志收集
.
................................................ .................................................. ......................
1
7
3.1
自动收集
< br>.
...................................
..................................................
...........................
1
7
3.2
RPC
性能日志开关
.......
..................................................
.......................................
1
7
3.3
手工收集
.
..................................................
..................................................
............
1
7
3.4
数据库性能数据收集
.
..............................
..................................................
............
1
9
3.4.1
DB2
后台性能相关日志收集
.................
..................................................
....
1
9
3.4.2
ORACLE
后台性能相关日志收集
.......................................
.........................
2
9
2
3
第
1
页
/
共
30
页
金蝶软件(中国)有限公司
1
概述
1.1
目标
本文档描述
EAS
常见的性能问题、产生原因和诊断处理方法
。对于无法在现场分析处
理的性能问题,
提供相关的运行日志收
集方法,
包括工具自动收集和手工收集,
收集的日志
可以提交给专家进一步分析诊断。
1.2
范围
本文档描述
EAS
部署模型,根据日常支持经验归纳整理了常见的性能问题以及诊断解
决办法。不涉及更深入的日志和性能报告分析技术。适用
EAS
V5.4
及之前的版本。
1.3
读者
本文档适用于
< br>EAS
实施人员、系统管理员、以及总部技术支持类人员参考。
< br>
第
2
页
/
共
30
页
金蝶软件(中国)有限公司
2
性能问题处理
2.1
性能问题反馈要求
为保障
EAS
的运行性能,并能在出现问题后有效的处理和反馈,我们把相关实施
能力
划分为三个层次:
1
、
能够根
据实际软硬件环境完成部署和参数调整工作,保障
EAS
基本运
行性能。
2
、
具备<
/p>
EAS
运行性能的监控能力,在出现问题的时候能够有效描述问题
场景,收集
必要的数据用于分析。
3
、
具备基
本的问题诊断和分析能力,
针对环境和部署相关的问题,
有能力
自行处理和
解决。
第
1
、
2
两条是实施人员应该具
备的基本能力,第
3
条我们则希望通过本文档使实施人
员具备常见问题的自行解决能力。
当系统在正
式上线前,应该确保操作系统、
EAS
、数据库相关参数与其实
际软硬件配置
相匹配,
以保障上线后的基本运行性能,
具体参数配置建议请参考
mykingdee
产
品中心
《
EAS
实施环境指南》
。正式上线后,如果出现了性能和稳定性方面的问题,现场实施人员应能够
处理一些常见的问题,
对于无法自行处理的,
应能有效收集
相关环境信息和系统日志,
便于
总部技术人员进一步分析处理。
当需要总部协助处理性能问题时,应填写《
EAS
实施问题
p>
处理指引与信息反馈表格》
,并根据本文档的描述收集必要的性能数
据和系统日志。
2.2
EAS
部署模型
掌握
EAS
部署模型,对于分析和诊断
EAS
性能问题会有很大的帮助,下图是
EAS
网
络图,可以看到
EAS
是典型的三层模型。
EAS
应用服务
器集群
EAS
客户机
EAS
服务器
1
EAS
客户机<
/p>
集群前置机
(
Load Balance
r
)
EAS
服务器
2
。。。
数据库服务器
EAS
p>
客户机
EAS
服务器
n
第
3
页
/
共
30
页
金蝶软件(中国)有限公司
数据库端
主要运行各种
DBMS
系统,如
Ora
cle
、
DB2
、
SQL
Server
等,可能会采用单
< br>台处理能力很强的服务器来运行,也可以组成集群,具体组建方式取决于
DBMS
本身的架
构和能力。
在应用服务器层,金蝶
EAS
提供了灵活的可扩展模型
以满足从中小规模到大规模的应
用需求,并发用户不多的客户可以采用单实例的方式,只
需部署一个
EAS
,而对于更大规
模的
客户,则应该采用
EAS
集群来满足对并发处理能力、可靠性、
可扩展性的需要。
EAS
采用
J2EE
作为基础架构,
因此可以在多种操作系统平台上运行,
包括
Linux
、
AI
X
、
HP-UX
、
Windows
等。
客户端和服
务器之间则通过局域网或者广域网连接在一起,采用标准的
TCP/IP
协议进
行通讯。
客户端理论上也可以在多种操作系统平
台上运行,
但由于很少有客户的桌面采用非
Windows
p>
环境,所以
EAS
客户端在其它操作系统环
境没有经过充分测试验证,本文档也不
会涉及在其它操作系统运行
EAS
客户端的情形。
AppServer
EAS Server
(Slaver)
EAS
业务组件
Session
状态数据
HTTP S
erver
R
AppServer
EA
S Server
(Master)
EAS
业务组件
工作流、调度服务、
网络控制、
p>
License
等
基础服务
状态数据
HTTP Serv
er
R
AppServer
EAS
Server
(Slaver)
EAS
业务组件
Session
状态数据
HTTP
Server
R
RPC Server
Session
状
态数据
RPC
Server
R
RPC Server
HTTP
ea
s client files
Client
EAS
Client
EAS
业务组件
RPC Client
R
服务器连接信
息
/eas/client/
TCP
C
luster Server
Cluster
Controler
RPC Server
端口:
11034
R
集群配置数据
ormrpc_ties
自动更新组件
1
、对于集群控制器而言,无所谓
主从服务器,
Master<
/p>
是由从服务的
bosconfig
指定的
。
2
、一些需要在内存中保存状态的
基
础服务在集群中只能有一个运行
实例,运行这些实例的服务器称之
为
Master
。
3
、一旦
Master
出现故障,将影响
所有客户端使用,此时
Master
和
Slaver
都必需重新启动。
上图是进一步分解的
EAS
部署模型,其中展示了一个
p>
EAS
集群控制器和三个
EAS
运
行实例。有必要对这些概念做一下解释:
集群控制器(
Cluster Controller
)
:又称集群前置机、负载均衡器。对于客户端而言唯一
可见的
EAS
服务器,当其接收到客户端的连接请求后
,会根据某种负载均衡算法将调用转
发到后端的
EAS
实例,并将结果返回给客户端。可以为每个实例指定一个静态权重。
<
/p>
主节点
(
Master
< br>)
:
又称主实例。
EAS
的某些基础服务,
如调度服务、
网络控制、<
/p>
License
管理等在整个集群环境中只能有一个运行实例,<
/p>
我们称之为单例服务。
运行了这些单例服务
的
EAS
节点称之为主节点。一个集群只能有一个主节点。<
/p>
从节点(
Slaver
)
:又称从实例。集群环境下可以有一个或者多个从实例,运行除了基
础服务以外的所有
EAS
组件。当其中的程序需
要访问基础服务的时候,会自动调用主节点
中的基础服务,这种调用关系是在从节点的<
/p>
中配置的,部署工具会自动完成
此工作。
EAS
服务器端口:由上图中的
RPC
Server
组件监听的
TCP
端口,
默认为
11034
,运行
第
4
页
/
共
30
页
金蝶软件(中国)有限公司
期客户端的所有服务请求通过此端口完成。
< br>EAS
自动更新端口:由上图中的
HTTP
Server
组件监听的
TCP
< br>端口,如果应用服务器
采用
Apusic
,默认为
6888
。其为
Po
rtal
的访问端口,同时也是客户端进行自动更新的服务
端口
。
EAS
应用服务器集群的特点
1
:
1.
支持本机和多机集群
?
一台机器可以部署多个
EAS
组成本机集群。
?
可以将多个服务器上
EAS
组成多机集群。
?
两种模式可以混合使用。
?
异构的应用服务器之间可以组成集群。
2.
负载均衡和失效恢复
?
大并发时减少单点内存占用,降低故障机率。
?
分散故障范围,节点故障只影响连接到该节点的用户。
?
一台应用服务器停机,后续连接转移到正常服务器。
?
当停机的应用服务器重新启动后,会自动加入集群。
3.
自主集群技术
?
不依赖操作系统或者应用服务器的集群技术。
2.3
问题归类
请参照下表对发生的性能问题进行归类。
1
确定问题的严重
/
紧急程度,影响范围
应用服务器无法启动;数据库无
法启动;服务器无
法连接;网络中断等。
大面积出现白屏;难以登录;响应时间衰减严重;
无法自动更新;
< br>
部分客户端慢;
部分功能慢;
特定条件下功能慢等。
1.1
系统已经瘫痪。
1.2
系统整体非常缓慢。
1.3
部分用户
/
功能慢。
2
出现性能问题之前发生过什么变化?(起因分析)
操作系统,数据库,
EAS
服务器如果最近刚好做
过
升级等,可能是导致问题的诱因。
操作系统的参数,
EAS
配置,数据库参数调整不当
可能导致性能问题。
网络如果发生故障,比如受
到蠕虫病毒攻击、路由
器故障等,可能影响网络质量进而影响
E
AS
性能。
企业的其它业务系统是否
也有故障?其诱因可能也
是导致
EAS
性能问题的根源。
2.1
最近系统做过升级或者打过补
丁没有?
2.2
最近服务器配置调整过没有?
2.3
最近网络是否有过调整变化?
2.4
其它业务系统是否也有问题?
根据日常性能支持积累的经验,
结合
EAS
产品架构,对常见的影响
EAS
性能的因素进
行分类整理如下:
1
EAS
应
用集群未来的发展方向是满足大规模应用下的高可用要求,单点失效不会影响客户端业务操作,
< br>请注意未来版本的变化。
第
5
页
/
共
30
页
金蝶软件(中国)有限公司
#
1
类别
应用服务
器
现象
磁盘空间满
引发问题
EAS
无法启动;
< br>客户端报
License
过期;
操作系统崩溃;
EAS
无法启动;
常见诱因
日志占满磁盘空间;
EAS
发生
Dump
;
大的升级或者补丁占用;
未停止
p>
EAS
情况下调整
部署结构;
EAS
进程故障;
内存参数超过操作系统
限额;
服务器远程会话注销;
JDK
Bug
引发;
换页空间用尽;
内存参数设置过大;
Apusic
License
不匹配;
防病毒软件冲突;
残留
EAS
进程没有停止;
并发压力过大;
部分业务功能异常;
内存参数不当,
GC
频繁;
EAS
内存参数设置过高;
EAS
内存泄漏;
其它应用占用过多内存;
Apusic
License
已过期;
升级后忘了替换
Apusic
Lic
ense
文件,集群环境
只替换了主实例,
未替换
其它实例;
2
残留
EAS
进程无法
停
止
EAS
进程消失
3
客户端报中断错误
4
EAS
无法启动
EAS
无法使用
5
CPU
持续高消耗
EAS
响应变慢,灰屏;
6
换页空间使用率高
EAS
响应变慢,灰屏;
EAS
、操作系统崩溃;
7
Apusic
License
失效
自动更新缓慢或者报错;
EAS
运行缓慢,灰屏;
Portal
功能慢,页面无法
正常显示;
数据库服
务器
磁盘空间满
8
操作系统、数据库崩溃;
事务日志占满空间;
数据库无法连接;
数据库运行日志过多;
EAS
报数据库异常;
EAS
响应变慢;
数据库参数设置不当;
统计信息过旧;
索引缺失;
功能缺陷;
9
CPU
持续高消耗
10
换页空间使用率高
EAS
响应慢;
操作系统参数设置不当;
操作系统,数据库崩溃;
数据库参数设置不当;
数据库运行异常;
其它系统影响;
EAS
响应慢;
EAS
响应慢;
数据库参数设置不当;
全表扫描过多;
未设置
EAS
临时表空间;
随时间推移逐步碎片化;
11
12
IO
等待率高
数据库碎片化严重
第
6
页
/
共
30
页
金蝶软件(中国)有限公司
13
数据库阻塞和死锁
EAS
响应慢;
EAS
部分功能或大面积
灰屏;
自动更新缓慢;
EAS
响应慢;
EAS
响应慢;
事务执行时间过长;
功能缺陷;
网络不稳定;
带宽被其它应用占用;
缺少
QoS
配置;
网络不稳定;
网络负荷过大;
网络受到攻击;
客户端内存泄漏;
浏览器插件影响;
防病毒,防火墙影响;
其它程序影响;
14
网络
网络带宽过低
15
网络延迟和丢包严
重
EAS
客户端内存消
耗持续增加
Portal
方式登录及
使用慢<
/p>
16
客户端
17
客户端越用越慢;
明确故障的具体类型后,参考下面
的章节针对具体类型问题的解决办法进一步处理。
2.4
磁盘空间满
这是一个容易被忽视的问
题,在我们支持过程中发生过多起因为磁盘空间满导致的故
障,包括应用服务器和数据库
服务器都存在,主要发生在
Linux
和
Unix
平台,其中
AIX
平
台见多。如果在应用服务器上出现类似问题,将会导致
EAS
无法启动,
EAS
可能报没有合
法的许可,
严重的可能导致操作系统故障。
如果发生在
数据库服务器,
则会导致数据库无法
连接,
EAS
功能报错等,错误信息可能包括无法扩展存储空间,无法创建连接等。
可能原因包括:系统日志写满磁盘,包括
E
AS
应用日志,数据库运行日志以及事务日
志,系统中的某些服
务日志等。由于
Linux
和
Unix
系统存储划分大都有配额管理,如果配
额分配不足,日志清理不
及时,比较容易导致空间满的问题。在
AIX
平台下,
IBM JDK
默
认在发生
OOM
时会生成
Dump
文件,<
/p>
文件可能会生成多个而且较大,
此时比较容易产生空
间不足的问题。
诊断方法:
#
1
检查磁盘空间占用情况
Linux
# df
Filesystem 1K-blocks
Used Available
Use%
Mounted
on
/dev/sda2 33665576
11376212 20579248 36% /
tmpfs
1038404 0 1038404 0% /lib/init/rw
udev 10240
44 10196 1% /dev
tmpfs
1038404 0 1038404 0% /dev/shm
2
AIX
# df
Filesystem 512-blocks Free
%Used
Iused %Iused
Mounted on
/dev/hd4 3145728
1240352 61% 10811 8% /
/dev/hd2 104071168 27652200
74% 315393 9% /usr
/dev/hd9var
2097152 910352 57% 79476 44% /var
/dev/hd3 4456448 1168840
74% 2786 3% /tmp
第
7
页
/
共
30
页
金蝶软件(中国)有限公司
/dev/hd1 16777216 11692400
31% 40780 4% /home
/proc
- - - - - /proc
/dev/hd10opt 18874368 3378824
83% 167095 28% /opt
3
HP-UX
# bdf
Filesystem kbytes used
avail
%used
Mounted on
/dev/vg00/lvol3 589824 296000
292080 50% /
/dev/vg00/lvol1
311296 191440 119016 62% /stand
/dev/vg00/lvol8 17301504 10098944
7179928 58% /var
/dev/vg00/lvol7
7831552 3026032 4768024 39% /usr
/dev/vg00/lvol4 212992 182512
30352 86% /tmp
/dev/vg00/lvol6
6324224 5108936 1205848 81% /opt
/dev/vg00/lvol5 524288 238112
283968 46% /home
4
Windows
地球人都知道。
解决办法:
1.
检查并清理日志文件。
2.
扩展存储空间。
2.5
残留
EAS
进程无法停止
这种情况也是导致
EAS
无法启动的常
见原因之一,
通常发生在
EAS
出现故
障时,对应
的
Java
进程可能处于异
常状态,导致无法执行停止命令。另外,当在没有停止
EAS
的
情况
下,重新部署
EAS
修改端口也可
能导致残留
EAS
进程无法停止,原因是
EAS
停止脚本会
根据配置文件中的端口号去连接
EAS
进程发出停止命令,但由于端口已经改变致使无法停
止
EAS
。
诊断方法:
#
检查是否存在残留
EAS
进程
1
Linux
、
AIX
、
# ps -ef | grep java
root
553058
1 0 15:35:10 pts/1 7:17
HP-UX
/usr/eas_gold/eas/jdk/bin/java -Xms256m
-Xmx1024m -verbose:gc
-Xverbosegclog:/u
sr/eas_gold/eas/server/profiles/server2/logs/jvm_g
c_2007
-11-22_ -ne=Asia/Shanghai
-DEAS_INSTANCE_NAME=server2
-DAPP_SERVER_HOME=/usr/eas_gold/apusic
-DAPP_SERVER_TYPE=apusic
-DEAS_HOME=/usr/eas_gold/eas
根据输出结果中的路径
信息判断是否是
EAS
进程,上例中
5
53058
为
EAS
进程号。
注:
HP-UX<
/p>
默认输出的命令行长度可能太短,无法提供足够的信息,可以通过修改
/etc/default/ps
文件,设置
DEFAU
LT_CMD_LINE_WIDTH=1020
,使
ps
p>
命令可以输出
更多内容。
如果存在残留的
EAS
进程,在启动
EAS
的时候可以看到如下输出:
p>
ception: Address already in
use
at (Native Method)
2
Windows
任务管理器可以
看到正在运行的
java
进程,如果系统中还有其它
java
程
第
8
页
/
共
30
页
金蝶软件(中国)有限公司
序可能,
可能无法判断是否是
EAS
的进程。此时可以在命令窗口中执行
eas/server/bin
下的
/v
得到详细的命令行信息,
判断是否是
EAS
的
java
进程。或者使用
其它进程管理软件来帮助判断。
解
决办法:
强行杀掉
EAS
对应的
Java
进程。
Linux
< br>、
Unix
:
kill -9
<
进程
ID
>
,
Windows
< br>:
在任务管理器中停止
EAS
进
程。
2.6
EAS
进程消失
进程消失通常是在操作系统检测到不应该发生的异常行为后,通知
Java
进程自行终止
或者强行将其终止。
如果
JVM
的内存参数
-
Xmx
设置过大,超过了操作系统的限制,在
JVM
扩展内存的时
候,
就可能会发生超过操作系统限额
而被操作系统终止的情况;
通常管理员都是远程登录到
服务器上
启动或者停止
EAS
服务器,
如果在退
出时注销了会话,
Windows
系统会把
EAS
进
程终止,
Linux
p>
、
Unix
在使用某些版本的
JDK
时会终止
EAS
进程
;如果操作系统内存紧张
导致页面空间消耗过大,
EAS
进程也可能会被操作系统牺牲掉以保障操作系统正常运行;
某些版本的
JDK
存在
Bug
,
在并发压力较大的情况下会出现
JVM
< br>执行非法指令或者非法访
问内存的情况,此时操作系统通常会毫不犹豫地将进程终
止。
#
检测
EAS
进程消失
1
Linux
、
AIX
、
p>
在
EAS
管理控制台中可以查看
EAS
进程(包括本机器上的所有
EAS
实
HP-UX
、
例以及
集群前置机)的状态,如果进程
ID
为空,状态为“停止”
p>
,则表
Windows
明对应的
EAS
实例没有启动,
如果之前并没有停止过,
则表明
EAS
进程
自行消失了。
解决办法:
1
.
Win
dows
环境下,可以将
EAS
注册成
一个服务,这样即使注销了远程会话,
EAS
也不会终止。
p>
Linux
、
Unix
环境则需检查相应的
JDK
版本,有类似问题的情况下,<
/p>
建议使用
EAS
所带的
< br>JDK
版本。
2
.
检查并
确认操作系统的相关参数没有问题。如果是
Windows
环境
,最大内存参数
不能超过
1536M
,
其中
Windows
2003
没有安
装
sp2
的情况下,最大只能设置为
1
024M
。
2.7
EAS
无法启动
EAS
无法启动虽然是比较严重的故障,但通常比较容易诊断,主要有以下几种成因
:
Apusic
License
非法
,可以从
Apusic
日志中看到相关的提示信息;有无法停止
的残留
EAS
进程,导致
EAS
启动的时候无法监听相应的
TCP
端口,同样
可以从
Apusic
日志中看到相
应的
异常信息;
最小内存参数
-Xms
设置
过大,
超过操作系统的限额,
使得
JV
M
无法初始化,
自然也无法启动
EAS
;
另外在
Windows
平台发现有卡巴斯基等防病毒软件和
JVM
有冲突导
致
EAS
无法启动的案例。
#
如何诊断
EAS<
/p>
无法启动的原因
1
< br>Linux
、
AIX
、
在管理控制台启动
EAS
的过程中查看
Apusic
日志,
如果没有看到有最新
HP-UX
、
的
Ap
usic
日志生成,通常是
JVM
无法
初始化引起,此时需要从命令行
Windows
方式调用
p>
startserver
脚本启动
EAS<
/p>
,查看控制台输出判断无法启动的原
因。
第
9
页
/
共
30
页
金蝶软件(中国)有限公司
请参考
[Apusic
Licens
e
失效
]
和
[
残留
EAS
进程无法停止
]
章节的描述进一
步诊断。在
Windows
中,可以检查事件查看器中是否有异常信息做进一
步判断。
解决办法:
1
.
根据操
作系统的内存大小以及集群实例的数量设定合适的内存大小,
避免超过系统内存
总量导致无法启动。
2
.
修改操
作系统参数,确保
JVM
可以使用足够多的内存。如果是
Windows
环境,最大内
存参数不能超过
1536M
,其中
Windows <
/p>
2003
没有安装
sp2
的情况下,最大只能设置为
1024M
。
3
.
< br>升级防病毒软件或者更换其他类型的防病毒软件,避免和
JDK
< br>之间的冲突。
2.8
CPU
持续高消耗
< br>CPU
出现短暂的高消耗是正常的,一个服务请求需要一个
CPU
来处理,碰到一些耗时
的操作,会出现一段时间某个<
/p>
CPU
100%
的情况。但如果所有<
/p>
CPU
的使用率都居高不下,
伴随着系统
性能的快速下降,以及个别
CPU
长时间
100%
,都是不正常的。
应用服
务器某个
CPU
出现持续
100%
p>
的情况,可能存在程序上的问题,导致
CPU
消耗
一直很高,另外内存参数设置过低或者内存存在泄漏,可能引发频繁
GC
,也会出现
CPU
利用
率偏高的情况。
数据库服务器出现某个
CPU
< br>持续
100%
的情况,
可能碰到
执行计划效率
过低的情况。
诊断方法:
#
检查
CPU
是否存在持续高消耗的情况
1
Linux
#
vmstat 5 1440
间隔
5s
收集
1440
次(
2
小时)
procs
-----------memory---------- ---swap-- -----io----
--system-- ----cpu----
r b swpd
free buff cache si so bi bo in
cs us sy id wa
2 0 2328 388084
38388 1647204 0 0 1 2 1 2 2
1 97 0
7 1 2328 373940 38404
1648748 0 0 0 337 3130 17300 41 6 53
0
2 0 2328 355828 38424 1650548
0 0 0 348 3110 17184 43 6 51 0
需要重点关注的列:
r :
当前正在运行的内核线程,如果数值总是超过
CPU
的数量,说明系统的
负荷过重。
b :
被阻塞的线程,阻塞的原因通常是在
等待
IO
,如果持续有阻塞的线程,
说
明
IO
存在瓶颈。
us
:
user
进程的
cpu
占用率,如果持续很高,反映
CPU
很繁忙。
sy :
操作系统内核的
CPU
占用率,如果持
续很高是不正常的。
id
:空闲率,越高说明系统越闲。
wa
:等待率,通常是
IO
等待,如果持续
超过
30
,说明有比较严重的
IO
p>
问
题。
或者
# top
查看操作系统的顶级活动
第
10
页
/
共
30
页
金蝶软件(中国)有限公司
2
AIX
# vmstat 5 1440
kthr memory page
faults cpu
----- -----------
------------------------ ------------ -----------
r b avm fre re pi po fr sr
cy in sy cs us sy id wa
3 0
985069 81881 0 0 0 0 0 0 1 4632
1320 2 1 97 0
2 0 985070 81882 0
0 0 0 0 0 1 1903 1190 1 1 99 0
#
topas
查看操作系统的顶级活动
3
HP-UX
# vmstat
5 1440
procs memory
page faults cpu
r b w avm free re
at pi po fr de sr in sy cs
us sy id
1 1 0 1359926 177584
237 10 0 0 0 0 0 1575 13289
654 10 1 89
1 1 0 1407419
177484 279 13 0 0 0 0 0
1106 5451 257 1 0 99
# top
查看操作系统的顶级活动
4
Windows
打开任务管理器
(按
Ctrl+Shift+ESC
组
合键)
,
点击
“性能”
页签,
查看
CPU
总体利用率
,点击“进程”页签,点击列标题“
CPU
”
< br>,可按
CPU
利用率排
序。
p>
解决办法:
1
.需要专家协助诊断解决。
2.9
换页空间使用率高
换页空间使用率过高通常意味着内存资源吃紧,
可能会导致频繁的换页操
作降低系统运
行性能,如果换页空间使用率超过
60
%,并且有增加趋势,可能引起应用以及操作系统故
障。
< br>
诊断方法:
#
检查换页空间使用情况
1
Linux
# swapon
–
s
Filename
Type Size
Used
Priority
/dev/mapper/VolGroup_ID_5977-LogVol0
partition 1769464 2328 -1
2
AIX
# lsps
–
a
Page Space
Physical Volume Volume Group Size
%Used
Active Auto Type
hd6 hdisk2
rootvg 2560MB 11 yes yes lv
3
HP-UX
#
swapinfo
Kb Kb
Kb PCT START/ Kb
TYPE
AVAIL USED FREE
USED
LIMIT RESERVE PRI NAME
dev
16777216 52 16777164 0% 0 -
1 /dev/vg00/lvol2
reserve -
5098036 -5098036
memory 8376408
1867580 6508828 22%
第
11
页
/
共
30
页
金蝶软件(中国)有限公司
4
Windows
使用性能监视器
2
监控
Paging File
中的
p>
%Usage
,
%Usage
Peak
。
解决办法:
1.
调整
E
AS
、数据库系统的内存相关参数,保证足够的物理内存可用。
2.
如果是其它应用引起,协调客户解决其它应用的内存问题。
2.10
IO
等待率高
由于应用服务器主要处理业务逻辑,除了向磁盘写一些日志外,没有其它
IO
操作,通
常不会有
IO
等待问题,除非内存紧张导致频繁换页而产生较高的
IO
等待。
数据库服务器
会处理大量的数据,比较容易发生高
IO
等待的情况,比如存在大量的表扫描,或者存储设
备的
< br>IO
吞吐能力有限等。
诊断方法:
#
检查
IO
等待情况
1
Linux
、
AIX
、
HP-UX
利用
vmstat
可以诊断是否存在较高的
IO<
/p>
等待情况。请参见
[
CPU
持续高消
耗
]
章节的描述。
还可以使用
iostat
,
sar
等操作系统命
令等进行诊断,请查看相关命令的文
3
档
。
使用性能监视器监控
Physi
calDisk
中的
%Disk
Time
,
Avg. Disk Queue
Length
,
Disk Read
Bytes/sec
,
Disk Write
Bytes/sec
。
2
Windows
解决办法:
1.
检查存储设备是否存在瓶颈或者故障并排除。
2.
检查操作系统、数据库参数配置是否不当并调整。
3.
专家协助分析。
2.11
Apusic License
失效
除了
EAS
有
License
控制,
Apusic
也
有,
这个问题往往容易引起忽视,
导致
Apusic License
过期引起自动更新以及
Port
al
方式使用的问题,在
EAS
集群环
境下,每个
EAS
实例对应一
个
Apusic
实例,而每个
Apusic
p>
实例下面都需要复制一份
License
文
件
4
。
诊断方法:
#
检查
Apusic
License
是否过期
1
Linux
、
AIX
、
HP-UX
、
Windows
p>
在启动
EAS
的过程中或者从
Apusic
的启动日志中查看
Apusic
License
输
出信息。
如果是没有
License
限制的状态,可以看到类似如下输出内容:
IP granted to 192.168.1.1
2
3
请参考
[
错误!未找到引用源。
]
章节中关于性能监视器的使用说明。
取决于操作系统类型以及是否安装了相关组件,不一定可以使用这些命令。
4
目前
EAS
使用的
Apusic
为
4.0.3
版本,将会支持的
Apusic 5
.1
版本所有实例只需一份
License
文件。
第
12
页
/
共
30
页
金蝶软件(中国)有限公司
No
time limits
No connection limits
5
如果没有
License
或者
License
已
经过期,可以看到如下内容
:
Licensed from 2006-07-26 to 2088-09-13
Connections limited to 15
<
/p>
如果
License
和
< br>IP
地址不匹配,
Apusic
将无法启动,
ERROR [] IP not
granted for 192.168.1.1
如果<
/p>
License
文件格式错误,
例如把<
/p>
EAS
License
文件当成
Apusic
License
了,则会看到如下输出信息:
< br>
ERROR [] Server cannot start
without a valid license
解决办法:
1
.更换正确的
License
文件、购买并申请合法的
License
文件。
2.12
数据库碎片化严重
无论是文件系统还是数据库系统,随着时间的推移,或多或少都会存在碎片化的趋势,
如果碎片化程度不高,
通常不需要处理。
从已经
处理的案例来看,
数据库碎片化问题最容易
发生在使用
Oracle
10g
的环境中,主要原因是
Oracle
10g
默认会打开回收站(
Recycle Bin
)
选项,删除的对象会放到这个回收站中而不是真正删除,而
EAS
会使用特有的临时表(利
用固定表实现,表名
为
ZT
或者
VT
开头的就是)来满足业务上的处理需求,这类表会被比
较频繁的创建和删除,如果
p>
EAS
临时表和数据表共用同一个表空间,则会导致碎片化的趋
p>
势加剧,从而引发性能问题,严重的情况下,会导致
EAS
性能大幅度衰减。
诊断方法:
#
如何判断数据库的碎片化程度
1
Oracle
进入
sqlplus<
/p>
,执行如下
SQL
。
SQL> select
tablespace_name,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name
order by 1;
TABLESPACE_NAME
FSFI
------------
-----------------------------------------
----------
EAS_D_ABC_STANDARD
66.2830849
EAS_D_ABC_TEMP3
64.8341444
EXAMPLE
67.3910029
SYSAUX
10.9872698
SYSTEM
81.2139268
UNDOTBS1
48.4495682
5
即使没有购买
Apusic License
< br>,默认也会有
15
个连接的开发
License
,在生产环境通常是不够用的。
第
13
页
/
共
30
页
金蝶软件(中国)有限公司
USERS
100
FSFI
列即代表自由空间
碎片索引(
Free
Space
Fragmentation
Index
)
,其值
越小,反映表空间的碎片化程度越高,如果低于<
/p>
10%
,则应该进行表空间
整理以消除碎
片。如果这个
SQL
执行需要时间很长才能出来,同样反映表<
/p>
空间碎片化比较严重,见过执行
10
几分
钟才能输出结果的案例。
解决办法:
3
.
为
p>
EAS
临时表创建专门的表空间,
EAS<
/p>
管理控制台里数据中心管理中的存储管理
功能可以自动完成此工作
,完成后请反部署再部署一下数据中心(集群环境需要
在每个实例中做此反部署、部署动
作)
。
4
.
通过逻
辑备份和恢复(
exp/imp
或者
e
xpdp/impdp
)来消除碎片,需要停机操作。
5
.
Oracle 10g
以上版本有表空间重组
< br>(
reorg
)
功能,
可以在线重组,
做之前请先做备
份。
2.13
数据库阻塞和死锁
首先要明确阻塞和
死锁是两个不同的概念,
阻塞指的是一个事务在等待另外事务释放锁
定的资源才能继续运行,
而占用资源的事务可能需要执行较长时间才能完成,
导致第一个事
务出现等待,等的时间长了,就会形成阻塞,
如果出现大面积的阻塞,
对性能会产生严重影
响。
如果第二个事务继续运行的过程中发现其所需要的资源又被第一个事务所占用,
就会形
成相互等待的情况,
这就是死锁,一旦发
生死锁,
就必须牺牲一个事务,否则大家都无法继
续运行,
p>
通常数据库会自动检测死锁并牺牲其中一个事务。
从这一点来看阻塞
比死锁造成影
响可能会更大。
SQL
Server
和
DB2
都有读锁,如果有许多长时间的事务在执行,可能会占用大量的资
源而造成其它
事务等待,形成阻塞,直到长事务执行结束。
Oracle
数据
库没有读锁,其采用
了特有的机制来保证读一致性而不会阻塞其它事务,所以
Oracle
数据库出现阻塞的几率会
更小一些。
诊断方法:
#
如何判断数据库出现了阻塞
1
通用
如果出现如下现象,基本可以判断是发生了阻塞。
1.
应用服务器、
< br>数据库服务器
CPU
和
IO
p>
都不忙,
应用服务器个别
CPU
可
能出现持续
100%
占
用的情况。
2.
< br>EAS
某些功能一点击就会灰屏,但其它功能又正常。
Oracle
9i
可以用
Enterprise Manager
的性能视图和锁视图查看所占用的
情况来分析,
如
果发现有锁长时间不释放、
大量锁定,
并且有大量的
enqueue
等待事件,则说明发生了阻塞。
Oracle 10g
可以利用基于
W
eb
的
Enterprise Manager
来分析阻塞,从顶
级活动、阻塞会话、实例锁等多个功能来判断是否发生了阻塞
。
请参考
[
DB2
锁日志信息收集
]
章节中关于锁
等待部分的描述。
2
Oracle
3
DB2
4
SQL Server
SQL Enterprise
Manager
中的
管理
|
当前活动
|
锁
/
进程
ID
中查看当前的
活动会话,如果发生阻塞会有明显的指示。
第
14
页
/
共
30
页
金蝶软件(中国)有限公司
解决办法:
1
.
找到引起阻塞的会话或者进程,强行中止其运行。
2
.
对于严重阻塞的情况,可能需要重启数据库。
3
.
专家协助分析处理。
2.14
网络质量问题
网络质量不稳定对
p>
EAS
的运行性能可能产生较大的影响,网络质量的评价指标主要包
括带宽、延迟、丢包率等。要保障
EAS
正常运行,对于网络质量有如下要求:
1
< br>、每客户端
128kbit
的带宽保障,多人共用出口时
,带宽要求:客户端数量
×
128/3
。
2
、
网络延迟低于
50ms
,丢包率小于
2
%
。
延迟
50ms
,丢包率
2%
两个条件同时存
在时,
使用系统会觉得
“
有点慢
”
,如果延迟超过
100ms
,
没有丢包现象的话,
性能会有明显衰减,
但应该在可接受的范围,
如果还伴随丢包,
带宽不
稳定,性能衰减就会比较大,这时候系统可能就难以使用了。
根据我们的支持经验,
1
、客户使用专线的情况下,延迟超过
100ms
,
通常意味着网络已经出现问题,同时会
伴随丢包,带宽不稳定等问题。
< br>
2
、
如果是基于
Internet
的
V
PN
,
由于网络质量受当时
Inter
net
稳定性的影响,
可能会出
现网络
质量较大波动的情况。
3
、如果总部和分支机构采用不同运营商的线路(比如总部使用电信,但分支机构使用
网通)
,网络质量可能较难保证。
如果存在不同运营商线路互联,
网络质量不稳定的情况,
在总部同时有不同运营商的出
口线路应该是比较好的解决方案,或者选择统一的运营
商。
诊断分析方法:请参考《
p>
EAS
网络质量分析诊断方法》文档。
2.15
客户端内存泄漏
如果客户端存在内存泄漏的情况,会导致的一个现象就是
EAS
越用越慢,间歇性出现
白屏的情况,还可能会出现
OutOfMemory
的异常报错信息。如果客户端经常需要使用处理
大量数据的功能点,
比如非常大的报表业务等,
会需
要很多的内存来处理,
可能也会导致系
统变慢的情况。
诊断方法:
#
如何判断客户端存在内存泄漏
1
Windows
关闭所有非系统页签,调出
< br>EAS
主界面系统菜单中的系统信息功能,查看
jvm<
/p>
内存的使用情况,点击“回收内存”按钮后,正常情况下应该占用数
十
M
左右,如果达到
200
多
M
或者更高,说明存在明显的内存泄漏。
p>
当怀疑是某个功能引起的内存泄漏时,可以通过多次操作该功能后
退出,
再检查
jvm
内存占用,如果内
存出现持续增长不能释放的情况,即可判定
此功能存在内存泄漏。
解决办法:
第
15
页
/
共
30
页
-
-
-
-
-
-
-
-
-
上一篇:高三成语训练40题(附完整版详解答案)
下一篇:成语歌诀