`

一次增加内存引发的血案 (由pre_page_sga引发的)

 
阅读更多

把我在itpub上的帖子抄过来..警示自己.

http://www.itpub.net/thread-1318170-1-1.html

昨天对一台服务器增加内存 顺带插一块HBA卡,装HBA卡的驱动...win 2003 64bit ,ora 版本10.2.0.4.0 ,机器IBM 3850 M2 7233
原本8G,加完后16G,
把sga_max_size ,sga_target改好,启动数据库,把应用也启动,
接着奇异的事就来了~ 随着前台的应用的增长 反应速度越来越慢, 并且速度是慢在连接数据库的那一会儿
(我们是短连接,断开式连接,无共享池,专用模式)
....接着应用的压力达到正常水平后,数据库基本没法使用了..
这时 tnsping ,返回至基本在500~1000ms左 右,慢得离谱,正常值应该在10~100ms.

(但是在应用服务器上ping 数据库服务器, -t -l 60000的包,返回时间<15ms )

我手工SQLplus连接数据库,连接的那一会确实非常慢,5~10秒不等, 连上了后面查询数据速度不慢,均正常.
这点可以从AWR报告里看出.

接着折腾了1小时,还临时换了个2万元的交换机过来...(这里折腾了一会, ping 大包,返回时间已经可以<1ms,但是无奈tnsping仍然很慢).

诊断无果,最后把内存,HBA卡拔了...结果就恢复正常了..
大伙有无遇过类似这样的事..?

后来想起,我当时应该弄个trace的,诶,过于着急,当时是生产机,对停机时间有严格要求...

QUOTE:原帖由 lfree 于 2010-6-25 15:51 发表
应许是你根本没有加到内存,使用swap做内存。
这一点 我还是能确认的,因为我改了sga_max_size, 和target, 并且启起来了(原本sga是4G左右,改后是9G), 也相应把虚拟内存加到8G了,
最后,即使我把sga_max_size, 和target 调整回原来的4G, 问题仍然是存在的,我用了pre_sga,由于是windows无法用lock sga
但是如果想确认 DB是否一直在用虚拟内存, 当时如果能记起用perfmon来看就好了
T.T 无奈时间紧迫...


/****************************************************************************************************/
第二次编辑的分割线
/****************************************************************************************************/
枯荣长老 21:29:59
On a sensibly configured system you would not expect paging to be
a problem. There have been several performance problems in the
past related to setting this parameter to TRUE. If you experience
delays connecting to Oracle and this parameter is set to TRUE
then it may be worth checking performance with it set to FALSE.
This is more likely to be a problem with large SGAs.

枯荣长老 21:31:15

PRE_PAGE_SGA can increase the process startup duration, because every process that starts must access every page in the SGA. The cost of this strategy is fixed; however, you might simply determine that 20,000 pages must be touched every time a process starts. This approach can be useful with some applications, but not with all applications. Overhead can be significant if your system frequently creates and destroys processes by, for example, continually logging on and logging off.

pre_page_sga 为true时, 每个进程创建的时候都会去touch一遍sga里的page, 当sga越大的时候,这个touch所消耗的时间就越长,
特别是在断开式连接,短连接的Application上, 将会消耗很多资源.

枯荣长老的提示一针见血, 之后 set pre_page_size =false 后, 就恢复正常了, tnsping 的返回值在10~20ms 之间.

之前之所以没有问题,估计是因为4G的SGA 配合上 pre_page_sga=true 再加上我们应用上的并发压力, 并没有突破这个性能slow的临界点(我猜测并发如果再大一些的话,应该也会突破这个点),其实隐患一直都存在了,这个pre_page_sga=true就一直用到最近, 结果那天一加内存 ,变成了9G的SGA, 估计touch 4G的SGA和9G的SGA差别很大 ,问题就立马暴露出来了.

本问题结束,希望以后类似的血案不再发生....

去年急忙上系统时,临时啃了啃文档,调了些参数就上线了 ,由于当时是第一次接触oracle ,对参数理解不够充分 埋下了隐患..

反省 反省, 还是需要多看文档,多总结 ..

from:http://www.cnblogs.com/dap570/archive/2010/06/29/1767663.html

分享到:
评论

相关推荐

    SGA.rar_SGA_SGA MATLAB_遗传算法 可_遗传算法matlab

    《SGA.rar_SGA_SGA MATLAB_遗传算法 可_遗传算法matlab》是一个关于遗传算法(Genetic Algorithm, GA)在MATLAB环境中的实现压缩包。遗传算法是一种基于生物进化理论的全局优化方法,广泛应用于工程、科学计算、机器...

    2009Sep_SGA__suspension_FalphaSMC_skycontrol_smc_利用smc控制_kitchen

    标题中的“2009Sep_SGA__suspension_FalphaSMC_skycontrol_smc_利用smc控制_kitchen”暗示了这是一个关于2009年9月期间的项目,涉及SGA(可能是System Global Area,Oracle数据库的一个组件)、FalphaSMC(可能是一...

    SGA.zip_SGA_SGA MATLAB_in

    Simple genetic algoritm in matlab

    2009Sep_SGA__suspension_FalphaSMC_matlab仿真模型_skyhook_vehicle_半主动

    标题中的“2009Sep_SGA__suspension_FalphaSMC_matlab仿真模型_skyhook_vehicle_半主动”揭示了本次讨论的核心内容。这是一个关于2009年9月进行的研究项目,主要涉及半主动汽车悬架系统,利用MATLAB进行仿真建模,并...

    SGA.rar_SGA fortran_sga fortr_实数编码 遗传算法_遗传算法 fortran

    在实数编码中,个体通常由一组连续的实数值表示,这些值代表了潜在解的不同特性。这种编码方式减少了转换编码与解之间的复杂性,使得算法可以直接在实数空间中进行操作,提高了求解精度。 SGA.f90是这个压缩包中的...

    SGA.rar_SGA_遗传算法

    SGA(Simple Genetic Algorithm,简单遗传算法)是一种模拟生物进化过程的优化算法,它在解决复杂问题时展现出强大的全局搜索能力。遗传算法是基于自然选择、遗传和突变等生物进化原理的一种计算方法,通常用于寻找...

    SGA.rar_SGA_单目标_单目标函数_求函数最值_遗传层次

    在标题“SGA.rar_SGA_单目标_单目标函数_求函数最值_遗传层次”中,关键词“SGA”指的是遗传算法(Simulation Genetic Algorithm),它是一种基于模拟自然选择和遗传机制的搜索算法。而“单目标”表示这里的优化问题...

    SGA.zip_SGA_收敛函数_遗传算法 收敛

    《SGA.zip——深入探索遗传算法的收敛特性与MATLAB实现》 在现代优化领域,遗传算法(Genetic Algorithm,简称GA)作为一种基于生物进化原理的全局搜索技术,已广泛应用于多目标、复杂问题的求解。本压缩包“SGA....

    PID SIMULINK.zip_SGA_SIMULINK_pid simulink_simulink pid_simulin

    标题中的“PID SIMULINK.zip_SGA_SIMULINK_pid simulink_simulink pid_simulin”似乎是指一个关于PID控制器的Simulink模型文件集合,其中可能包含了与SGA(可能是某种特定系统的缩写)相关的Simulink模型,以及一些...

    SGA_遗传算法_matlab

    资源名:SGA_遗传算法_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员

    在linux平台用hugetlbfs模拟lock_sga

    在`/etc/sysctl.conf`中增加`vm.nr_hugepages`,设置为比SGA_max_size多一个页面的值(这里为260)。然后,确认Oracle用户的uid和gid。在`/etc/fstab`中添加一行,挂载hugetlbfs,并设置权限。 - **步骤4:创建和...

    Oracle_SGA

    - **自动内存管理(Automatic Shared Memory Management, ASMM)**:如果设置了`SGA_TARGET`参数为非零值,则会启用ASMM。这允许Oracle根据内存需求自动调整SGA中自动管理的组件大小。 - **启用条件**:要启用ASMM,...

    基于MATLAB遗传算法_SGA_实现

    ### 基于MATLAB遗传算法_SGA_实现 #### 概述 本文介绍了一种基于MATLAB的基本遗传算法(Simple Genetic Algorithm, SGA)的实现方法,并通过构建工具库函数来验证其实现的有效性。遗传算法作为一种全局优化技术,在...

Global site tag (gtag.js) - Google Analytics