Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1566500
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2012-07-02 14:59:39

   从ASE 15.7开始,其包括两个内核(kernels):threaded kernel和process kernel。本文将对ASE 15.7这两个内核模式做一基本的介绍,使得大家能够对其有一基本了解。
 
一、 两种内核模式
 
   可以通过“kernel mode”server参数进行设置(sp_configure "kernel mode", 0, "process" 或sp_configure "kernel mode", 0, "threaded" ),如果查看当前ASE的核心模式,可以访问@@kernelmode全局变量。
   设置ASE使用哪种内核就确定了ASE Server运行在如下哪种模式下:
 
   1. Threaded mode
    (1) ASE Server作为一个独立的多线索化操作系统进程(不管有多少个引擎,从操作系统层面看都只有一个进程),它使用运行在线程池(thread pools)中线程(threads)上的引擎(engines)处理SQL查询语句。在这种模式下,ASE使用一些线程(threads,又叫做engine threads)作为引擎(engines)。
    (2) Threaded mode使用单独/额外的线程(syb_system_pool线程池中的线程,又叫做非引擎线程nonengine threads/RTC threads)而不是由引擎(引擎线程)来管理I/O。
   2. Process mode 
    (1)对于进程模式下的ASE Server来说,如果设置了多个引擎,那么从操作系统层面看会有多个操作系统进程(有几个运行时引擎就有几个操作系统进程),它们之间互相协同作为一个单一的Server为客户端提供服务。

    (2)对于进程模式下的ASE Server来说,引擎除了处理用户提交的SQL查询语句之外,还要管理I/O处理。

    (3)数据库管理员能够设置引擎组来管理工作负载(workload)。 Process mode在Windows平台上不可用,即在Windows平台上ASE Server只有Threaded mode。
 
二、 两种内核模式的相同点
  
    不管是哪种内核模式,ASE都使用引擎作为“处理器”以执行SQL查询(处理用户请求)。在“Process mode”下,引擎是每个进程的主线程(main thread);在“Threaded mode”下,引擎是线程池中的线程(这里的线程池又叫做engine thread pools)。不管采用哪种模式,ASE的多个引擎之间使用共享内存进行通讯。不管哪种内核模式,ASE对于基本的任务、引擎调度方式是相同的: 
    (1)ASE Server(而不是操作系统)动态地调度“client tasks/user connections”到可用的引擎(又叫做engine thread);ASE引擎负责执行所有的数据库功能,包括SQL查询语句处理和日志处理等。
    (2)操作系统(而不是ASE Server)调度ASE threads(engine threads和nonengines threads)到CPU资源上运行,也就是说操作系统调度ASE 引擎(Threads)到物理CPU资源上,物理CPU资源可以是processors、cores或subcore threads。ASE不会区分是物理的cpu处理器、处理器核心(cores),还是硬件线程(subcore threads)。
 
三、Thread mode的优势
 
  1. 提高混合负载情况下CPU资源的使用效率 
    
     对于很多工作来说,“Threaded mode”要比“Process mode”使用显著少的CPU资源,但却能交付相同或更好的性能。“Threaded mode”没有“task-to-engine”的密切关系(affinity),因此它能够在I/O密集和CPU密集混合负载情况下减少相互之间的干扰,具有更好、更一致、更可预知的性能。
 
  2. 充分发挥最新硬件系统的优势,具有更好的扩展能力
 
     “Threaded mode”可以使ASE Server比先前版本的内核更好地发挥最新硬件系统的优势,比如:有更多的处理器(processors)、处理器核心(processor cores)和硬件线程(hardware threads)。
虽然ASE 15.7改变了内核,但是查询处理器(query processor)保持相同。
 
  3. 已有应用基本不需修改
 
      ASE运行在“Threaded mode”时,大部分程序都不需要修改,只有少量的命令和存储过程需要改变。
      对于这一点还需要在实战中进行检验!

   从SAP Sybase的官方资料来看,建议使用Threaded mode,它代表了未来的方向;而原先的Process mode只是为了兼容先前版本。
阅读(3138) | 评论(4) | 转发(1) |
给主人留下些什么吧!~~

lion_sybiq_1272013-09-25 10:55:23

twtdata:我怎么记得,以前的版本是多线程的Threaded mode,新版本才增加了多进程process mode。

以前的版本,ASE在windows平台上是线程模式。在其他平台上市process mode。从ASE 15.7开始都支持Thread mode了。

回复 | 举报

twtdata2013-09-24 17:41:11

我怎么记得,以前的版本是多线程的Threaded mode,新版本才增加了多进程process mode。

lion_sybiq_1272012-10-31 17:44:50

常笑: 配置文件中:
syb_default_pool
  number of threads=n

表示配置n个线程?.....
表示n个线程,即有那个引擎。

常笑2012-10-18 19:41:48

配置文件中:
syb_default_pool
  number of threads=n

表示配置n个线程?