免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4044 | 回复: 2

epoll事件通知如果处理很慢,会不会接收数据的socket内存溢出? [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
发表于 2011-12-02 22:43 |显示全部楼层
10可用积分
如题,我有一个客户端程序,一个tcp的socket接收数据,用epoll来注册了它的事件通知。

但是,这个事件通知里面我要做的事情非常多,等到下次再次处理时间的时候socket上可能已经堆积了不少数据。

我想问,如果这种情况持续发生的话,会不会一段时间以后,我接收到的某些数据,由于没有足够的缓存,被丢弃了,使得我误以为程序没有接收到呢?

这虽然是个对边界条件的讨论,但是实际上生产环境的机器,系统负载很高的话,是会发生这种情况的。我想知道socket接收端是会丢掉数据呢,还是说,tcp的连接如果客户端已经不能再接受了,会通知服务器端停止写入?

最佳答案

查看完整内容

对消息队列而言,会,我以前看到过一篇论文,说这是消息队列的致命无解点对tcp而言,不会,一旦数据满了,会通知对方悠着点,过会儿再发顺便说一下,任何纠错系统都不能100%保证正确,tcp也是如此,我以前做实时数据库时就发现,每三个月到5个月不等,tcp总会有那么一次数据错误,当然我的数据量非常大,而且现场电磁干扰很强

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
发表于 2011-12-02 22:43 |显示全部楼层
对消息队列而言,会,我以前看到过一篇论文,说这是消息队列的致命无解点
对tcp而言,不会,一旦数据满了,会通知对方悠着点,过会儿再发

顺便说一下,任何纠错系统都不能100%保证正确,tcp也是如此,我以前做实时数据库时就发现,每三个月到5个月不等,tcp总会有那么一次数据错误,当然我的数据量非常大,而且现场电磁干扰很强

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
发表于 2011-12-03 00:19 |显示全部楼层
消息队列中的消息过多肯定是要丢弃的,不然你的程序直接挂了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP