数据库性能优化
这个错误主要就是因为应用系统打开了太多的文件句柄。因为在Unix 下,默认一个用户只能打开2000个文件句柄。一旦出现这个错误, weblogic将无法对外提供响应。
这个可以通过增加资源限制中的nofiles的值来解决。
大纲
• 操作系统优化 • 网络优化 • 数据库优化 • 中间件优化 • 应用优化
数据库优化
数据库对象争用 数据库对象的争用,主要是指表、索引、序列等的争用。 争用这个意思也很好理解,一个对象被引用的多了自然就
网络优化
网络的问题主要是两个方面:响应时间和吞吐量。
网络优化
响应时间 这里的响应时间主要是查找和连接网络的时间。响应
时间过长的常见原因是DNS的解析造成的。
案例:DNS解析造成服务启动慢 海南EIP在项目实施中,遇到服务启动很慢的问题,
一个服务的启动时间需要20多分钟。后来发现系统走了 DNS解析,没有走本地解析。修改为本地解析后,启动 时间缩短为4分钟左右。
大纲
• 操作系统优化 • 网络优化 • 数据库优化 • 中间件优化 • 应用优化
数据库优化
目前我公司系统使用的数据库主要是Oracle。Oracle 优化主要从5个方面来考虑:软件版本、内存、CPU、IO、 数据库对象争用和SQL。
数据库优化
软件版本 软件版本可以从两个方面考虑,与操作系统响应的版本、与版本相
案例:内存设置太小造成性能问题 有人反映,他的系统很慢,感觉主要是数据库慢。连上
去看他的数据库,发现SGA只有300M,PGA只有几十M。 按照70%的比例进行调整后,发现数据库性能明显提高,相 应的系统吞吐量也大幅提高。
数据库优化
CPU优化 这里把Oracle中的Processes归为CPU方面,其实也不
使用系统临时表空间,从而引起资源竞争。上次东莞供电局 邀请第三方做性能诊断时,看到我们的用户没有建立单独的 临时表空间。对于这种常识性的错误,被别人揪出来会让人 怀疑我们的专业性的。 案例:尽量关闭数据表空间的自动扩展功能
在建表空间时就应该估算到表空间的大小,至少是未来 一段时间的空间大小。而不要使用自动扩展,因为自动扩展 在实时系统上也是很影响性能的。
Processes的值时,则会出现连接失败而等待。这时候增大 Processes的值就会消除这种等待而提高性能。户使用自己单独的临时表
空间、尽量关闭数据表空间的自动扩展功能。
案例:每个用户使用自己单独的临时表空间 如果没有给用户设置单独的临时表空间,那么用户就会
操作系统优化
内核问题 内核问题主要是内核参数的设置方面。
这个参数主要是分为两部分:内存相关的和网络相关的。 比如:我们在安装Oracle时未按照官方说明,修改内存 相关的内核参数,就会导致无法使用大的共享内存块。 再比如,一些网络参数会影响weblogic的吞吐量。
案例:适当调整udp_sendspace值 网络参数udp_sendspace是UDP的发送缓存,默认
值为8K,为减少I/O异常,需调整为32k。
操作系统优化
资源问题 Unix和Linux对每一个用户
都有一个资源限制。这些限制 可能包括能创建的文件大小、 能同时打开的文件数量、能同 时启动的进程数、能使用的最 大内存等。UNIX环境中可以使 用ulimit查看。
案例:适录调整nofiles值 在东莞和南海都遇到了以下错误:
关的补丁。 如果版本与操作系统不一致,即便能跑起来,也会产生系统问题。
另外,有些版本本身有bug,这些bug可能会造成性能问题,所以需要 打上补丁。一般2.4以上的版本被视为稳定版本。
案例:64位机器上安装32位oracle的性能问题 惠州供电局原来的数据库服务器cpu是64位,但是为了图方便,安
装了32位windows 2003和32位的oracle 10g,造成只能使用1.7g左右的 内存,对于8g内存的机器来说,很浪费。后来按照oracle给出的扩大内 存的方法进行调整,依然无效。原因就是该机器cpu是64位的。
网络优化
吞吐量 吞吐量主要是指网络的传输速度。这里只讨论网络设
备的设置问题。
案例:交换机传输模式影响网速 由于惠州供电局交换机传输模式是“半双工自适
应”,造成网速很慢,表现为我们的系统响应很慢,后 改成“全双工”模式,系统响应速度明显提高,输电部、 计量部、变电部登录系统时间,及不同设备界面切换时 间响应在2秒以内。
后来改装64位windows 2003和64位oracle 10g,性能提高了几倍。
数据库优化
内存优化 一般Oracle建议将操作系统物理内存的70%分配给它。
比如,物理内存是8G,则分配给Oracle的内存就是5.6G。 Oracle的内存主要分两块:SGA和PGA。按照70%的物理 内存来划分,则是: SGA为60%, PGA为10%。
准确。主要是考虑到它们和CPU的利用率有关。 Processes参数表明允许同时运行的最大服务器进程数。
在独占式连接模式下,一个 Session就启动一个Process,你也可以认为建立一个
JDBC连接就启动一个Process。
案例:Processes设置太小造成性能问题 如果Weblogic中JDBC连接池需要建立的连接数大于
性能问题探讨
2009年9月
架构
操作系统 网络 数据库 中间件
应用系统
一层 二层 三层 四层 五层
我们的系统部 署方式虽然多种多 样的,但是从整个 系统架构来说,不 外乎左边图所示的 结构。
大纲
• 操作系统优化 • 网络优化 • 数据库优化 • 中间件优化 • 应用优化
操作系统优化
目前我公司应用系统部署到的操作系统有:AIX、HP-UX、 Solaris、Linux、Windows 2003。操作系统引起问题的地方主 要有两个方面:内核问题和资源问题。
<BEA-002616> <Failed to listen on channel "Default" on 10.150.181.205:7001, failure count: 10, failing for 45 seconds, .SocketException: Too many open files>