



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器学习的服务器调优系统设计论文 摘要随着计算机网络的广泛应用,越来越多的网络服务程序都要求服务器具有稳定的性能以提供可靠的服务。本文提出了基于机器学习的服务器调优系统的设计与实现方法,为提高服务器的可靠性及高效性提供了较好的解决方案。 关键词机器学习;服务器调优;线程池 TP181A1009-5349(xx)02013301 一、线程池调优系统总体设计 线程池调优系统由四个模块组成:线程池模块、性能监测模块、支持向量机调优模块。线程池模块负责线程池的创建与维护,任务队列的任务管理等,并将任务队列中的用户任务取出放入线程池中进行执行。性能监测模块负责对表征线程池性能的三个特征量吞吐量、任务运算时间和任务阻塞时间的监测,作为测试样本输入支持向量机调优模块中。支持向量机调优模块则通过性能监测模块提供的测试样本,得到所需的最佳线程池尺寸,并与当前的线程池尺寸进行对比,最后调整线程池尺寸到最佳。 二、线程池模块 线程池模块主要负责线程池内线程的创建、销毁、构造任务队列,并将任务队列中的用户任务取入线程池中分配空闲线程来执行。系统采用Win32的提供的线程库,以面向对象思想实现相关功能模块。线程池模块主要包括线程池类CPoolThread、任务队列类CJobDequeue、线程类CThread以及同步类CMutex。线程类CThread最重要的一个方法是线程的创建方法CThread:Create()。线程创建方法采用了Win32线程库提供的线程创建应用程序接口CreateThread(Null,0,_ThreadEntry,this,0,&ThreadID)来实现。线程池类CThreadPool主要提供了一个数组变量m_list_thread来维护一个线程池,线程池内的每个线程都存在了这个数组变量中,而具体的池内线程的操作都交给了线程类CThread来完成。线程池类CThreadPool主要包括初始化线程池的初始化方法CThreadPool:InitInstance()来实现线程池内所有线程的创建操作,具体通过CThread类的CThread:Create()方法来实现每个线程的创建。任务队列类CJobQueue是线程池类的一个对象,维护了一个任务队列数组列表m_normal_list,用户任务经过线程池类添加任务接口进入此数组列表中。任务队列类通过队列列表来维护管理等待中的用户任务。同步类CMutex主要是为了实现程序中的某些互斥操作设立的,通过对私有变量m_lock调用WinAPI函数的WaitForSingleObject()与ReleaseMutex()来实现程序的加锁与解锁操作。 三、性能监测模块 性能监测模块主要是监测表征线程池性能的三个特征量:吞吐量、任务运算时间和任务阻塞时间。由于吞吐量是监测用户任务进入任务队列的数量,因此,对吞吐量的监测可以在任务队列类中实现。而任务运算时间和任务阻塞时间直接是与线程的执行任务相关的,因此,将这两个量的监测放入线程类中实现。性能监测模块对吞吐量的监测方法。每当有用户任务通过线程池类进入任务队列时,任务队列将其成员变量m_tuntu进行加1操作,实现对吞吐量的实时更新。任务运算时间的监测方法主要通过调用Windows提供的API函数GetThreadTimes添加至线程类中的Run方法中来实现。GetThreadTimes函数可以返回四个参数:线程创建时间、线程退出时间、系统代码运算时间和用户代码运算时间。因此,可以通过对系统代码时间与用户代码时间求和来得到任务占用CPU的时间,也就是任务运算时间。具体做法是当线程类中Run方法启动用户任务时,即调用此API函数,获得任务进入线程池时间;当用户任务运行结束时,再次调用此API函数,即可获得任务离开线程池时间,将二者做差即可得到任务占用CPU的运算时间。对任务阻塞时间的监测方法的实现则相对麻烦一些,因为没有直接测试任务阻塞时间的API函数.但是可以通过间接的方法来测量,即任务阻塞时间=任务执行时间-任务运算时间。其中,任务执行时间可以通过WindowsAPI函数getTickCount()来分别得到任务进入线程池与离开线程池时的CPU时钟,从而做差就可以求出任务执行时间;而任务运算时间也可以得到,因此再将两者做差就可以得出最后的任务阻塞时间。具体做法同监测任务运算时间时的做法,只是改变了监测的API函数。 四、支持向量机调优模块 根据支持向量机调优模型,将支持向量机调优模块写成线程类中的一个函数调优函数Tuning()。通过线程池类内的成员变量m_tuntu、m_cmptm和m_blktm获取当前线程池性能数据,输入到支持向量机方法中得到最佳线程池尺寸。当最佳线程池尺寸与当前线程池尺寸不符时,需要对线程池的尺寸进行调整。当需要增加线程池尺寸时,可以通过WindowsAPI函数CreateThread()来创建新线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土配合比变动管理方案
- 水管所业务大讲堂课件
- 水稻第三期课件
- 农副产品加工设备维护与保养方案
- 水痘相关知识
- 造型基础色彩构成设计83课件
- 2025版猎聘服务专项合作协议(初创企业)
- 二零二五年度房产物业管理服务协议书
- 2025版影视公司离婚协议与版权及收益分配合同
- 2025版宾馆房间租赁合同及商务会议服务协议
- 餐饮店品牌授权使用合同范本
- 学堂在线 走进医学 章节测试答案
- 蔬菜温室大棚项目可行性研究报告书书
- 闵行区2024-2025学年下学期七年级数学期末考试试卷及答案(上海新教材沪教版)
- 八大特殊作业管理培训
- 费用报销合规培训
- 义务教育科学课程标准(2022年版)
- Q-GDW11628-2016新能源消纳能力计算导则
- 十五五文物规划思路
- 2025年修订版《雇佣合同》全文
- 公安宣传工作管理制度
评论
0/150
提交评论