- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完成端口实现高服务端通信层的关键问题
完成端口实现高性能服务端通信层的关键问题
摘 要:为实现高性能稳定的网络通信服务,对完成端口(iocp)应用中信息识别与提取、资源管理、消息乱序处理3个关键问题进行了分析,提出了iocp参数扩展、内存池、对象池、环形缓冲等改进的解决方法。使用这些方法对iocp底层进行了封装,并设计和实现了面向企业应用的可扩展网络程序通信模块。压力和性能测试结果表明,该模块能在合理资源消耗基础上支持海量并发连接,具有较高的数据吞吐量,在实际项目应用中也表现出了良好的性能。
关键词:完成端口;i/o模型;套接字;内存池;环形缓存
key issues of highperformance server communication layer by
using i/o completion port
liao hongjian*, yang yubao, tang lianzhang
(
network and modern education technology center, guangzhou university, guangzhou guangdong 510006, china
)
abstract:
in order to achieve highperformance and stable network communication service, the key issues of client information identifying and extracting, resource management and message sequence dealing in i/o complete port (iocp) development were analyzed. and the improved methods of iocp parameter extension, memory pool, object pool and ringbuffer were proposed respectively. on the basis of underlying encapsulation for iocp using these methods, a scalable network communication module for enterprise applications was designed and implemented. the experimental results show that the module can support massive concurrent connections, and has higher data throughput by reasonable resource consumption. the proposed solution has also showed good performance in the actual project application.
key words:
i/o complete port (iocp); i/o model; socket; memory pool; ring buffer
0 引言
网络服务程序通信层的“高性能”主要表现为对客户端更大的响应规模、更高的并发处理能力、更高的数据吐吞量、更低的系统资源消耗等方面[1],这对服务端通信层采用的技术及设计提出了更高的要求。为此,微软研究数年提出了完成端口(i/o complete port, iocp)机制,它把重叠i/o操作完成的事件通知放入系统维护的一个队列,并唤醒某个工作线程来处理相应的消息。重叠操作是在与iocp相关联的一个或多个文件句柄上进行的,大大减少了线程上下文切换,最大限度地提高了系统并发量[2],能满足“高性能”要求。
iocp是一个高效但复杂精巧的内核对象, 微软的sdk只提供了简单的说明文档和示例代码[3],现有的相关文献或以描述iocp机制的使用方法和步骤为主[4-5],或局限于iocp原理探讨[6],或出于应用项目商业版权的考虑,局限于系统的模块设计[7],对构建大响应规模服务程序时遇到的棘手问题给出全面具体解决方法的较少。在iocp开发中,存在的典型问题有:客户端信息识取、资源管理与访问紊乱、消息乱序,这3个问题的有效解决是构建稳健、高效iocp服务程序的关键。在研究现有资料并结合开发实践基础上,下面讨论这些问题起因并给出解决办法。
1 iocp关键问题分析
1.1 客户端信息的识别与提取
在iocp应用中必定要处理大量客户端的i/o请求,当大量客户
您可能关注的文档
- 安徽省淮南市第六中学高三月考理科综合试题.doc
- 安徽省烟草公司再造流程案例研究.doc
- 安徽省芜湖市20年九年级语文毕业学业考试模拟试卷(二).doc
- 安徽省芜湖市21-2012学年度八年级英语下学期期末抽考试卷 人教版(含答案).doc
- 安徽省芜湖市22-2013学年七年级语文上学期七校期中联考试题.doc
- 安徽省芜湖市中文试题.doc
- 安徽省马鞍山市08—2009学年八年级上学期期末试卷——数学.doc
- 安徽省马鞍山市12-2013学年度高一政治上学期期末素质测试.doc
- 安徽美露达新型有限公司认证产品类别、名称规格表一.doc
- 安徽省蚌埠市22届高三第一次教学质量检查试题(英语).doc
- 西餐厅服务案例分析及建议总结.docx
- 斯比泰电子(深圳)有限公司招聘1人公开引进高层次人才笔试参考题库答案完整版附答案(黄金题型).docx
- 2024年监理个人工作总结模板.docx
- 斯比泰电子(深圳)有限公司2024年校园招聘62人【重点基础提升】模拟试题附带答案题库大全附答案【基.docx
- 斯比泰电子(深圳)有限公司春季招聘24人高频100题难、易错点模拟试题附带答案题库大全加答案.docx
- 斯比泰电子(深圳)有限公司历年招考聘用6人(高频重点提升专题训练)附带答案题库附答案.docx
- 斯比泰电子(深圳)有限公司历年招考聘用6人(高频重点提升专题训练)附带答案题库附答案.docx
- 斯比泰电子(深圳)有限公司历年招考聘用6人(高频重点提升专题训练)附带答案题库附答案.docx
- 西餐厅案例分析设计感悟.docx
- 西餐厅案例分析设计感.docx
文档评论(0)