一种HTTPS服务器的加密计算方法及装置与流程

文档序号:16087187发布日期:2018-11-27 22:34阅读:242来源:国知局

本发明设计计算机技术领域,更具体的,涉及一种HTTPS服务器的加密计算方法及装置。



背景技术:

HTTPS(Hyper Text Transfer Protocolover Secure Socket Layer),是以安全为目标的HTTP通道,即是HTTP的安全版。

对于服务器而言,HTTPS部署时有一个重要问题,就是对称、非对称加密算法的计算。加密算法的计算消耗大量的计算资源,因此一般会采取使用特殊硬件的方式应对,如INTEL公司的QuickAssistTechnology卡(简称为QAT卡)。以目前使用的应用层Nginx服务器为例,Nginx服务器有个ssl-engine模块,当需要nginx服务器需要进行加密计算时,会读取这个模块,该模块会将计算任务下发到QAT卡并使用QAT处理。

但在实际运行中,存在这样一个问题:在QAT卡的繁忙时段,即使在CPU很空闲的情况下,ssl-engine模块依然会将所有的计算任务交给QAT卡来处理;QAT由于已经比较繁忙,处理能力反而不如此时的CPU,造成加密计算任务处理速度变慢。



技术实现要素:

有鉴于此,本发明公开了一种HTTPS服务器的加密计算方法及装置,在合适的时间段,使用CPU和QAT卡共同处理加密计算任务,提高了加密计算任务的处理效率。

为了实现上述发明目的,本发明提供的具体技术方案如下:

一种HTTPS服务器的加密计算方法,应用于Nginx服务器,所述方法包括:

判断当前时刻是否处于CPU适用时段;

若是,分别向QAT卡和CPU分配至少一个加密计算任务,使QAT卡和CPU分别执行各自的加密计算任务;

若否,向QAT卡分配加密计算任务,使QAT卡执行加密计算任务。

可选的,所述方法还包括:

根据应用层HTTPS服务器的历史日志和物理层的历史监控日志确定CPU适用时段。

可选的,所述根据应用层HTTPS服务器的历史日志和物理层的历史监控日志确定CPU适用时段,包括:

根据应用层HTTPS服务器的历史日志确定预设数量的QAT卡繁忙时间段;

根据物理层的历史监控日志,在预设数量的QAT卡繁忙时间段中将满足第一预设条件的QAT卡繁忙时间段确定为CPU适用时段,所述第一预设条件为CPU在超过第一预设比例的时间内的使用率均低于第一预设值。

可选的,所述分别向QAT卡和CPU分配加密计算任务,包括:

判断CPU在连续N个单位时间段内的使用率是否满足第二预设条件,所述第二预设条件为CPU在每个单位时间段内超过第二预设比例的时间内的使用率均低于第二预设值;

若是,判断加密计算任务处理队列是否为空,所述加密计算任务处理队列用于存储分配给CPU的加密计算任务;

若为空,按第三预设比例分别向QAT卡和CPU分配加密计算任务,其中,将向CPU分配的加密计算任务放入所述加密计算任务处理队列中。

可选的,所述方法还包括:

当CPU在连续N个单位时间段内的使用率不满足第二预设条件,或加密计算任务处理队列不为空时,不向CPU分配加密计算任务。

一种HTTPS服务器的加密计算装置,包括:

判断单元,用于判断当前时刻是否处于CPU适用时段;

若是,触发第一分配单元,用于分别向QAT卡和CPU分配至少一个加密计算任务,使QAT卡和CPU分别执行各自的加密计算任务;

若否,触发第二分配单元,用于向QAT卡分配加密计算任务,使QAT卡执行加密计算任务。

可选的,所述装置还包括:

确定单元,用于根据应用层HTTPS服务器的历史日志和物理层的历史监控日志确定CPU适用时段。

可选的,所述确定单元具体用于:根据应用层HTTPS服务器的历史日志确定预设数量的QAT卡繁忙时间段;根据物理层的历史监控日志,在预设数量的QAT卡繁忙时间段中将满足第一预设条件的QAT卡繁忙时间段确定为CPU适用时段,所述第一预设条件为CPU在超过第一预设比例的时间内的使用率均低于第一预设值。

