XX管理信息系统报告系统运行缓慢,具体症状情况如下:
工作日在上午业务办理高峰期的运行速度比较缓慢,每步操作耗时达十几分钟到半小时以上。
- 分析步骤:
1. 软硬件平台
此服务器为联想曙光服务器,8CPU,4G内存.操作系统为win2000,OS实际使用内存2.5G.此服务器目前仅用来运行本系统.从每日数据吞吐量来看,理论上软硬件平台配置不存在瓶颈.
2. 系统性能分析
使用任务客理器查看服务器系统性能使用状况,发现CPU和内存使用都处于较低的水平,CPU峰值不足10%,系统高峰运行时内存使用仅为160M.据此可推断本系统未充分利用服务器的资源
3. Oracle内存分析
Oracle的内存管理是相当重要的环节,涉及许多方面,往往需要具体问题具体分析,具体可参考内部文档《Oracle性能调整指南.doc》
本次优化主要针对oracle的配置文件INIT.ORA进行。
“
数据库服务器内存分配策略:
内存共享池 + 数据缓冲区 + 系统及其他软件占用内存 + 空闲内存 = 服务器物理内存
”
(9i版以上需要考虑日志缓冲区和JAVA池,由于占用资源不大,故未提及)
一、内存共享池调整
高速缓冲存储器库将会帮助解决在存储句法分析的SQL语句到内存中的问题。所以同一句语句,如果再次(任何用户)提及,将不会在分析。但是因此,我们需要在高速缓冲存储器库中准备足够的空间来保存SQL语句。下述查询将有助于我们标明高速缓冲存储器库的高效性。
PIN意味着高速缓冲存储器命中(从内存中读取)且RELOAD意味着高速缓冲存储器库没有命中(从磁盘中读取),因此造成更多的读写操作)。
select sum(pins) "Pins",
sum(reloads) "Reloads",
sum(reloads)/(sum(pins)+sum(reloads))*100 “Percentage”
from v$librarycache;
如果百分比的值大于1,那么意味着共享池的规模需要增大。
此项分析的实际的结果值确实大于1,综合考虑服务器与本系统实际使用情况,决定将oracle内存共享池大小调整为1G.具体方法为修改INIT.ORA文件的shared_pool_size参数,修改为1G.
二. 数据库高速缓冲区
数据库高速缓冲区存储由磁盘数据文件读入的数据。
数据库缓冲区内存大小=DB_BLOCK_BUFFERS×DB_BLOCK_SIZE
考虑本系统实际情况,本此优化分配500M数据库缓冲.具体为修改DB_BLOCK_BUFFERS参数。
三. oracle数据库的用户连接数processes
原配置中连接数为100,考虑实际情况,本次未修改连接数。
-
优化结果:
经过本次数据库服务器优化,整体系统性能得到大幅提升, 平均操作性能提升数倍,得到了客户的肯定。