一种Smart Rack系统性能测试内存优化的方法技术方案

技术编号:15329306 阅读:95 留言:0更新日期:2017-05-16 13:00
本发明专利技术提供一种Smart Rack系统性能测试内存优化的方法,属于Smart Rack及内存领域,本发明专利技术主要包括两个方面:首先,在执行硬盘DD读写时每间隔30秒完成一次内存释放,定期规律的侦测并释放,其次,通过调低内存占用大的DD进程的优先级完成内存释放,由renice完成DD磁盘读写的系统进程优先等级的调低。通过性能测试内存优化,避免了DD进行硬盘压测消耗掉几乎所有的内存资源,大大提升了Smart Rack系统性能测试效率及均衡性。

Memory optimization method for performance test of Smart Rack system

The present invention provides a method for Smart Rack system performance test of memory optimization, Smart belongs to Rack and memory, the invention mainly includes two aspects: first, in the implementation of DD hard disk read and write every 30 seconds to complete a memory release, second regular detection and release, and occupy a large DD the process by reducing the memory priority to complete memory release, reduced from the renice to complete the system process DD disk read and write the priority. Through the performance test of memory optimization, to avoid the DD hard disk pressure measurement consumes almost all memory resources, greatly enhance the Smart performance of Rack system testing efficiency and balance.

【技术实现步骤摘要】
一种SmartRack系统性能测试内存优化的方法
本专利技术涉及SmartRack及内存领域,尤其涉及一种SmartRack系统性能测试内存优化的方法。
技术介绍
SmartRack系统内存管理机制分为物理内存和虚拟内存,物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在系统下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(SwapSpace)。作为物理内存的扩展,系统会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。系统的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,系统也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。系统进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,系统内核根据”最近最经常使用“算法,仅仅将一些不经常使用的页面文件交换到虚拟内存,一个占用很大内存的进程运行时,需要耗费很多内存资源,此时就会有一些不常用页面文件被交换到虚拟内存中,但后来这个占用很多内存资源的进程结束并释放了很多内存时,刚才被交换出去的页面文件并不会自动的交换进物理内存,除非有这个必要,那么此刻系统物理内存就会空闲很多,同时交换空间也在被使用。交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页面,它们又会被马上交换出去,如此以来,虚拟内存中可能没有足够空间来存储这些交换页面,最终会导致系统出现假死机、服务异常等问题,系统虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。因此合理规划和设计SmartRack内存的使用,是非常重要的。在SmartRack性能测试时,往往是多个压力工具同时进行压测,往往会遇到上面的问题,其中DD进行硬盘压测会消耗掉几乎所有的内存资源,造成其他任务内存资源不足出现任务执行慢甚至测试停止的事件发生。
技术实现思路
为了解决以上问题,本专利技术提出了一种SmartRack系统性能测试内存优化的方法。SmartRack系统性能测试内存优化主要通过定期规律的侦测并释放和通过调低内存占用大的DD进程的优先级完成内存释放。本专利技术的技术方案是:1、在执行DD时每间隔30秒完成一次内存释放。在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足,在后台执行yesdd测试的时候,使用for循环定时(每次执行完毕sleep约30秒)执行以下两条命令即可释放内存。sync#把内存中的缓存写入硬盘,保证清理内存不丢失重要数据echo1>/proc/sys/vm/drop_caches#释放内存具体脚本如下:for((i=0;i<2880;++i))dosyncecho1>/proc/sys/vm/drop_cachesSleep30done2、调低内存占用大的进程的优先级完成内存释放。通过调低内存占用大的DD进程的优先级完成内存释放,由renice完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。#renice+10`psaux|awk’{if($3>0.8&&id-u$1>500)print$2}’`其中用到ps获取进程信息,其实ps中%CPU一列的意义是进程实际占有CPU时间和他存活时间的比值,这个值能反应进程对CPU的消耗,但不能准确反应进程所占CPU时间占整个系统CPU的百分比。而top输出中的%CPU这一列正是进程所占CPU时间占整个系统CPU的百分比,用于限制进程CPU占用率更加合理,同时%MEM一列还反应了进程占用内存的百分比,能够用于限制进程内存占用率。具体脚本如下:#!/bin/shPIDS=`top-bn1|grep"^*[1-9]"|awk’{if($9>50||$10>25&&id-u$2>500)print$1}’`forPIDin$PIDSdorenice+10$PIDecho"renice+10$PID"done将脚本放到cron中运行,每分钟检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低被系统调度而释放内存,同时会向root发邮件提示该进程被调整过。#crontab-e*****limit.sh本专利技术的有益效果是:测试内存优化,在性能测试时多个压力工具同时进行压测,避免了DD进行硬盘压测消耗掉几乎所有的内存资源,造成其他任务内存资源不足出现任务执行慢甚至测试停止的事件发生,大大提升了SmartRack系统性能测试效率及均衡性。具体实施方式下面对本专利技术的内容进行更加详细的阐述:SmartRack系统性能测试内存优化的方法包括两大方面,主要通过定期规律的侦测并释放和通过调低内存占用大的DD进程的优先级完成内存释放。首先,在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足,使用for循环定时执行同步操作sync和内存释放命令echo1>/proc/sys/vm/drop_caches。其次,通过调低内存占用大的DD进程的优先级完成内存释放,由renice完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。通过在cron中运行,每分钟检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使进程优先级变低而被系统调度释放内存。本文档来自技高网
...

【技术保护点】
一种Smart Rack系统性能测试内存优化的方法,其特征在于,主要通过两个方面完成系统内存优化和释放:首先,在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足;其次,通过调低内存占用大的DD进程的优先级完成内存释放,由renice 完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。

【技术特征摘要】
1.一种SmartRack系统性能测试内存优化的方法,其特征在于,主要通过两个方面完成系统内存优化和释放:首先,在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足;其次,通过调低内存占用大的DD进程的优先级完成内存释放,由renice完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。2.根据权利要求1所述的方法,其特征在于,第一个方面中,在后台执行yesdd测试的时候,使用for循环定时执行以下两条命令即可释放内存:sync#把内存中的缓存写入硬盘,保证清理内存不丢失重要数据echo1>/proc/sys/vm/drop_caches#释放内存具体脚本如下:for((i=0;i<2880;++i))dosyncecho1>/proc/sys/vm/drop_caches...

【专利技术属性】
技术研发人员:白云峰
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1