- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完成端口实现高性能服务端通信层的关键问题
完成端口实现高性能服务端通信层的关键问题摘 要:为实现高性能稳定的网络通信服务,对完成端口(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服务程序的关键。在研究现有资料并结合开发实践基础上,下
文档评论(0)