




已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)dm4数据库的自调节技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 数据库的性能管理一直是十分重要的一个研究课题为了减小数据库管理的难 度提高数据库管理员的工作效率在最大程度上实现数据库系统的自管理自调 节技术逐渐成为了数据库管理系统的一个重要研究领域 本课题以数据库系统 d m 4 的网络子系统和 i / o 子系统为例研究了数据库自调节技术的实现 网络子系统和 i / o 子系统自调节功能的实现建立在线反馈控制的自调节模型之 上在这个模型中包括了五个组成部分网络子系统i / o子系统性能监控子 系统性能分析子系统和性能调节子系统性能监控子系统收集 d m 4 数据库网络子 系统和 i / o 子系统运行期的性能数据性能分析子系统采用简单队列分析技术对性 能监控子系统收集到的数据进行分析如果发现预先设定的性能指标下降到了某个 预先设定的阀值以下性能调节子系统将采用爬山算法对有关的参数进行调节 在网络子系统的实现中分析了现有各种通信模型的利弊并提出了一种基于 队列的通信模型该模型基于异步网络通信机制利用多线程技术和队列技术处理 大量的网络连接和服务请求在 i / o 子系统的实现中采用了异步 i / o 方式综合 考虑了 w i n d o w s 和 l i n u x 平台的差异 从 d m 4 数据库系统的自调节技术实现中可以得出一个结论那就是数据库的自 调节技术应当建立在监控反馈调节这样一个循环的控制机制之上同时它要求 数据库内核高度的模块化模块与模块之间低耦合性这样才便于分而治之 关键字数据库性能自调节网络通信异步输入输出 i i a b s t r a c t t h e p e r f o r m a n c e o f d b m s i s a v e r y i m p o r t a n t r e s e a r c h s u b j e c t . r e c e n t y e a r s , t h e s e l f - t u n i n g d b m s b e c o m e m o r e a n d m o r e i m p o r t . t h i s p a p e r r e s e a r c h e s t h e s e l f - t u n i n g d e s i g n o f d m 4 n e t w o r k s u b s y s t e m a n d i / o s u b s y s t e m . t h e m a i n p r i n c i p l e t h a t w e p u r s u e d i n t h e s e l f - t u n i n g d e s i g n o f d m 4 n e t w o r k s u b s y s t e m a n d i / o s u b s y s t e m i s t h e c o n c e p t o f a n o n l i n e f e e d b a c k c o n t r o l l o o p . t h i s l o o p c o n s i s t s o f f i v e s u b s y s t e m s : t h e n e t w o r k s u b s y s t e m o f d m 4 , t h e i / o s u b s y s t e m o f d m 4 , t h e p e r f o r m a n c e m o n i t o r s u b s y s t e m o f d m 4 , t h e p e r f o r m a n c e a n a l y s i s s u b s y s t e m o f d m 4 , a n d t h e p e r f o r m a n c e a d j u s t s u b s y s t e m o f d m 4 . t h e p e r f o r m a n c e m o n i t o r s u b s y s t e m c o l l e c t s p e r f o r m a n c e d a t a o f t h e n e t w o r k s u b s y s t e m a n d i / o s u b s y s t e m . t h e p e r f o r m a n c e a n a l y s i s s u b s y s t e m a n a l y z e s t h e d a t a t h a t m o n i t o r s u b s y s t e m g a t h e r s b y s i m p l e q u e u e i n g a n a l y s i s m e t h o d , a n d w h e n e v e r t h e p e r f o r m a n c e m e t r i c s e x c e e d c r i t i c a l t h r e s h o l d s , t h e p e r f o r m a n c e a d j u s t s u b s y s t e m d y n a m i c a l l y a d j u s t s s o m e p a r a m e t e r s b y h i l l c l i m b i n g m e t h o d . i n t h e n e t w o r k s u b s y s t e m , w e g i v e a q u e u e i n g n e t w o r k c o m m u n i c a t i o n m o d e l w h i c h u s e s t h e m u l t i p l i n g - t h r e a d t e c h n o l o g y a n d t h e a s y n c h r o n o u s n e t w o r k c o m m u n i c a t i o n t e c h n o l o g y . i n t h e i / o s u b s y s t e m , w e g i v e a n a s y n c h r o n o u s i / o m o d e l b a s e d o n w i n d o w s a n d l i n u x . f r o m t h e a u t o m a t i c t u n i n g t e c h n o l o g y o f d m 4 s y s t e m , a m a j o r c o n c l u s i o n i s t h a t s e l f - t u n i n g d a t a b a s e t e c h n o l o g y s h o u l d b e b a s e d o n t h e p a r a d i g m o f a f e e d b a c k c o n t r o l l o o p . i n a d d i t i o n , t h e d a t a b a s e m a n a g e m e n t s y s t e m m a y r e q u i r e a r a d i c a l d e p a t u r e t o w a r d s s i m p l e r , h i g h l y c o m p o n e n t i z e d s o f t w a r e a r c h i t e c t u r e s w i t h n a r r o w i n t e r f a c e s b e t w e e n r i s c - s t y l e a u t o n o m i c c o m p o n e n t s . k e y w o r dd a t a b a s e , p e r f o r m a n c e , s e l f - t u n i n g , n e t w o r k c o m m u n i c a t i o n , a s y n c h r o n o u s i / o 1 1 绪论 1 . 1 课题背景 随着企业信息化建设的不断深入数据库管理系统( d a t a b a s e m a n a g e m e n t s y s t e m ) 越来越成为公司和大型企业的核心 i t 系统从民用的管理系统到军队的指 挥自动化系统都离不开数据库管理系统它已成为支持应用系统的核心软件数据 库性能的好坏直接影响着整个应用系统的正常运行 一般而言数据库的性能调节就是根据具体应用调整系统的参数以便取得最佳的 性能商用数据库系统都提供了一些这样的参数通常有 2 0 - 1 0 0 但是事实上数据 库系统本身并不能以一种智能化的方式来配置这些参数以使数据库的性能达到最 优这样合理的参数配置就依赖于数据库管理员和应用开发人员的技术水平和实 际经验了一直以来很多的科研院所商业组织对如何提高数据库的性能做了大 量的研究工作 1 - 3 但是这些性能优化的方法都是针对特定的应用和数据库系统的当然存在一些 一般性的调节原则 4 - 6 但是只有一小部分的数据库管理员和应用开发人员可以透 彻的理解这样的一些调节原则对数据库带来的影响和好处 另一方面随着关系数据库功能和应用领域的扩张关系数据库本身正变得原 来越复杂同时数据复杂性和数据量也大大增加了这一切都加大了数据库管理 员和应用开发人员的工作难度 再次随着硬件费用的下降人力成本相对增长数据库用户原来越意识到操作 数据库系统所带来的人力资源费用的增长 因此尽管好的数据库性能仍然是人们追求的目标但是越来越多的用户已经难 以拥有调节系统性能到最优状态所需要的技术水平专业人士的缺乏以及巨大的人 力成本已经成为普通用户获得满意的数据库性能的巨大障碍在这样的背景下就 出现了自调节技术 7 具有自调节功能的数据库可以根据应用需求和硬件能力自动 2 调节系统的性能而不需要人为的干预 1 . 2 国内外发展概况 众多的研究机构对数据库的自调节技术进行了大量研究除此之外一些大型 商业组织也对数据库自调节技术进行了大量的研究工作并在其数据库产品中得到 了体现 1 . 2 . 1 国内外类似系统的概况 i b m一直致力于自调节技术方面的研究工作很多理论成果都已经应用到它的 数据库产品 d b 2 中例如d b 2 的 u d b s q u e r y o p t i m i z e r 组件使用了两种自调节 方法来进行查询优化一个是把用户查询转化成标准的易于优化的查询另一个是 使用一套代价模型来评价一个查询的众多查询计划这个模型可以根据机器的硬件 环境自动进行调整 另外d b 2 的 c o n f i g u r a t i o n a d v i s o r 它可以自动配置数据库系统的内存服 务器的数目日志刷新频率等参数 除此之外d b 2 的 a u t o m a t i c i n d e x r e o r g a n i z a t i o n u d b d e s i g n a d v i s o r u d b q u e r y p a t r o l l e r a u t o m a t i c q u e r y p a r a l l e l i s m s e l e c t i o n l o a d u t i l i t y a u t o m a t i c t u n i n g a u t o m a t i c i n c r e m e n t a l r e s t o r e和 a u t o m a t i c c o n s i s t e n c y c h e c k i n g a s e c t o r f o r p a g e i / o 等组件都使用了自调节的技术 对于 o r a c l e 而言能够动态调整系统的配置是 o r a c l e 1 0 g 最令人激动的特性 在这之前o r a c l e 只允许系统管理员实时监测系统的性能以便及时发现问题但 是并不允许系统管理员实时地改动这些参数除非停止或重新启动数据库系统但 o r a c l e 的最新版本 1 0 g 可支持系统管理员实时调整性能参数例如当系统缓冲 区的命中率大大下降时数据库管理员可以立即动态增加缓冲区的大小去改善这个 问题而不会影响数据库的正常运行 o r a c l e 1 0 g在数据库服务器上引入了一套复杂的自管理系统这套系统允许数 3 据库自我收集数据分析数据并利用这些分析结果调节环境参数或者自动修复潜 在的问题o r a c l e 1 0 g 是目前数据库市场上唯一的具有自调节功能的数据库产品 o r a c l e 1 0 g 自调节系统由 4 个部分组成 自动化的 w o r k l o a d r e p o s i t o r y ( a w r ) 自动化的 m a i n t e n a n c e t a s k i n f r a s t r u c t u r e ( m t i ) s e r v e r g e n e r a t e d a l e r t s ( s g a ) 和 a d v i s o r y f r a m e w o r k ( a f ) 同时还提供了一些附属工具实现数据库的自管理例如引入了一个自我诊 断的数据库引擎称为数据库自动诊断监视器( a u t o m a t i c d a t a b a s e d i a g n o s t i c m o n i t o r a d d m ) a d d m使得数据库能够诊断自己的性能并确定问题所在在每 一次 a w r 收集到统计数据之后a d d m 会自动运行对 a w r 捕获的数据进行分析并 对系统性能进行预测如果发现潜在的问题可以给出推荐的解决方案并对方案可 能带来的好处进行评估a d d m 采用历史比较的方法对系统性能进行分析其目标就 是识别消耗 d b t i m e 最多的部件 除了 a d d m 工具之外o r a c l e 1 0 g 还提供了自动 s q l 调节工具用于自动优化应 用程序 s q l 自动共享内存管理工具用来自动管理内存这个工具可以自动配置 共享缓冲池 j a v a 缓冲池以及内存缓冲池的大小即管理员不需要事先预设上述几 个缓冲池的大小默认情况下上述几个参数的大小都为 0无论何时哪个部件需 要内存它都可以通过内部的自动调节机制得到这些对管理员而言是透明的不 需要人为的干预 如果服务器端的参数文件 s p f i l e 使用的话 那么上述经过自动调 节的各个部件的大小会在服务器关机的时候自动写入 s p f i l e 文件中 那么当服务器 下次启动时就不需要再次学习应用的特性而重新配置合理的参数了 空间管理也是非常耗费管理员的工作但是在 o r a c l e 1 0 g 中可以自动管理它 的空间消耗提醒管理员潜在的空间问题并推荐合适的解决方案 除了上述的提到的一些部件之外o r a c l e 1 0 g还实现下面这些方面的自动化操 作包括: 自动空间管理自动存储管理自动备份与恢复和自动配置管理等等 另外 如果你使用 o r a c l e 的 s t a t s p a c k 工具集去收集数据库的统计数据 你可 以在你的历史数据的基础上开发一个预测模型用来预测数据库某种资源的短缺 你的 s t a t s p a c k 也许会向你报告你的系统缓冲的命中率太低等等 s q l s e r v e r数据库管理系统也在一定程度上实现了自调节能力 8 在 s q l 4 s e r v e r 中提供了两个重要的自调谐工具一个是 i n d e x t u n i n g w i z a r d 可以帮助用 户自动选择索引另一个是 s q l s e r v e r s t o r a g e e n g i n e 提供了 1 6 个服务器方面 的调谐节点 1 . 2 . 2 主要关键技术 数据库的自调节系统是一个体系结构目前大部分自调节技术都是建立在在线 反馈控制机制之上 9 系统根据预先配置的参数启动运行在运行期系统通过性能 监控模块不断监控系统的各项性能指标并将它传给性能分析模块如果性能分析 模块发现系统的整体性能下降到某个预先设定的阀值它将做出对哪些参数进行如 何调节的指令而系统预测模块将根据性能分析模块给出的新的参数值对系统的各 项性能指标进行预测如果预测的结果是性能有较大的提高那么系统将启动参数 调节模块进行实际的系统参数的调整 这种模型的难度在于性能预测模块使用的数学模型很难确定并且性能预测需 要耗费大量的时间和空间但是这种模型的好处是可以大大增加系统的稳定性和健 壮性因为系统没有在发现可能的解决方案之后就贸然的进行系统的调节而是在 性能预测模块的预测之后才进行真实的调节 在本文中采用了一种简化的在线反馈控制模型在这种模型中包含以下几 个组成模块可动态调节的数据库系统内核性能监控模块性能分析模块和参数 调节模块和前一种模型类似系统根据预先配置的参数启动运行在运行期系统 通过性能监控模块不断的监视系统的各项性能指标并将它传给性能分析模块如 果性能分析模块发现系统的整体性能下降到某个预先设定的阀值它将做出对哪些 参数进行如何调节的指令和前一种模型不同的是系统没有对性能分析模块给出 的新的参数值是否真的能够提高系统的整体性能进行预测而是直接启动参数控制 模块进行实际的系统参数的调整如果调整后的实际结果不理想系统会再次进入 观测分析调节的循环过程 可动态调节的数据库系统内核是整个自调节技术实现的核心目前大部分数据 库系统内核都不允许运行期调节有关参数除非停止运行后调节因此对于数据库 5 内核而言最重要的研究工作是如何开发出允许运行期动态调节的系统内核由于 数据库管理系统是一个庞大的系统软件它由很多模块组成这样关于它的自调节 内核技术就涉及到很多方面国内外的研究有很多在以下领域都取得了一定的 研究成果包括: 缓冲区管理的自调节研究 1 0 - 1 2 自动的模式建立 1 3 自动的数据划 分 1 4 查询优化 1 5 1 6 等等 在本文中选择了数据库管理系统中的网络子系统和 i / o 子系统两个部分为研 究内核研究实现这两个内核的自调节技术相关的核心技术主要有 w i n d o w s和 l i n u x下的多线程技术进程间通信技术文件 i / o技术性能分析技术和参数调 节技术下面分别介绍一下 传统的操作系统中资源分配和 c p u 调度的单位是进程即一个程序的一次执 行进程在任何时候只有一个执行现场即称为单线程结构这种单线程结构的进 程已不能很好地适应计算机的发展首先计算机硬件向多处理机网络方向发展 这就要求操作系统能适应这种发展合理地使用各处理机和网络上的其它处理机 许多工作可以分配到不同的处理机上同时运行在这一点上传统的单线程进程不 能有效地实现其次应用程序要求并发执行如数据库中可以同时有多个用户 在交互执行同时对几个文件或网络操作又如窗口系统中同时处理多个子窗口 的请求等这就要求操作系统提供一些机制使得用户能按需求在一个程序中设 计出多个线程同时运行而这又不是多个进程组合在一起能完成的因为他们之间 共享大部分资源 基于上述原因操作系统在系统结构上有了新的发展与传统操作系统中的单 线程结构相对应提出了多线程结构的概念 1 7 , 1 8 很多著名的操作系统都已经采用 了多线程结构目前对多线程结构还没有国际共认的标准 许多计算机公司和国 际组织都有自己的标准 1 9 如 w i n d o w n t t h r e a d 接口规范s o l a r i s t h r e a d 接口 规范o s 2 t h r e a d 接口规范p o s i x p t h r e a d 标准和 d e c p t h r e a d 标准等所有这 些规范都对操作系统的多线程结构给出了一系列的外部接口虽然这些标准在具体 的接口格式或功能上有所区别但主要的内容是一致的 从理论上说用户进程可以创建任意多个用户线程这些线程可以在不同的处 理机上同时执行但从资源分配处理机调度线程切换效率等诸多问题出发 6 并不是每创建一个线程就作为一个独立的单位交给核心管理因此在线程机制 的具体实现上又分为多种模式 2 0 - 2 2 在多线程结构的操作系统中多线程结构大 都分成两个层次来实现一层是用户层在用户级多线程库中实现一层是核心层 在操作系统内核中实现为了区别处于不同层次中的线程分别叫做用户线程和核 心线程用户线程只是一个代表对应线程的数据结构 它只占用用户空间的资源 是用户级的对象对核心是透明的而核心线程才是线程执行的实体 是核心调度 的单位 当内核既支持进程也支持线程时 就可以实现线程- 进程的多对多模型即一个 进程的某个线程由内核调度而同时它也可以作为用户级线程池的调度者选择合 适的用户级线程在其空间中运行这就是前面提到的混合线程模型既可满足多处 理机系统的需要也可以最大限度的减小调度开销绝大多数商业操作系统如 d i g i t a l u n i x s o l a r i s i r i x 都采用的这种能够完全实现 p o s i x 1 0 0 3 . 1 c 标准的 线程模型 2 3 在核外实现的线程又可以分为一对一和多对一两种模型前者用一个 核心进程也许是轻量进程对应一个线程将线程调度等同于进程调度交给核 心完成而后者则完全在核外实现多线程线程调度也在用户态完成后者就是前 面提到的单纯的用户级线程模型的实现方式显然这种核外的线程调度器实际上 只需要完成线程运行栈的切换调度开销非常小但同时因为核心信号无论是同 步的还是异步的都是以进程为单位的因而无法定位到线程所以这种实现方式 不能用于多处理器系统而这个需求正变得越来越大因此在现实中纯用户级 线程的实现除算法研究目的以外几乎已经消失了 l i n u x内核只提供了轻量进程的支持限制了更高效的线程模型的实现但 l i n u x着重优化了进程的调度开销一定程度上也弥补了这一缺陷目前最流行的 线程机制 l i n u x t h r e a d s 所采用的就是线程- 进程一对一模型调度交给核心 而在用户级实现一个包括信号处理在内的线程管理机制 在实际的应用编程中w i n d o w s和 l i n u x都给程序员提供了可直接调用的系统 函数库程序员利用这些库函数可以很容易的编写出多线程程序 2 4 - 3 1 进程间通信的方式主要有邮槽命名管道套接字( s o c k e t ) 编程等几种 邮槽是由 w i n d o w s提供的一种单向内部处理通讯机制并且它对于 w i n d o w s 9 x 7 与 w i n d o w s n t / 2 0 0 0都适用 3 2 实际上一个邮槽是驻留在内存中的一个 w i n d o w s 临 时虚拟文件利用 w i n d o w s 标准文件函数可以创建邮槽并且向其中写入与读取消 息但它不同于磁盘文件当它的句柄被关闭后邮槽中的消息将被全部删除这 些消息通常是指通过网络发送到指定的一台计算机上或某个指定域中所有计算机 上的数据数据的格式则由应用程序来确定同时这些计算机上的邮槽所有者可以 从中读取这些消息并作相应的处理邮槽的工作方式为客户/ 服务器方式创建 并拥有邮槽的进程为服务器不管该进程是在主域服务器上还是在由 w i n d o w s 9 x 与 n t w o r k s t a t i o n组成的工作站上都被视为邮槽服务器而向指定的邮槽写入消息的 进程则为邮槽客户同样它不考虑邮槽所处机器在网络上的具体身份同时邮槽服 务器接收来自客户端写入消息的请求 并从中读取消息 邮槽工作方式有三大特点 一个特点是单向通讯创建邮槽的服务器只能读取消息不能写入消息而客户端 则与之正好相反如果某一端应用程序要同时具备读取与写入的双向功能那么必 须两端的应用程序分别建立两个邮槽另一个特点是广播消息假如在域上有若干 计算机使用同样的名称创建邮槽那么某一邮槽客户可以一次性向所有的同名邮槽 服务器发送消息最后一个特点是数据报传输邮槽对消息的传输为数据报方式 即客户端只负责数据的发送而服务器端并不回应客户端发送的数据是否接收到 管道的通信方式又具体分为匿名管道和命名管道两种 3 2 匿名管道即没有命名 的管道只能用于相关的进程之间而且是单方向的要实现双工传输需要同时 创建两个管道匿名管道用于父进程与子进程之间其工作原理是在子进程端用管 道的读写操作替代子进程的标准输入或标准输出这样子进程就能与父进程交换 数据了父进程用写句柄写数据到管道的同时子进程用读句柄从相应管道中读这 些数据同样子进程在另一个管道中写数据父进程在相应管道中读数据需要 注意的是匿名管道不能用于网络中也不能用于不相关的进程间只能用于同一 台计算机的父进程与子进程之间传递数据 相对匿名管道命名管道的使用就要方便得多它既可用于同一台计算机的进 程间传递数据也可用于不同计算机的进程间传递数据而且只需创建一个命名管 道就可以实现双工传输在 w i n 3 2 中命名管道是作为文件系统实现的由命名管 道文件系统驱动程序执行它是一个在内存中存储管道数据和根据命令对其进行检 8 索的伪文件系统在处理本地命名管道请求或从远程计算机接收命名管道请求时 它好象是一个普通的文件系统. 命名管道是由应用程序指定的唯一名字的单向或双 向管道进程通过名字而不是句柄来访问命名管道 除了邮槽和管道之外另一种进程间通信方式是套接字接口套接字接口是 t c p / i p网络的 a p i接口函数套接字最先应用于 u n i x操作系统套接字数据传输 实际上就是一种特殊的 i / o t c p / i p 协议被集成到到 u n i x 内核中时 相当于在 u n i x 系统引入了一种新型的 i / o 操作u n i x 用户进程与网络协议的交互作用比用户进程与传统的 i / o 设备相互 作用复杂得多首先进行网络操作的两个进程在不同机器上如何建立它们之间 的联系其次网络协议存在多种如何建立一种通用机制以支持多种协议这些 都是网络应用编程界面所要解决的问题 在 u n i x 系统中网络应用编程界面有两类u n i x b s d 的套接字和 u n i x s y s t e m v 的 t l i 由于 s u n 公司采用了支持 t c p / i p 的 u n i x b s d 操作系统使 t c p / i p 的应 用有更大的发展其网络应用编程界面套接字在网络软件中被广泛应用至今已 引进多种操作系统中成为开发网络应用软件的强有力工具 套接字有两种主要的操作方式: 面向连接的和无连接的 无连接的操作使用数据 报协议一个数据报是一个独立的单元它包含了所有的这次投递的信息这个模 式下不需要连接一个目的的套接字发送方只是简单地投出数据报无连接的操 作是快速的和高效的但是数据安全性不佳 面向连接的操作使用传输控制协议一个这个模式下的套接字必须在发送数据 之前与目的地的套接字取得一个连接一旦连接建立了套接字就可以使用一个流 接口 打开读写关闭 所有的发送的信息都会在另一端以同样的顺序被接收 面向连接的操作比无连接的操作效率更低但是数据的安全性更高 到底用哪种模式是由应用程序的需要决定的如果可靠性更重要的话用面向 连接的操作会好一些比如文件服务器需要他们的数据的正确性和有序性如果一 些数据丢失了系统的有效性将会失去一些服务器比如间歇性地发送一些数据 块如果数据丢了的话服务器并不想要再重新发过一次因为当数据到达的时候 它可能已经过时了确保数据的有序性和正确性需要额外的操作的内存消耗额外 9 的费用将会降低系统的回应速率 在实际的应用编程中w i n d o w s和 l i n u x都给程序员提供了可直接调用的系统 函数库程序员利用这些函数库可以很容易的编写出套接字程序 3 3 - 3 6 u n i x 系统的 i / o ( 输入/ 输出) 命令集 是从 m a l t i c s 和早期系统中的命令演变出 来的其模式为打开- 读/ 写- 关闭在一个用户进程进行 i / o 操作时它首先获得对 指定文件或设备的使用权并返回称为文件描述符的整型数以描述用户在打开的 文件或设备上进行 i / o 操作的进程然后这个用户进程多次调用读或者写操作以传 输数据当所有的传输操作完成后用户进程关闭调用通知操作系统已经完成了 对某对象的使用主要的 i / o 通信模式主要有两种一种是同步方式另一种是异 步方式 同步 i / o 是一种以封锁的方式执行 i / o 的方法进程必须等待 i / o 完成 才能继续处理其它的任务这种方式的优点是实现容易操作简单但是对系统资 源的利用率不高 异步 i / o 是一种非封锁的方式执行 i / o 的方法利用这些方法进程不等 待 i o 完成( 特别是关于写入) 成功完成一个写操作时o s 将返回一个i / o 完成 的状态或者标记给应用程序其优点是应用程序不必等待存储设备上的写操作完 成大大提高了系统资源的利用率 在性能分析这一块分析技术也有很多 通常越复杂的性能分析方法就越准确 在数据库性能分析领域常用的性能分析方法主要有简单数学分析方法比率模型 分析方法回归分析方法模拟分析方法和排队分析方法等 简单数学分析方法正如它的名字暗示的那样很多时候你只需要简单的加减 乘除就可以预测系统的性能比如如果每个用户各自需要 1 0 m 的非共享内存而 你希望在六个月内有超过 1 5 0 的用户那么我们至少需要 1 5 0 0 m 或者更多的内存 除非我们改变体系结构 比率模型分析方法是九十年代中期由 d a v e c o o k 等人提出的它们的目标是 快速的预测容量的需求该分析方法广泛的应用于硬件预算评估重大的技术风险 之所在评估技术体系的替换方案等比率模型通常可以很快的进行预测而准确性 也很高它很容易学习和使用但是也很容易被滥用 1 0 回归分析方法较好的应用于工业生产系统也很准确它的优点是快速可 靠准确以及提供统计数据( 这样我们可以量化错误这点十分重要) 但是回归 分析并不提供 o s 系统的具体细节并且需要理解统计数据 模拟分析方法利用模拟终端进行系统性能分析它在许多的科学领域有多年 的使用很多模拟工具提供高级的统计分析和动画能力但是他们是昂贵的工作 在特定的问题域并且需要大量的学习曲线 基于排队理论的模拟分析方法在模拟分析方法的基础上利用多重排队系统 提供特定子系统的细节和子系统之间的交互分析结果很准确但是这面临着模拟 系统和真实系统调节一致的挑战为了考虑所有的组合这个调节的过程可以高度 的计算机化计算机化的程度越高预测的结果就越准确即使是一个很简单的调 节过程也需要上千次的计算 简单排队分析方法这种方法可以提供非常准确的预测也可以用来做高层的 和决定性的决定它最初由 j a c k s o n 在 1 9 5 7 年提出后来又进过很多的改进并广 泛地用于性能分析之中 3 7 - 4 2 简单排队理论大致是下面描述的这样: 一个事务进入队 列( 排队时间开始) 如果服务器很繁忙这个事务将等待当服务器有空闲时间后 它进入队列取出一个等待的事务然后处理它当事务从队列中移出后排队时 间结束服务时间开始当服务器处理完事务事务的服务时间中止而服务器再 次到队列中去找另一个事务服务本课题中将主要采用这种性能分析方法 在参数调节方面最常用的是爬山算法 4 3 它的核心思想是如果有众多需要调 节的参数每次只调节一个参数每个参数都有一个最大值和最小值参数只能在 最大值和最小值之间选择参数调节后如果系统性能提高了则中止算法否则 选取下一个参数进行调节 1 . 3 课题主要研究工作 1 . 3 . 1 课题的研究思路 本课题将以 d m 4 数据库系统的网络子系统和 i / o 子系统为研究对象探讨数据 1 1 库系统的自调节技术的实现选择这两个子系统为研究对象的原因有两个一个是 两个模块相对而言比较独立它们的动态调节不会对系统的其他模块的正常运行造 成大的影响另一个原因是这两个模块往往是数据库系统设计中的瓶颈它们的性 能对整个数据库的性能有重大影响本课题将首先探讨如何设计高性能的可伸缩 性的网络模型以支持大量用户对数据库的并发访问请求以及如何设计高性能的 可伸缩性的 i / o 模型以支持较大的并发磁盘 i / o 访问请求然后在此基础之上 探讨在这两个模型中对系统性能有重大影响的参数有哪些并进一步研究可在运行 期调整这些参数的机制以及实现方案 1 . 3 . 2 课题的主要工作及预期结果 本课题的最终目标是实现 d m 4 数据库网络子系统的自调节功能和 i / o 子系统的 自调节功能具体来说本课题包括两大部分的研究工作 1 研究 d m 4 数据库的网络子系统的实现并在此基础上研究其自调节技术的实 现这部分工作包括分析现有的各种网络模型的长处和弊端提出能同时支持上千 用户并发访问数据库的可伸缩网络模型然后在此基础上研究对网络性能有重大影 响的系统参数并研究可在运行期动态调节这些参数的机制以及实现方案 2 . 研究d m 4 数据库i / o 子系统的实现 并在此基础上研究其自调节技术的实现 这部分工作包括分析现有的 i / o模型的长处和弊端提出能同时支持较大磁盘 i / o 服务请求的体系模型然后在此基础上研究对 i / o 性能有重大影响的参数并研究 可在运行期动态调节这些参数的机制以及实现方案 1 2 2 d m 4 数据库网络子系统的自调节技术研究 本章首先研究了 d m 4 数据库网络子系统的实现然后在此基础上研究了 d m 4 数 据库网络子系统的自调节技术的实现 2 . 1 系统分析 网络子系统的作用是接收用户的请求并将请求传给数据库服务器进行处理 在数据库服务器处理完用户的请求后网络子系统把结果返回给用户 d m 4数据库系统是基于 c / s模式的客户端要与服务器通信首先就必须建立与 服务器的连接一般而言每个 d m 4 应用程序用户都有两个与他们数据库连接相关 的进程( 线程) 一个用户进程它运行在用户的客户机或者应用程序的 w e b 服务器 上一个服务器进程它运行在 d m 4 s e r v e r 计算机上所以要实现客户端与服务器 端的通信就是要实现跨网络的进程间通信进程间通信的方法有很多比如远程 过程调用套接字等等套接字是 c / s 模式中使用最广的进程间通信方式而且具 有很好的伸缩性所以在 d m 4 数据库系统中采用了套接字方式作为客户端和服务器 通信的方式套接字主要分为两种一种是基于 u d p 协议的无连接的套接字所谓 无连接的套接字就是说在客户端向服务器端发送任何消息之前客户端并不需要与 服务器端先建立连接这种方式优点是快速但缺点是不可靠它不能保证客户端 发送给服务器的消息或者服务器发送给客户端的消息对方是否能够收到也不能 保证收到消息的次序是不是和发送消息的次序一致另外一种是基于 t c p 协议的有 连接的套接字这种通信方式虽然在实现上要复杂一些但是优点是非常可靠消 息的发送方能够准确的知道消息是否被消息的接收方收到并且收到消息的次序与 发送消息的次序必定是一致的由于数据库管理系统对消息的可靠性要求很高所 以 d m 4 数据库系统采用了面向连接的套接字方式作为客户端和服务器端通信的基 本方式 1 3 对于客户端而言它与数据库服务器的通信是很简单的它的基本作用就是建 立与数据库服务器的连接然后发送服务请求并接收服务器传回来的处理结果但 是对服务器而言却要复杂很多因为它要处理很多个客户端的并发连接请求以及 服务请求而不像客户端只需要处理与一个特定的服务器的消息往来在大型应用 中 同时访问数据库的客户端数目可能会达到成千上万 面对如此巨大的服务请求 要求服务器必须具有良好的伸缩性否则很容易在极短的时间耗尽服务器的资源 而导致系统崩溃的 因此实现网络通信的自调节功能是十分有益的这样系统可以根据用户连 接请求的数目和服务请求的数目自动的调节有关系统参数避免在极短的时间耗尽 服务器的资源我们将首先讨论一下 d m 4 网络子系统的实现然后在此基础上探讨 网络子系统自调节功能的实现 2 . 2 d m 4 数据库网络子系统结构 在网络子系统的结构中主要包含了两个部分一个是客户端和数据库服务器之 间的消息协议它规定了客户端发送给数据库服务器的信息或者数据库服务器发送 给客户端的信息的格式另外一个是客户端与服务器端的通信模式它决定了服务 器如何处理众多的并发客户服务请求 2 . 2 . 1 客户端和服务器消息间的消息协议 消息协议定义了客户端和服务器端通信的数据格式客户端把用户请求按照消 息格式的规则打包发送给数据库服务器数据库服务器收到消息包后按照消息协议 的规则解开消息包取出实体消息然后由进程处理处理完成后再将数据打包 发送给客户端客户端和服务器都按相同的方式打包数据打包后的数据称为一 个完整的消息消息由两部分组成一部分是消息头另一部分是消息体消息头 记录了消息体的类型和数据长度等信息不论是客户端还是服务器端都是根据消息 头的内容来决定以何种方式来处理消息体的消息头的定义如下: 1 4 t y p e d e f s t r u c t m s g _ h e a d _ s t r u c t m s g _ h e a d _ t ; s t r u c t m s g _ h e a d _ s t r u c t u l i n t s t m t i d ; u s i n t c m d ; u l i n t l e n ; u s i n t c o l n u m ; u s i n t p a r a n u m ; d d w o r d r o w n u m ; u l i n t s q l c o d e ; u l i n t e x e c d i r e c t ; c h a r c r c ; ; 下面解释一下各个字段的含义 1 . 字段 s t m t i d 是 s q l 语句的内部标识 2 . 字段 c m d 是客户端与服务器端传递的消息类型服务器根据消息类型做不同 的处理这个字段取值样本如下: # d e f i n e c m d _ l o g i n ( u s i n t ) 1 # d e f i n e c m d _ l o g o u t ( u s i n t ) 2 # d e f i n e r e t _ b a s e ( u s i n t ) 1 2 7 # d e f i n e r e t _ d d l _ c d b ( u s i n t ) ( r e t _ b a s e + 1 ) 以 c m d 开头的宏标识的是客户端发往服务器端的消息以 r e t 开头的宏标 识的是服务器发往客户端的消息消息分为几大类d d l 消息d m l 消息和 c o n t r o l 消息等 3 . 字段 l e n 是消息块的长度不包括消息头的长度 4 . 字段 c o l n u m 在服务器返回 s e l e c t 查询结果时使用表示的是查询结果包含 的行数 5 . 字段 p a r a n u m 在执行动态 s q l 语句时使用表示的是所需的参数个数 6 . 字段 s q l c o d e 表示语句执行的结果 如果语句成功执行其值将大于零; 如果 1 5 语句执行失败其值将小于零 7 . 字段 e x e c d i r e c t 表示 s q l 语句是静态 s q l 语句还是动态 s q l 语句 8 . 字段 c r c 循环冗余校验码检查消息在传递过程中是否出错 当服务器收到客户端传来的消息 它将生成下面的一个节点把消息缓存在其中 s t r u c t c o p _ s t r u c t e n u m p o r t _ t y p e t y p e ; c o m m _ h a n d l e h a n d l e ; u s i n t p o r t _ n u m ; u l i n t t i m e o u t ; s y s n a m e _ t h o s t _ n a m e ; b y t e i n n e r _ d a t a m s g _ m a x _ l e n ; b y t e * d a t a ; d m _ l i s t _ n o d e _ t ( c o p _ t ) l i n k ; d m _ l i s t _ b a s e _ n o d e _ t ( c o p _ t ) f r e e _ l s t ; d m b o o l c o n t i n u e _ f l a g ; u l i n t n _ m a g i c ; ; 下面解释一下各个字段的含义 1 . 字段t y p e 表示通信端点所使用的协议通常取值i n e t 2 . 字段h a n d l e 表示通信端点在本系统中指的是s o c k e t 值 3 . 字段p o r t _ n u m 表示通信端点所使用的端口 4 . 字段t i m e o u t 设置通信链路超时的时间 如果通信链路超过所设定的时间还没 有消息来往这条链路将被服务器关闭这样做的目的是防止客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度沉浸式话剧体验馆建设与运营合同
- 2025年度智能制造项目实施与顾问支持服务合同
- 2025年度智能玻璃幕墙安装与维护服务合作协议
- 2025年智能交通设施建设与维护综合技术服务合同
- 2025定制化研究生课程学习及职业规划辅导合同
- 2025年小家电品牌全球市场拓展代理销售合同
- 2025年高品质医院后勤保洁服务采购合同模板
- 2025年度高端办公家具采购与供应链融资合作协议
- 2025年文化旅游资源开发与运营服务合同
- 2025年度家电产品区域代理销售合同
- 高考志愿规划创业
- 2025年度医院医德医风考评表格
- 世界给予我的 课件-2024-2025学年高二下学期开学第一课主题班会
- 智慧消防项目可行性研究报告
- 福建省福州市2024-2025学年高三上学期8月第一次质量检测试题 英语 含答案
- 仓储物流安全培训课件
- 胆囊癌围手术护理
- 安徽省皖江名校2024-2025学年高一上学期12月联考英语试题(含答案无听力原文及音频)
- 汽车维修业务接待
- 洒水降尘合同范例
- 吊装作业安全会议
评论
0/150
提交评论