基于JADE的数据库自适应负载控制分析

何勰绯 万加富



摘 要: 传统DBA数据库控制方法对系统参数进行设置和配置时,存在控制效率低以及能耗高的问题。提出基于JADE的数据库自适应负载控制方法,设计以JADE平台为基础的数据库自适应负载控制系统。系统由搜索和查询两部分构成,通过Agent之间相互协作来完成总体系统的负载控制。通过数据库爬虫Agent在数据库中搜集信息,形成原始数据库;应用KNN算法对原始数据库进行分类,实现数据库负载控制。查询部分通过JSP页面中的用户接口Agent实现与用户的交互;采用JDBC桥技术实现查询Agent对数据库的访问。实验结果表明,采用所提方法控制数据库负载,可提高数据库的实现价值、吞吐率以及资源利用率。
关键词: JADE; 数据库; 自适应; 负载控制; Agent
中图分类号: TN911?34; TP311.13 文献标识码: A 文章编号: 1004?373X(2017)16?0050?03
Abstract: The traditional DBA database control method exists low efficiency and high energy consumption for system parameter setting and allocation, so the JADE?based adaptive load control method of database is proposed to design the database adaptive load control system based on JADE platform. The system is composed of search and query. The load control of the overall system is completed by the mutual collaboration between Agents. The information is collected in the database by Agent, and the original database is formed. KNN algorithm is used to classify the original database to realize the load control of the database. The query part realizes the interaction with the users through the user interface Agent in the JSP page, and uses the JDBC bridge technology to query the Agent access to the database. The experimental results show that the proposed method for the database load control can improve the value, throughput and resource utilization of database.
Keywords: JADE; database; adaptive load control; Agent
由于当前科学技术水平不断提升,信息技术被作为生产力衡量的标准,信息数据量呈几何性的增长。应用数据库凭借其对海量数据的管理和存储优势从众多数据库系统中脱颖而出,成为时下的新宠。传统DBA数据库控制方法对系统参数进行设置和配置时,无法适应大量、复杂多变的数据库负载情况,存在控制效率低以及能耗高的问题。本文提出基于JADE的数据库自适应负载控制方法,增强系统稳定性,提高系统自身使用价值。
1 数据库自适应负载控制系统设计
1.1 系统体系结构设计
通过图1可知,塑造的基于JADE的数据库自适应负载控制系统由搜索和查询两大相对独立的部分组成,这两大部分通过分类数据库相连接[1]。分类数据库既可作为搜索部分的运行结果,又可作为查询部分的数据源。搜索部分包括数据库爬虫Agent、自动分类Agent和原始数据库[2];查询部分包括用户界面、用户接口Agent和查询Agent。
搜索部分可完成數据库信息的搜索与集成,对数据库信息进行归类,等待用户在数据库中查询。搜索部分的工作流程为:
(1) 服务器启动网络Agent,采用初始URL对爬虫进行发送;
(2) 爬虫Agent对从网络中采集的初始URL进行分析筛选并将结果写入原始数据队列中[3];
(3) 数据库页面分类Agent对爬虫Agent抓取的URL做进一步分类,通过分析数据属性,筛选出数据大小较符合的负载命令数据库优先执行,并反复执行该命令,直到达到满足条件时终止[4],信息分类结果将分别存储在各类数据库中。
采用JDBC桥技术实现查询Agent对数据库访问,查询部分工作流程为:
(1) 用户通过JSP页面中的用户接口Agent获取数据库服务器中的关键词;
(2) 用户接口Agent请求数据库内部服务器对其获取关键词进行查询;
(3) 数据库内部相应的查询Agent通过对分类数据库的访问[5],并将查询结果返回到用户接口Agent中,通过JSP页面呈现给用户。
1.2 系统Agent设计
如图2所示,Agent模块由用户接口Agent、查询Agent、数据库爬虫Agent及数据库页面分类Agent组成。这些Agent是数据库信息自适应负载控制的功能单元,它们据不同需求拥有明确的分工,基于外界指令形成不同的行为,协作完成数据库信息自适应负载控制。
用户接口Agent负责用户在用户界面Agent输入请求并接收到查询结果。查询Agent负责在数据库中查询从用户Agent接收到的关键词,将查询结果反馈到用户接口Agent。该Agent与用户接口Agent和查询Agent没有任何联系,所以并不与二者进行通信[6]。数据库页面分类Agent,运用KNN算法对数据库爬虫Agent提取到初步数据库进行分析并分类,将各类链接进行整理,分别划入相应数据库。
管理Agent对数据库爬虫Agent及数据库页面分类Agent进行控制[7]。
2 自适应控制系统源代码的实现
数据库页面分类Agent源代码实现步骤:
import 有价值的包;
public class DivisionAgentcomplete Agent{
public valueless setup()
try{
//对数据库进行访问
}
Obtain(Not consider d){
//异常处理
}
get address;
}
添加动作:
class Control headerDivisionmovementr extendOne?off action
public void movement()
try // 提取URLList中的关键词
while(urlRs.nex()){
//通过KNN算法在各数据表内录入相应的URL
//自定义在URL提取的关键词
//RetrievalKey(Character setAddr,Character setkeyWords)
}
Obtain(Not consider d){
//异常处理
myAgent.dofilter();
Public kicongRetrievalKey(Character set addr,Character set keyWords)
//在url數据列表中提取addr的keywords
}
以上是一个使用了KNN算法的数据库页面分类Agent,具体过程为,先建造一个拥有各种分类数据表的数据库。通过数据库页面分类Agent对数据库进行访问,提取出关键词与该页面进行匹配,匹配成功的就在该分类变量上加权值[8]。经过反复访问、匹配,再将最终得到几个权值减去一个阈值并取最大值的分类,当这个结果大于零时,该页面可归纳到该分类当中[9],相反的就要归纳到其他分类中。通过分析数据属性,筛选出数据大小较符合负载命令数据库优先执行。
3 实验分析
3.1 实验数据
实验对某网站应用数据库中20个控制间隔进行测试,各间隔包括20个负载请求,各负载请求均包含不同特征属性,负载控制特征参数为响应时间、CPU消耗及内存消耗。这些负载特征用文本的形式记录于文本文件中。采用本文提出的基于JADE自适应负载控制方法和传统DBA负载控制方法,对这些负载特征进行控制,分析两种控制方法负载控制性能。
实验以20条数据为一个控制间隔,随机抽取300条数据,分为20组进行实验。表1为一个控制间隔内5个负载的特征参数。
3.2 实验结果分析
基于上述描述的负载特征数据,实验检测本文方法和传统DBA方法的负载实现价值、平均响应时间、CPU消耗、内存消耗以及吞吐率性能。设置实验网站应用数据库的CPU空闲值为60%、内存空闲是50 KB、各控制间隔遗传代数为30。
通过图3可知,在传统DBA数据库控制方法下,负载平均响应时间在1~14 s之间,处理响应并不稳定,峰值较高。经过本文负载控制方法后,负载平均响应时间在2~6 s之间波动,在处理数据稳定情况下,平均响应时间明显缩短。在数据库资源过载情况下,通过本文负载控制方法的控制下,应用数据库系统平均响应时间较控制前明显缩短,大幅度提高了数据库处理效率。
4 结 论
本文提出了基于JADE的数据库自适应负载控制方法。实验结果表明,采用所提方法控制数据库负载,可提高数据库的实现价值、吞吐率以及资源利用率。
参考文献
[1] 崔建群,江波,吴黎兵.基于移动应用层组播终端主动反馈的自适应负载均衡机制研究[J].计算机科学,2015,42(4):40?43.
[2] 郭晴,杨海霞,刘永泰.云计算环境下的复杂数据库并行调度模型仿真[J].计算机仿真,2015,32(6):360?363.
[3] 郭鑫,任海鹏.三相PWM变换器的负载自适应控制[J].电子学报,2015,43(10):2088?2094.
[4] 任侠.基于动态自适应负载均衡的服务器集群优化策略[J].工业控制计算机,2015,28(12):38?39.
[5] 唐亚,王振友.基于JADE的自动聚类算法[J].计算机系统应用,2016,25(9):183?187.
[6] 杨芳,郭宏刚.网络入侵反追踪节点最优路径推演平台的设计与实现[J].现代电子技术,2016,39(22):14?17.
[7] 潘甦,张磊,刘胜美.基于未来负载预测的无线异构网络自适应负载均衡算法[J].系统工程与电子技术,2015,37(6):1384?1390.
[8] 茹心芹,韦徵,王伟,等.微网逆变器不平衡负载控制技术研究[J].电力电子技术,2016,50(7):40?43.
[9] 薛忠斌,周烜,张延松,等.内存列存储数据库中优化的混合自适应索引[J].计算机科学,2015,42(11):28?31.