版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子科技大学计算机学院电子科技大学计算机学院 服务器并发性的统一、高效管理服务器并发性的统一、高效管理1. 目的:目的: 设计更灵活、性能更优化的并发服务器。设计更灵活、性能更优化的并发服务器。2. 困难:困难: 设计所依赖的条件在不断变化,而我们只能依设计所依赖的条件在不断变化,而我们只能依 靠经验来做出判断。靠经验来做出判断。服务器整个生命期中,同时并发的服务器整个生命期中,同时并发的最大线程数量。该参数某种意义上代表了最大线程数量。该参数某种意义上代表了该服务器的最大资源开销。该服务器的最大资源开销。2. 我们可以限制服务器的最大并发数量,也我们可以限制服务器的最大并发数量,也可以不限制
2、(允许创建任意多的线程),可以不限制(允许创建任意多的线程),此时该服务器的并发等级受限于操作系统此时该服务器的并发等级受限于操作系统的限制。的限制。 16.4 需求驱动的并发 当收到远程连接请求时触发线程创建,此当收到远程连接请求时触发线程创建,此时服务器的并发等级依赖于客户的需求。时服务器的并发等级依赖于客户的需求。(同时存在的连接越多,并发等级越高)(同时存在的连接越多,并发等级越高) 需求驱动虽然能够提供动态的灵活性并提需求驱动虽然能够提供动态的灵活性并提供较小的时延,但是并不一定是最优化的。供较小的时延,但是并不一定是最优化的。因为并发是有代价的。因为并发是有代价的。 16.6 额外
3、开销和时延1. 在需求驱动模式下,任一时刻的并发等级在需求驱动模式下,任一时刻的并发等级反映了当时服务器已收到但还没有处理完反映了当时服务器已收到但还没有处理完毕的请求数目。毕的请求数目。2. 线程的创建是有开销的。而该开销相对来线程的创建是有开销的。而该开销相对来说是昂贵的。(进程创建和进程切换都是说是昂贵的。(进程创建和进程切换都是有开销的)有开销的)3. 这个开销一方面会带来处理的时延,另一这个开销一方面会带来处理的时延,另一方面会消耗系统资源。方面会消耗系统资源。 16.7 小时延可能出麻烦1. 当创建线程的开销大于处理单个连接请求当创建线程的开销大于处理单个连接请求的开销时,会出现新
4、的问题。的开销时,会出现新的问题。2. 假设创建线程的时间开销为假设创建线程的时间开销为c、处理请求、处理请求的时间开销为的时间开销为p。 并发式 循环式 0 C 2c 2c+p 创建从进程1 创建从进程2 处理请求1 处理请求2 处理请求1 处理请求2 0 P 2p 16.7 小时延可能出麻烦1. 从上图可以看出,当从上图可以看出,当p1/c而小于而小于1/p时,并发设计出现问题而时,并发设计出现问题而循环方式仍然正常运行。循环方式仍然正常运行。2. 从上面的分析中我们得出的结论是:从上面的分析中我们得出的结论是: 重负荷的服务器要提供最佳响应的话,不适合重负荷的服务器要提供最佳响应的话,不
5、适合采用需并发的设计方案。采用需并发的设计方案。 16.8 从进程/进程预分配1. 为了增加重负荷服务器的承载能力,我们为了增加重负荷服务器的承载能力,我们应着重减少其平均单个请求的处理平均时应着重减少其平均单个请求的处理平均时间。也就是说要设法减少间。也就是说要设法减少c+p/n。2. p取决于服务所执行的功能操作和取决于服务所执行的功能操作和cpu的处的处理能力,对理能力,对p的减少是非常有限的,同时的减少是非常有限的,同时当当n-时时p/n-0。c是系统创建线程的开是系统创建线程的开销,从某种程度上讲是定值,无法减少。销,从某种程度上讲是定值,无法减少。因此我们的改进应该从减少线程创建的
6、次因此我们的改进应该从减少线程创建的次数着手,使得平均每次请求处理所分摊的数着手,使得平均每次请求处理所分摊的线程创建开销随着线程创建开销随着n的增加而减少。的增加而减少。在服务器开始执行时就创建在服务器开始执行时就创建N个从线程个从线程/进进程,程, 将所接受的新的请求分配给这将所接受的新的请求分配给这N个从个从线程线程/进程中的一个处理,从全局来看,每进程中的一个处理,从全局来看,每个从线程个从线程/进程只创建一次,处理进程只创建一次,处理n个请求个请求所花费的平均线程开销为所花费的平均线程开销为NC/n。1. 新产生的问题:新产生的问题:2. 由于从线程由于从线程/进程在服务存活期间始终
7、活跃,进程在服务存活期间始终活跃,并不退出,其所分配的内存等资源将不会并不退出,其所分配的内存等资源将不会自动释放,因此在此种设计方案中从线程自动释放,因此在此种设计方案中从线程程序中要特别注意对内存等资源的分配和程序中要特别注意对内存等资源的分配和释放。释放。 16.8.2 面向连接服务器中的预分配1. 使用互斥我们可以使多个进程同时阻塞在使用互斥我们可以使多个进程同时阻塞在一个一个socket的的accept事件上,当有连接到事件上,当有连接到达时,系统只会唤醒一个从进程。该从进达时,系统只会唤醒一个从进程。该从进程处理完连接后会继续调用程处理完连接后会继续调用accept等待下等待下一连
8、接到达。一连接到达。2. 请思考:请思考:16.8.3互斥、文件锁定和accept并发调用1. 有些操作系统并不能自动为多个进程同时有些操作系统并不能自动为多个进程同时accept同一个同一个socket提供支持,或者能支提供支持,或者能支持同时持同时accept但是却在一个新连接到达时但是却在一个新连接到达时同时唤醒所有的阻塞进程。同时唤醒所有的阻塞进程。2. 在这样的系统环境下我们仍然能够采用预在这样的系统环境下我们仍然能够采用预分配的策略,不过要由我们自己来解决多分配的策略,不过要由我们自己来解决多个进程对同一个个进程对同一个socket的互斥访问。的互斥访问。3. 可采用的解决互斥访问
9、的方式有两个:使可采用的解决互斥访问的方式有两个:使用共享的互斥量用共享的互斥量mutex或者文件锁定或者文件锁定(file locking,即即flock)。16.8.3互斥、文件锁定和accept并发调用采用互斥量的方式时,每个从进程在调用采用互斥量的方式时,每个从进程在调用accept前必须先调用前必须先调用pthread_mutex_lock来首先获取互斥量的所有权,然后再调用来首先获取互斥量的所有权,然后再调用accept等待连接。这样在任何时候只会有一等待连接。这样在任何时候只会有一个从进程阻塞在该个从进程阻塞在该socket的的accept事件上。事件上。当一个新的连接事件时,等
10、候当一个新的连接事件时,等候accept事件的事件的从进程被唤醒并调用从进程被唤醒并调用16.8.3互斥、文件锁定和accept并发调用pthread_mutex_unlock释放互斥量并转释放互斥量并转入对所接受连接的处理,此时,另外的一入对所接受连接的处理,此时,另外的一个从进程获得互斥量并等候个从进程获得互斥量并等候accept事件,事件,在这种情况下,只要同时到达的连接请求在这种情况下,只要同时到达的连接请求小于从进程的数量,在连接等待队列中就小于从进程的数量,在连接等待队列中就不会有未处理连接。不会有未处理连接。无连接服务器中的预分配1. Linux允许无连接服务器采用预分配策略。允
11、许无连接服务器采用预分配策略。2. 多个从进程同时绑定在一个多个从进程同时绑定在一个socket上调用上调用recvfrom获得发送方的地址和其多发送的获得发送方的地址和其多发送的数据报,并调用数据报,并调用sendto应答。一个数据报应答。一个数据报到达的时候系统只唤醒一个从进程。到达的时候系统只唤醒一个从进程。3. 请思考:请思考:预分配、突发通信量和NFS1. UDP通常不为到达的数据报提供很长的队通常不为到达的数据报提供很长的队列,当突然到达多个请求时很容易使队列列,当突然到达多个请求时很容易使队列溢出,溢出,UDP将丢弃队列满时到达的数据报。将丢弃队列满时到达的数据报。2. 为了减少
12、为了减少UDP由于队列溢出而丢弃报文的由于队列溢出而丢弃报文的可能性,应尽可能采用预分配方式处理。可能性,应尽可能采用预分配方式处理。3. NFS采用预分配方式通过同一采用预分配方式通过同一UDP套接字套接字通信。通信。根据处理机数目的多少,我们可以调整预根据处理机数目的多少,我们可以调整预分配从进程的数目,当系统中有分配从进程的数目,当系统中有K个处理器个处理器时,分配时,分配K个从进程,在最好情况下,可以个从进程,在最好情况下,可以使得接受处理几乎没有任何延迟。使得接受处理几乎没有任何延迟。 16.9 延时的从线程/进程分配1. 参与预分配策略创建从进程需要时间和资参与预分配策略创建从进程
13、需要时间和资源,随着进程数量的增加,系统的额外开源,随着进程数量的增加,系统的额外开销也在增加。那么对于处理时间很短的请销也在增加。那么对于处理时间很短的请求来说,预分配方式也许并不是性能最好求来说,预分配方式也许并不是性能最好的选择。的选择。2. 同一个服务对不同请求的处理时间的开销同一个服务对不同请求的处理时间的开销也是不定的,因此我们无法准确的预知该也是不定的,因此我们无法准确的预知该服务的开销大小,也就是说我们无法预知服务的开销大小,也就是说我们无法预知对于某个请求的处理是采用循环方式还是对于某个请求的处理是采用循环方式还是采用并发方式性能更好。采用并发方式性能更好。 16.9 延时的
14、从线程/进程分配1. 如果我们能够根据每个请求的处理开销来如果我们能够根据每个请求的处理开销来决定是采用循环方式或者采用并发方式处决定是采用循环方式或者采用并发方式处理的话,在某种程度上我们能够获得比固理的话,在某种程度上我们能够获得比固定采用一种方式处理更佳的性能。定采用一种方式处理更佳的性能。2. 当服务器接受一个新的连接时,并不创建当服务器接受一个新的连接时,并不创建新的线程,而是首先采用循环方式处理,新的线程,而是首先采用循环方式处理,同时设置一个定时器,如果在定时器到期同时设置一个定时器,如果在定时器到期前请求处理完毕则清除定时器,否则创建前请求处理完毕则清除定时器,否则创建一个新的
15、从进程。这样对于处理时间一个新的从进程。这样对于处理时间 16.9 延时的从线程/进程分配短的请求采用的是循环方式,而处理时间短的请求采用的是循环方式,而处理时间长的请求采用的是并发方式。通过动态调长的请求采用的是并发方式。通过动态调整定时器的时延设置,我们就能够获得一整定时器的时延设置,我们就能够获得一个比较好的综合性能。个比较好的综合性能。1. 预分配和延迟分配基于同一原理。预分配和延迟分配基于同一原理。2. 通过把服务器的并发等级从当前活跃的请通过把服务器的并发等级从当前活跃的请求数目中分力出来,设计人员可获得灵活求数目中分力出来,设计人员可获得灵活性并提高服务器效率。性并提高服务器效率
16、。 两种技术的结合1. 既然延迟分配技术和预分配技术都在某种既然延迟分配技术和预分配技术都在某种程度上能够提供服务器的性能,那么如果程度上能够提供服务器的性能,那么如果能够将二者结合,在采用预分配的同时动能够将二者结合,在采用预分配的同时动态的变更服务器的并行等级,在某些情况态的变更服务器的并行等级,在某些情况下将使我们获得更佳的系统性能。下将使我们获得更佳的系统性能。2. 服务器启动时,不预分配从进程,只有当服务器启动时,不预分配从进程,只有当定时器计时到达时才创建从进程。定时器计时到达时才创建从进程。 两种技术的结合1. 那么从进程是应该只处理单个请求就退出那么从进程是应该只处理单个请求就
17、退出还是该永久运行呢?还是该永久运行呢?2. 如果从进程处理单个请求就退出,实际上如果从进程处理单个请求就退出,实际上就不是预分配而是需求驱动的并发方式。就不是预分配而是需求驱动的并发方式。3. 如果从进程永久运行,会出现什么情况呢。如果从进程永久运行,会出现什么情况呢。每出现一次长时间的请求处理时延,我们每出现一次长时间的请求处理时延,我们就会创建一个从进程,那么随着运行时间就会创建一个从进程,那么随着运行时间的延长,该服务器的并行等级将无限增长。的延长,该服务器的并行等级将无限增长。 两种技术的结合处理方法有两种:处理方法有两种:1.只能创建有限个从进程,当从进程到达只能创建有限个从进程,当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026统编版六年级下册《藏戏》精读教案(含课件+说明与传说结合+教学反思)
- 2026 湖南 市场监管岗事业编考前模拟训练卷
- 2026 河南 事业编综合岗结构化面试易错点巩固训练卷含解析
- 2026下半年小学英语教资面试词汇试卷
- 2026年土壤环境监测员职业技能等级认定理论知识模拟试题
- 2025年浙江省龙泉市高考历史模拟卷【A卷】附答案
- 2025年浙江省兰溪市高二历史上册期末考试真题(综合卷)附答案
- 2026桥头堡煤化工产业市场供需形势及投资实施方案管理报告
- 2026生物降解塑料政策驱动与替代传统包装市场容量测算
- 2026光刻胶配套化学品产业链整合与价值提升策略
- T/CAPA 16-2025医疗美容从业人员执业规范
- GB 48147.3-2026矿山隐蔽致灾因素普查规范第3部分:金属非金属矿山及尾矿库
- 2026年中秋国庆节前安全生产全员培训
- 2026小学苏教版五年级科学上册全册教案
- 四上《习作:我的心儿怦怦跳》课件
- 2026年甘肃电信人员招聘笔试备考题库及答案详解
- 外研版(三起)英语三年级上册教学课件unit 3 Part 1
- 上海市杨浦区2026届初三一模语文试题(含答案)
- 2025年湖南公务员《行政职业能力测验》试题及答案
- T-CCEMA 0006-2024煤矸石基人造土壤基质
- GB/T 3033-2025船舶与海上技术管路系统内含物的识别颜色
评论
0/150
提交评论