epoll监听文件_一种基于EPOLL写数据监视的方法以及系统与流程

本发明涉及一种基于EPOLL写数据监视的方法以及系统。

背景技术:

epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

然而,边缘触发(ET)模式比水平触发(LT)有更少的系统调用,若发送缓冲区未满,epoll通知write事件直到开发者填满发送缓冲区,之后epoll才会在下次发送缓冲区由满变成未满时通知write事件。当socket处于不可写状态的时候。我们需要把未发送的数据暂存在待发送列表,这样存在一种隐患,即当客户端只发不接收的时候,这样待发送列表会慢慢消耗服务器资源,最后导致服务器资源耗尽,造成程序奔溃。

技术实现要素:

本发明要解决的技术问题,在于提供一种基于EPOLL写数据监视的方法以及系统,对服务器资源进行监控,及时调整服务器资源。

本发明之一是这样实现的:一种基于EPOLL写数据监视的方法,包括如下步骤:

步骤1、Epoll服务端接受客户端的连接;

步骤2、连接成功后,socket数据字典进行保存socket对象。创建一个独立的监控线程进行对socket数据字典里的socket每个对象进行定时监控;

步骤3、间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,则对其对应的客户端进行处理。

进一步地,还包括步骤3进一步具体为:间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,Epoll服务端通知运维人员对客户端进行处理。

本发明之二是这样实现的:一种基于EPOLL写数据监视的系统,包括如下模块:

连接模块,Epoll服务端接受客户端的连接;

监控模块,连接成功后,socket数据字典进行保存socket对象。创建一个独立的监控线程进行对socket数据字典里的socket每个对象进行定时监控;

处理模块,间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,则对其对应的客户端进行处理。

进一步地,还包括处理模块进一步具体为:间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,Epoll服务端通知运维人员对客户端进行处理。

本发明具有如下优点:本发明一种基于EPOLL写数据监视的方法以及系统,不管是进行压力测试还是服务端正常运行的情况,可以排除由于不是内存泄露所引起的问题,这可以极大的减少排查的时间,因为在系统出现奔溃的情况下,程序员总是从内存的角度去排查问题,这可能会浪费很多的时间去解决。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法执行流程图。

图2为本发明系统的原理图。

具体实施方式

如图1所示,本发明基于EPOLL写数据监视的方法,包括如下步骤:

步骤1、Epoll服务端接受客户端的连接;

步骤2、连接成功后,socket数据字典进行保存socket对象。创建一个独立的监控线程进行对socket数据字典里的socket每个对象进行定时监控;

步骤3、间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,Epoll服务端通知运维人员对客户端进行处理。

如图2所示,本发明基于EPOLL写数据监视的系统,包括如下模块:

连接模块,Epoll服务端接受客户端的连接;

监控模块,连接成功后,socket数据字典进行保存socket对象。创建一个独立的监控线程进行对socket数据字典里的socket每个对象进行定时监控;

处理模块,间隔限定时间查看socket对象里面未发送缓冲区的大小,若超过限定阈值,Epoll服务端通知运维人员对客户端进行处理。

本方法所要解决的是在长连接的情况下。当客户端接收效率很低或只发不接收等场合。增加写数据监视。主要方法是:对每个客户端连接的socket进行管理,创建一个监控线程。定时对每个客户端的socket的未发送的缓存进行监控。缓存空间超过一定的数据。端口哪些客户端。释放内存空间。进行邮件发送。定位到具体的TCP客户端。并给予通知。

人们对服务端资源一直增大而很少下降的时候。往往是从内存角度去排查增长的问题。在对内存排查下依然无法解决资源增大的情况下,而对I/O缓存的监控往往忽略掉,这通常需要积累很多的经验才能解决,而没有经验的人需要花费很多的时间和精力才能发现。而我的这个方法思路不管是进行压力测试还是服务端正常运行的情况。可以排除由于不是内存泄露所引起的问题,这可以极大的减少排查的时间,因为在系统出现奔溃的情况下,程序员总是从内存的角度去排查问题,这可能会浪费很多的时间去解决。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页