注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王丽君 廊坊师范学院信息技术提高班十一期

 
 
 

日志

 
 

什么是高并发?  

2015-01-04 20:07:31|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


前言

昨天,三合班开会,涨了很多的见识。首先想说一句,师哥师姐辛苦了!

前两天儿,米老师问过我们一个问题:这次评教出了问题,遭到了这么多同学们的唾骂,你们感到难过还是高兴呢? 我们当然是感到难过了,但是老师说他很高兴,终于等到了这一天。为什么呢?因为这件事情让提高班的同学们都认识到了一个词——高并发

虽然在技术上我还听不懂师哥讲的内容,但是,大体能听懂导致这场“灾难”的原因。也让我认识到了的重要性。

下面来看一下高并发高负载情况下常见的3种性能问题:


1. OS swapping/paging 引发的数据库concurrency方面的性能问题
Oracle数据库在工作的时候, 对于latch/mutex这样的轻量级的”锁”,我们期望它是可以非常快的获取/释放的(这些操作都是对内存的操作,而内存的操作正常时候也确实都是很快的). 但是如果OS发生了大量的swapping/paging的情况下,那么对内存的操作会变慢,那么latch/mutex的操作就会变慢,在并发大的情况下就会发生hung/slow的情况.
引发swapping/paging的常见情况有:
a). 内存短缺
b). 内存并不短缺; 但短时间内, 有大量的新进程分配了很多内存
c). 拷贝大文件/备份数据库 使得操作系统的高速文件缓存突然激增
对应的调优方式:
Lock SGA, 这样SGA(相应的latch/mutex)就会被pin在内存里而不受swapping的影响.
如果在SGA很大的情况下,同时使用large page(hugepage)技术,减少latch/mutex获取/释放的时间.
2. SGA resizing引发的数据库性能问题
在AMM/ASMM内存自动管理的机制下, shared pool和buffer cache及其它几个component可以根据需要自动调整大小,避免ora-4031的错误.但是在高并发的情况下,短时间内频繁的resize的过程会使得一些内存操作(如latch/mutex的获取释放)的时间变长, 有很大几率触发各种latch/mutex争用. 而且如果shared pool被resize时减少的太多,那么latch/mutex的争用也会加剧.
引发这种问题的原因: 
有些是因为bug; 但是从深层次的角度考虑,这种resize的操作不可避免的会对性能有影响,只是影响的程度不同罢了. 而且bug的fix也只是减缓这种操作的impact, 而不能完全避免这种影响.
推荐的调优方式:
1). 设置buffer cache和shared pool的值(在内存自动管理的情况下,这个值会作为最小值)
2). 设置resize的频率不能少于16分钟
alter system set "_memory_broker_stat_interval"=999;
Disable AMM/ASMM也可以作为一个方法,但是缺点是: 碰到ora-4031的几率会比自动内存管理大.
3. DDL引发的数据库性能问题
这种情况只发生在高并发高负载的情况下.
对于一个使用频繁的表做DDL (比如grant, 修改表定义, 收集统计信息等等),那么用到这个表的所有的SQL语句都会被invalidate掉;如果使用这个表的SQL语句很多并且执行频率很快,那么在短时间内需要hard parse 的 SQL语句就会很多. 这就变成了一种 “hardparse storm”, latch/mutex的争用就不可避免, 还有library cache lock/row cache lock也会变多; 严重的时候数据库就会slow/hung.
推荐的调优方式:
不要在负载高的时间段做DDL

说了这么多,到底什么是高并发,大家应该早就心知肚明了。并发就是可以使用多个线程或者多个进程,同时处理不同的操作。

实现代码永远是最最不重要的,借用米老师的一句话:航天工程不伟大,伟大的是嫦娥奔月的故事。

什么是高并发? - 王丽君 - 王丽君 廊坊师范学院信息技术提高班十一期

 

  评论这张
 
阅读(117)| 评论(25)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017