可选的,所述第一分配单元具体用于:判断CPU在连续N个单位时间段内的使用率是否满足第二预设条件,所述第二预设条件为CPU在每个单位时间段内超过第二预设比例的时间内的使用率均低于第二预设值;若是,判断加密计算任务处理队列是否为空,所述加密计算任务处理队列用于存储分配给CPU的加密计算任务;若为空,按第三预设比例分别向QAT卡和CPU分配加密计算任务,其中,将向CPU分配的加密计算任务放入所述加密计算任务处理队列中。

可选的,所述第一分配单元,还用于当CPU在连续N个单位时间段内的使用率不满足第二预设条件,或加密计算任务处理队列不为空时,不向CPU分配加密计算任务。

相对于现有技术,本发明的有益效果如下:

本发明公开的一种HTTPS服务器的加密计算方法及装置,在CPU适用时段使用QAT卡和CPU共同执行加密计算任务,避免了现有技术中QAT卡繁忙且CPU空闲时只使用QAT卡执行加密计算任务导致QAT卡处理速度慢、CPU资源浪费的问题,有效利用了CPU资源,提高了加密计算任务的处理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种HTTPS服务器的加密计算方法流程图;

图2为本发明实施例公开的另一种HTTPS服务器的加密计算方法流程图;

图3为本发明实施例公开的/proc/stat中CPU信息示意图;

图4为本发明实施例公开的一种HTTPS服务器的加密计算装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本实施公开了一种HTTPS服务器的加密计算方法,应用于Nginx服务器,具体应用于Nginx服务器的ssl-engine模块,具体包括以下步骤:

S101:判断当前时刻是否处于CPU适用时段;

当前时刻为接收到加密计算任务的时刻。

需要说明的是,CPU适用时段为一天、一周等时间段中的一段固定时间,CPU适用时段表示QAT卡繁忙且CPU空闲的时间段。

在判断当前计算周期是否处于CPU适用时段之前,需要根据应用层HTTPS服务器的历史日志和物理层的历史监控日志确定CPU适用时段。

具体的,根据应用层HTTPS服务器的历史日志确定预设数量的QAT卡繁忙时间段;根据物理层的历史监控日志,在预设数量的QAT卡繁忙时间段中将满足第一预设条件QAT卡繁忙时间段确定为的CPU适用时段,所述第一预设条件为CPU在超过第一预设比例的时间内的使用率均低于第一预设值。

由于QAT卡的功能为处理HTTPS的加密计算任务,因此,当服务器的HTTPS连接最多的时间段可以被认为是QAT卡计算最繁忙的时段,即QAT繁忙时间段。

具体的,应用层HTTPS服务器的历史日志中每一行日志可以认为是处理了一个HTTPS加密计算任务,将应用层HTTPS服务器的历史日志以一定时间间隔为统计粒度(如1小时)进行统计,找出日志行数最多的预设数量的时间段,作为一天当中预设数量的QAT卡繁忙时间段,预设数量是预先设定的,如设定为3。

通过物理层的历史监控日志可以获取CPU在不同时间内的使用率,所述第一预设条件为CPU在超过第一预设比例的时间内的使用率都低于第一预设值,如CPU在超过95%的情况下使用率都低于50%。

若是,执行S102:分别向QAT卡和CPU分配至少一个加密计算任务,使QAT卡和CPU分别执行各自的加密计算任务;

具体的,Nginx服务器中的ssl-engine模块主动启动一个进程,生成一个加密计算任务处理队列,将分配给CPU的加密计算任务放入加密计算任务处理队列中,操作系统从加密计算任务处理队列中获取加密计算任务,并自动根据CPU的状态决定获取加密计算任务,然后交给CPU来处理并返回结果。

若否,执行S103:向QAT卡分配加密计算任务,使QAT卡执行加密计算任务。

本实施例公开的一种HTTPS服务器的加密计算方法,在CPU适用时段使用QAT卡和CPU共同执行加密计算任务,避免了现有技术中QAT卡繁忙且CPU空闲时只使用QAT卡执行加密计算任务导致QAT卡处理速度慢、CPU资源浪费的问题,有效利用了CPU资源,提高了加密计算任务的处理效率。

为了更加准确的判断当前CPU是否适于执行加密计算任务,在当前计算周期处于CPU适用时段时,不立即向CPU分配加密计算任务,而是对CPU的使用率进行进一步检测,具体的,本实施例公开了另一种HTTPS服务器的加密计算方法,请参阅图2,所述方法具体包括以下步骤:

S201:判断当前时刻是否处于CPU适用时段;

若否,S202:向QAT卡分配加密计算任务,使QAT卡执行加密计算任务。

