前言
这篇blog是基于处理oracle数据库性能问题的经验写就,它是对常见的性能问题做的总结,它的适用范围:
高并发高负载的系统. 需要先申明的是: 对于所有的调优的方法,都是有适用范围的; 所以下面提到的所有的内容,请”
批判性”阅读.
1. OS swapping/paging 引发的数据库concurrency方面的性能问题
Oracle数据库在工作的时候,
对于latch/mutex这样的轻量级的”锁”,我们期望它是可以非常快的获取/释放的(这些操作都是对内存的操作,而内存的操作正常时候也确实都是很快的).
但是如果OS发生了大量的swapping/paging的情况下,那么对内存的操作会变慢,那么latch/mutex的操作就会变慢,在并发大的情况下就会发生hung/slow的情况.
引发swapping/paging的常见情况有:
a). 内存短缺
b). 内存并不短缺; 但短时间内, 有大量的新进程分配了很多内存
c). 拷贝大文件/备份数据库 使得操作系统的高速文件缓存突然激增
对应的调优方式:
Lock SGA,...