一种SmartRack系统性能测试内存优化的方法与流程

文档序号:11154691 阅读:500 来源:国知局

本发明涉及Smart Rack及内存领域,尤其涉及一种Smart Rack系统性能测试内存优化的方法。



背景技术:

Smart Rack系统内存管理机制分为物理内存和虚拟内存,物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在系统下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。作为物理内存的扩展,系统会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。系统的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,系统也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。

系统进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,系统内核根据”最近最经常使用“算法,仅仅将一些不经常使用的页面文件交换到虚拟内存,一个占用很大内存的进程运行时,需要耗费很多内存资源,此时就会有一些不常用页面文件被交换到虚拟内存中,但后来这个占用很多内存资源的进程结束并释放了很多内存时,刚才被交换出去的页面 文件并不会自动的交换进物理内存,除非有这个必要,那么此刻系统物理内存就会空闲很多,同时交换空间也在被使用。

交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页 面,它们又会被马上交换出去,如此以来,虚拟内存中可能没有足够空间来存储这些交换页面,最终会导致系统出现假死机、服务异常等问题,系统虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。因此合理规划和设计Smart Rack内存的使用,是非常重要的。

在Smart Rack性能测试时,往往是多个压力工具同时进行压测,往往会遇到上面的问题,其中DD进行硬盘压测会消耗掉几乎所有的内存资源,造成其他任务内存资源不足出现任务执行慢甚至测试停止的事件发生。



技术实现要素:

为了解决以上问题,本发明提出了一种Smart Rack系统性能测试内存优化的方法。

Smart Rack系统性能测试内存优化主要通过定期规律的侦测并释放和通过调低内存占用大的DD进程的优先级完成内存释放。

本发明的技术方案是:

1、在执行DD时每间隔30秒完成一次内存释放。

在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足,在后台执行yesdd测试的时候,使用for 循环定时(每次执行完毕sleep约30秒)执行以下两条命令即可释放内存。

sync #把内存中的缓存写入硬盘,保证清理内存不丢失重要数据

echo 1 > /proc/sys/vm/drop_caches #释放内存

具体脚本如下:

for ((i=0; i<2880; ++i)) do sync echo 1 > /proc/sys/vm/drop_caches

Sleep 30 done

2、调低内存占用大的进程的优先级完成内存释放。

通过调低内存占用大的DD进程的优先级完成内存释放,由renice 完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。 #renice +10 `ps aux | 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 -bn 1 | grep "^ *[1-9]" | awk ’{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}’` for PID in $PIDS do renice +10 $PID echo "renice +10 $PID" done 将脚本放到cron中运行,每分钟检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低被系统调度而释放内存,同时会向root发邮件提示该进程被调整过。#crontab -e * * * * * limit.sh

本发明的有益效果是:

测试内存优化,在性能测试时多个压力工具同时进行压测,避免了DD进行硬盘压测消耗掉几乎所有的内存资源,造成其他任务内存资源不足出现任务执行慢甚至测试停止的事件发生,大大提升了Smart Rack系统性能测试效率及均衡性。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

Smart Rack系统性能测试内存优化的方法包括两大方面,主要通过定期规律的侦测并释放和通过调低内存占用大的DD进程的优先级完成内存释放。

首先,在执行硬盘DD读写时每间隔30秒完成一次内存释放,通过定期规律的侦测并释放从而避免内存过多被磁盘消耗导致内存资源不足,使用for 循环定时执行同步操作sync和内存释放命令echo 1 > /proc/sys/vm/drop_caches。

其次,通过调低内存占用大的DD进程的优先级完成内存释放,由renice 完成DD磁盘读写的系统进程优先等级的调低,通过系统核心调度完成资源有效利用和内存的释放。通过在cron中运行,每分钟检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使进程优先级变低而被系统调度释放内存。

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