[发明专利]一种基于机器学习的DNS线程管理方法、装置和服务器有效
申请号: | 201810068774.6 | 申请日: | 2018-01-24 |
公开(公告)号: | CN108446170B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 丁浩;吴岩;石磊;胡文 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06N20/00;H04L29/12 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 机器 学习 dns 线程 管理 方法 装置 服务器 | ||
本发明实施例提供了一种基于机器学习的DNS线程管理方法、装置和服务器,该方法和装置应用于基于Linux操作系统搭建的DNS服务器,具体为每隔预设时长获取DNS服务器中所有线程所处理请求的请求数量;利用预设的线程控制模型对请求数量进行计算,得到最优线程数;如果当前线程数小于最优线程数,增加一个线程;如果当前线程数大于最优线程数,减少一个线程。通过对DNS服务器的线程数的动态调整,既可以避免在流量高峰状态时出现线程不足,也可以避免在流量低谷期间造成计算资源浪费,从而提高了DNS服务器的效率。
技术领域
本发明涉及互联网技术领域,特别是涉及一种基于机器学习的DNS线程管理方法、装置和服务器。
背景技术
DNS(Domain Name System,域名系统),指的是在互联网中将域名映射为IP地址的一套系统,能够使用户能够利用更容易记住的域名去访问互联网,而不用去记住不易记住的IP数串。DNS几乎可以说是目前所有线上服务的基础。在DNS中,域名的管理者需要搭建DNS服务器,来处理DNS的查询请求。通常,DNS服务器程序启动时,会开启一定数量的线程以并行处理查询请求,每个线程绑定一个CPU核以执行相关的计算任务。
然而,本申请的发明人在实际中发现,由于DNS业务的查询量与用户行为息息相关,具有高峰期和低谷期交替的特点,因此预先开启固定数量的线程并绑定CPU核会导致DNS服务器的效率较差,例如,在高峰期时,可能由于线程不足导致DNS服务的性能变差,而在低谷期是可能由于线程数量过多而造成计算资源浪费,这样会影响到物理服务器上其他应用的性能。
发明内容
有鉴于此,本发明提供了一种基于机器学习的DNS线程管理方法、装置和服务器,以解决目前这种因线程数量固定而导致DNS服务器的效率较差的问题。
为了解决上述问题,本发明公开了一种基于机器学习的DNS线程管理方法,应用于基于Linux操作系统搭建的DNS服务器,所述DNS线程管理方法包括步骤:
每隔预设时长获取所述DNS服务器中所有线程所处理请求的请求数量;
利用预设的线程控制模型对所述请求数量进行计算,得到最优线程数;
如果当前线程数小于所述最优线程数,增加一个线程;
如果所述当前线程数大于所述最优线程数,减少一个线程。
可选的,所述线程控制模型通过如下步骤得到:
运行多台开启不同线程的DNS服务器,并向所述DNS服务器发送查询请求;
在所述DNS服务器处理所述查询请求时,获取所述DNS服务器的处理数据,其中,所述处理数据包括处理请求数量、请求处理时间和系统丢包率;
根据所述处理数据和预选的特征值,并使用监督学习的方法进行模型训练,得到所述线程控制模型。
可选的,所述增加一个线程,包括:
启动一个新线程;
将所述新线程与所述DNS服务器的一个CPU进行绑定。
可选的,所述减少一个线程,包括:
停止向当前线程中选定的目标线程分配任务;
在所述目标线程执行完所有任务后,关闭所述目标线程。
相应的,为了保证上述方法的实施,本发明还提供了一种基于机器学习的DNS线程管理装置,应用于基于Linux操作系统搭建的DNS服务器,所述DNS线程管理装置包括:
请求数量获取模块,用于每隔预设时长获取所述DNS服务器中所有线程所处理请求的请求数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810068774.6/2.html,转载请声明来源钻瓜专利网。