若是,S203:判断CPU在连续N个单位时间段内的使用率是否满足第二预设条件;

所述第二预设条件为CPU在每个单位时间段内超过第二预设比例的时间内的使用率都低于第二预设值,如CPU在连续100个单元时间段内,每个单位时间段内超过95%的时间内使用率都低于30%。

请参阅图3,图3为/proc/stat中CPU信息示意图,/proc/stat为Linux系统下的一个文件路径和文件名,通过读取/proc/stat中CPU信息可以计算CPU使用率。

具体的,取两个相隔极短的时间点,记为t1和t2,读取每个时间点/proc/stat中的第一行信息。令s1=t1中第一行所有数值的和,s2=t2中第一行所有数值的和,total=s2-s1。另,i1=t1中第一行第四列的值,i2=t2中第一行第四列的值,idle=i2-i1。则CPU使用率q=(total-idle)/total。

若否,S204:不向CPU分配加密计算任务;

若是,S205:判断加密计算任务处理队列是否为空;

所述加密计算任务处理队列用于存储分配给CPU的加密计算任务。

若不为空,执行S204;

若为空,S206:按第三预设比例分别向QAT卡和CPU分配加密计算任务,其中,将向CPU分配的加密计算任务放入所述加密计算任务处理队列中。

第三预设比例可以为1:W,W可以设定为20,即向QAT卡和CPU按1:20的比例分配加密计算任务。

还需要说明的是,所述HTTPS服务器的加密计算方法还包括:监控加密计算任务处理队列中任务的数量,当加密计算任务处理队列中还有任务则在该单位时间段内不向加密计算任务处理队列中放入加密计算任务。

本实施例公开的一种HTTPS服务器的加密方法,通过判断当前计算周期是否处于CPU适用时段,判断CPU使用率是否符合要求,并判断加密计算任务处理队列是否为空,准确判断当前计算周期是否为QAT卡繁忙且CPU空闲,使加密计算任务被高效率执行。

基于上述实施例公开的一种HTTPS服务器的加密计算方法,请参阅图4,本实施例对应公开了一种HTTPS服务器的加密计算装置,包括:

判断单元401,用于判断当前时刻是否处于CPU适用时段;

若是,触发第一分配单元402,用于分别向QAT卡和CPU分配至少一个加密计算任务,使QAT卡和CPU分别执行各自的加密计算任务;

若否,触发第二分配单元403,用于向QAT卡分配加密计算任务,使QAT卡执行加密计算任务。

可选的,所述装置还包括:

确定单元,用于根据应用层HTTPS服务器的历史日志和物理层的历史监控日志确定CPU适用时段。

可选的,所述确定单元具体用于:根据应用层HTTPS服务器的历史日志确定预设数量的QAT卡繁忙时间段;根据物理层的历史监控日志,在预设数量的QAT卡繁忙时间段中将满足第一预设条件的QAT卡繁忙时间段确定为CPU适用时段,所述第一预设条件为CPU在超过第一预设比例的时间内的使用率均低于第一预设值。

可选的,所述第一分配单元402具体用于:判断CPU在连续N个单位时间段内的使用率是否满足第二预设条件,所述第二预设条件为CPU在每个单位时间段内超过第二预设比例的时间内的使用率均低于第二预设值;若是,判断加密计算任务处理队列是否为空,所述加密计算任务处理队列用于存储分配给CPU的加密计算任务;若为空,按第三预设比例分别向QAT卡和CPU分配加密计算任务,其中,将向CPU分配的加密计算任务放入所述加密计算任务处理队列中。

可选的,所述第一分配单元402,还用于当CPU在连续N个单位时间段内的使用率不满足第二预设条件,或加密计算任务处理队列不为空时,不向CPU分配加密计算任务。

本实施例公开的一种HTTPS服务器的加密计算装置实现了对现有Nginx服务器的改进,使Nginx服务器的ssl-engine模块不仅能将加密计算任务分配给QAT卡,还可以主动启动一个进程,生成一个加密计算任务处理队列,在CPU适用时段使用QAT卡和CPU共同执行加密计算任务,将向CPU分配的加密计算任务放在该队列中。避免了现有技术中QAT卡繁忙且CPU空闲时只使用QAT卡执行加密计算任务导致QAT卡处理速度慢、CPU资源浪费的问题,有效利用了CPU资源,提高了加密计算任务的处理效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1