一种i/o密集型应用识别方法_2

文档序号:9708197阅读:来源:国知局
的切换状态(Csw);进程的阻塞(Pro)情况和系统之家网络 传输(Net)状态都要综合考虑。详细描述如下:
[0050] 通常按照任务对于资源分配的需求特征,可将任务分为CPU密集型、内存密集型、 网络密集型和I/O密集型。每种类型的任务运行时对资源的需求是不相同的,对于系统的压 力也是不一样的。CPU密集型应用主要消耗CPU资源,内存密集型以占用内存为主,网络密集 型应用更多的是消耗网络带宽,I/O密集型应用会使用大量的I/O资源,对服务器端的I/O性 能要求很高,并且在海量用户的访问下,查找、增加、备份和删重的压力会越来越大。本发明 主要考虑I/O密集型应用并且给出了相应的模型。
[0051] 对于I/O密集型应用而言,它是需要消耗CPU资源的。CPU由6个部分构成,通常用百 分比显示,分别为11861'、8}^七6111、11;^6、8七631、;[0¥3;[1:和1(116。11861'指的是用户态的进程所占 用的CPU时间的百分比;system是内核态的进程所占用的CPU时间片的百分比;nice指的是 改变过优先级的进程所占用的CPU时间的百分比,在linux下可以用nice和renice命令改变 一个进程的优先级;s tea 1指的是被偷取的CPU时间所占的百分比,s tea 1只会产生于虚拟机 上,并且由其他虚拟机偷取了这台虚拟机的CPU资源所导致;iowait表示进程因等待I/O操 作所等待CPU时间所占的百分比;idle就是空闲CPU时间所占的百分比。I/O密集型应用在大 多数情况下都占用iowait的时间片,这表明CPU在等待I/O设备的执行,CPU因此会被阻塞, 同时产生大量的上下文切换。
[0052] 上下文切换的数量也可以视为I/O密集型应用的一个重要特征。上下文是指CPU寄 存器和程序计数器在任何时间点的内容。当挂起一个进程,或从内存中回复下一个执行的 进程时,都会导致上下文切换的产生。一个硬件中断的产生,同样也会导致内核收到信号后 进行上下文切换。在云计算服务器上,运行着大量的I/O密集型应用,这势必会导致物理机 和虚拟机产生大量的中断和上下文切换,因此本文也将上下文切换数量作为判断I/O密集 型应用的一大特征。
[0053] 内存上,为了防止内存泄露,会使用虚拟内存。虚拟内存是计算机管理内存所采用 的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间), 然而实际上通常被分割成多个内存碎片,并且有部分暂时存储在外部的磁盘存储器上。在 进行数据交换时,如果物理内存不够的话,系统会把部分数据导入到硬盘,从而把硬盘的部 分空间当作内存来使用,这部分的内存就称之为虚拟内存(Linux系统也称作交换空间 Swap)。由于云计算服务器上运行着大量的I/O密集型应用,频繁的I/O读写操作会导致内存 紧张,虚拟内存会被大量使用以保证任务的正常执行,因此虚拟内存的使用情况可以作为 一项重要的参考依据。
[0054] 2)根据所述识别模型,对未知应用执行过程进行监测,采集一段时间内未知应用 执行过程对资源的使用情况数据。这里的资源包括物理机、虚拟机、管理服务器和存储节点 等,采集的使用情况数据包括CHJ在CPUiowait、CPUuser、CPUsystem三个状态下的占用值、 中断次数及频度、上下文切换数量、虚拟内存占用值、运行队列和阻塞队列的每秒任务数、 硬盘读写速率以及网络传输速率等。
[0055] 3)将步骤2)所采集的使用情况数据与设定的阈值条件进行比较,判断未知应用是 否为I/O密集型应用。
[0056] 如图1所示,步骤3)具体为:
[0057] 步骤301,判断CPU在CPUiowait、CPUuser、CPUsystem三个状态下的占用值是否均 满足第一阈值条件:iowait>C,user〈U,system〈U,iowait、user、system分别表示CPU在 CPU i owa i t、CPUus er、CPUsy s t em三个状态下的占用值,C和U为设定的阈值;若是,则执行步 骤302),若否,则执行步骤307X和U的具体取值与业务有关,本实施例中,C的取值范围20~ 50%,U的取值范围3~20%。
[0058]步骤302,判断上下文切换数量是否满足第二阈值条件:上下文切换数量〉W,W为设 定的阈值;若是,则执行步骤303,若否,则执行步骤3071的具体取值与业务有关,本实施例 中,W的取值范围6000~15000。
[0059]步骤303,判断虚拟内存占用值是否满足第三阈值条件且是否发生页面替换,第三 阈值条件为:虚拟内存占用值〉M,M为设定的阈值;若是,则执行步骤304,若否,则执行步骤 307 J的具体取值与业务有关,本实施例中,Μ的取值范围4~128MB。
[0060] 步骤304,判断任务队列中,阻塞队列的每秒任务数是否满足第四阈值条件:阻塞 队列的每秒任务数<P,P为设定的阈值;若是,则执行步骤305,若否,则执行步骤307。一般情 况阻塞队列小于CPU核数,通常单个I/O密集型应用不会导致系统处于高负载状态,本实施 例中,P取2。
[0061] 步骤305,判断硬盘读写速率是否满足第五阈值条件:硬盘读写速率〉V,V为设定的 阈值;若是,则执行步骤3 0 6,若否,则执行步骤3 0 7。本实施例中,V的取值范围12 K B / s~ 64MB/s〇
[0062 ]步骤306,判断网络传输速率是否满足第六阈值条件:网络传输速率〉N,N为设定的 阈值;若是,则判定未知应用为I/O密集型应用,若否,则执行步骤307。本实施例中,N的取值 范围 4KB/s ~4MB/s。
[0063]步骤307,判定未知应用为非I/O密集型应用。
[0064]为了验证上述识别方法的正确性及可行性,以下采用了大量的实验来进行模拟验 证。
[0065] 实验的IaaS环境基于CloudStack云计算平台,系统版本4.0,搭建了一个小型的云 计算系统,其中有1个管理服务器Management、2个主机节点Host和1个存储节点Storage。主 机节点Host的操作系统为Redhat server5.3,处理器Inter 15347003.60GHz,内存8GB DDR3,硬盘容量1TB。Host上的虚拟机,操作系统为Ubuntu 12.04版本,处理器为lGHz*2,内存 为2GB,网络带宽为150Mbs,磁盘转速为7200/分钟。实验的硬件环境如表1所示,其中,表中 第一列表示用作不同功能的PC机,第二列表示PC机的处理器,第三列是内存情况,第四列是 应用配置。
[0066] 表1实验环境硬件参数 [0067]
[0068] 实验一:向FTP服务器上传13.6GB的文件,文件一共14个,每个大小1GB左右。FTP服 务器是主机Host上的一台虚拟机,实验数据如图2-图7所示。
[0069]图2表明,在前1900秒的任务执行时间里,CPU的iowait所占用的百分比一直处于 50 %以上,而且较为剧烈。1900秒以后,任务结束,CPU消耗趋近于0。
[0070]图3表明,在前1900秒的任务执行时间里,上下文切换达到了 15000次/秒,说明系 统很忙碌,CPU在频繁等待1/0的执行。1900秒以后,任务结束,上下文切换变为0。
[0071 ]图4表明,在前1900秒的任务执行时间里,虚拟内存逐步上升,最后使用了 16MB,表 明该任务需要消耗虚拟内存。1900秒后,任务执行结束,虚拟空间未释放。
[0072]图5表明,在前1900秒的任务执行时间里,阻塞队列达到每秒2.6个左右,表明系统 因为某种原因,产生了大量阻塞,同时block〈4,即小于CPU核数,表明系统并没有完全满负 荷,仍然处于正常状态。1900秒后,任务执行结束,阻塞队列降为0。
[0073] 图6表明,在前1900秒的任务执行时间里,在硬盘上监测到大量的写数据,均值大 于IMB/s,这表明硬盘正在保存大量数据。1900以后,任务执行结束,速率将为0。
[0074] 图7表明,在前1900秒的任务执行时间里,网络接收监测到了大量数据,均值大于 IMB/s,表明网络中有大量数据向本机发送。1900以后,任务执行结束,速率将为0。
[0075]由图2-图7的参数,根据六元组F (t) = (CPU,Csw,Mem,Pro,I/
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1