全部博文(389)
分类: 服务器与存储
2013-06-19 15:08:36
OLTP系统容量计算方法
了解每个业务操作在系统中会由几个事务来处理.如,某系统当用户提交一个请求的时候,系统大约会由三个不同的存储过程来处理对应的
这个请求的不同阶段,换个角度说就是从用户角度的一个请求,数据库需要处理三次事务.
对于一个很好优化的oltp系统,不考虑其他查询类的io请求和争用的问题。对于每次事务的主要压力体现在io上,由于每次事务都要提交持久化
所以每次事务都需要一次io.因此在这个系统上每个用户的请求需要3次io来完成.如果在数据库asm做了冗余或是系统上的volume进行了冗余,那么对应的
的io次数最少为6。
由于在存储柜上面一般会进行raid的再次冗余,磁盘的总io需要除以2,。考虑一个16块磁盘的SAS 15K的存储柜,每个盘提供的io一般为200个左右.
向操作系统提供的最大io为(200*16)/2=1600个io.
那么整个系统能承受的吞吐量为(1600/6)=320.考虑到其他的一些开销,比如归档存放之类的,实际的能力一般在每秒200-250左右,数据
库的每秒种的事务处理600-800左右
当业务需要吞吐量提高时,优化的几个方向:1,磁盘柜的增加;2,对存储过程的改进,比如是否可以考虑把每次的用户请求,数据库的层面由2次存储过程来完成
3,是否可以批处理操作.