-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Tag Archives: cpu_count
ODA环境同一服务器中资源划分(二)
简单描述如何实现在同一台服务器上不同的应用之间进行资源划分。 这里介绍资源管理器的方式。 无论是Exadata还是ODA,服务器的配置都越来越强大。因此都存在着把多个应用集中到一起的需求。 对于Exadata而言,一般来说部署的应用数据量大,并发应用高,很少会有多个应用同时部署在一个数据库服务器上的需求,反而经常是需要RAC中的多个节点同时支持某个应用,因此对于Exadata来说,应用资源划分的解决方案是SERVER POOL。 而ODA则和Exadata不同,由于ODA受扩展性,磁盘容量以及配置的限制,因此把多个应用集成到ODA上,那么这些应用多半都是小应用,考虑到ODA只有两个节点组成的RAC,因此对于ODA来说,如何在同一个服务器上给各个应用划分资源,而尽量减少应用之间的相互干扰就是十分有意义的事情了。 除了利用操作系统上的解决方案外,Oracle提供了两种方式的解决方案。一个是通过把多个应用分布到多个数据库中,通过限制每个数据库可以使用的CPU数量实现,即INSTANCE STAGE;另一个是把所有的应用集中到一个数据库,通过数据库的资源管理器实现资源的划分。 如果要使用资源管理器来分配资源,那么需要将所有的应用集中到同一个数据库中,然后根据用户、访问方式以及主机名的不同来设定不同的资源组,并将CPU资源按照一定的比例分配给不同的资源组。 在ODA上使用SWINGBENCH进行压力测试,选择100G的订单环境进行测试,当并发达到6000左右时,ODA两个服务器的CPU基本跑满,前端SWINGBENCH开始出现连接超时的情况,说明当前这种压力已经是服务器所能支持的最大值了。 此时,如果数据库中存在其他的应用,那么这些应用势必会受到压力测试的影响,应用访问的效率必然严重下降。 下面看一个简单的例子,数据库中存在两个用户分布对应两个不同的应用,可以通过下面的方法来给不同的应用分配CPU时间片资源: SQL> BEGIN 2 DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA(); 3 DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA(); 4 DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => ‘SOE_GROUP’,COMMENT => ‘soe first group’); 5 DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => ‘S2_GROUP’, COMMENT => ‘soe2 group’); 6 DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(ATTRIBUTE => DBMS_RESOURCE_MANAGER.ORACLE_USER, VALUE => … Continue reading
Posted in ORACLE
Tagged cpu_count, DBMS_RESOURCE_MANAGER, instance stage, ODA, RAC, resource_manager_plan
Leave a comment
ODA环境同一服务器中资源划分(一)
简单描述如何实现在同一台服务器上不同的应用之间进行资源划分。 这里介绍INSTANCE STAGE的方式。 无论是Exadata还是ODA,服务器的配置都越来越强大。因此都存在着把多个应用集中到一起的需求。 对于Exadata而言,一般来说部署的应用数据量大,并发应用高,很少会有多个应用同时部署在一个数据库服务器上的需求,反而经常是需要RAC中的多个节点同时支持某个应用,因此对于Exadata来说,应用资源划分的解决方案是SERVER POOL。 而ODA则和Exadata不同,由于ODA受扩展性,磁盘容量以及配置的限制,因此把多个应用集成到ODA上,那么这些应用多半都是小应用,考虑到ODA只有两个节点组成的RAC,因此对于ODA来说,如何在同一个服务器上给各个应用划分资源,而尽量减少应用之间的相互干扰就是十分有意义的事情了。 除了利用操作系统上的解决方案外,Oracle提供了两种方式的解决方案。一个是通过把多个应用分布到多个数据库中,通过限制每个数据库可以使用的CPU数量实现,即INSTANCE STAGE;另一个是把所有的应用集中到一个数据库,通过数据库的资源管理器实现资源的划分。 对于INSTANCE STAGE其实很简单,就是通过设置初始化参数CPU_COUNT来限制每个数据库可以使用的CPU数量。当然并不是只要设置了CPU_COUNT就可以生效,这个参数生效的一个前提似乎启用了资源管理器。 虽然INSTANCE STAGE也要用资源管理器,但是资源如何划分并不是通过资源管理器中的设置实现的,使用资源管理区是需要Oracle启用资源划分的功能,从而使得CPU_COUNT参数发挥作用。无论是修改CPU_COUNT初始化参数还是开启资源管理区,都是可以动态生效的。 在ODA上使用SWINGBENCH进行压力测试,选择100G的订单环境进行测试,当并发达到6000左右时,ODA两个服务器的CPU基本跑满,前端SWINGBENCH开始出现连接超时的情况,说明当前这种压力已经是服务器所能支持的最大值了。 此时,如果服务器上存在另一数据库,那么连接这个数据库的应用势必会受到压力测试数据库和应用的影响,应用访问的效率必然严重下降。 而如果部署了INSTANCE STAGE,则可以最大程度上避免这个问题。比如在进行压力测试的数据库上设置: SQL> SHOW parameter cpu_count NAME TYPE VALUE ———————————— ———– —————————— cpu_count INTEGER 24 SQL> ALTER system SET cpu_count=8 scope=BOTH; System altered. SQL> SHOW … Continue reading