空闲RAM充足却触发Swap致性能下降,附Linux内存性能测试程序
内存占用性能测试:空闲RAM仍用Swap的问题分析
我之前也碰到过这种糟心的情况——明明系统还有充足的空闲物理内存,却开始动用Swap分区,直接导致性能打折扣。为了搞清楚64位Red Hat Enterprise Linux Server 6.4下,大量占用内存时的性能表现,我写了个简单的测试程序(麻烦大家忽略代码里的内存泄漏问题哈):
#include <sys/time.h> #include <time.h> #include <stdio.h> #include <string.h> #include <iostream> #include <vector> using namespace std; double getWallTime() { struct timeval time; if (gettimeofday(&time, NULL)) { return 0; } return (double)time.tv_sec + (double)time.tv_usec * .000001; }
这个程序里的getWallTime()函数用来获取精确的墙钟时间,方便后续测试内存占用过程中的性能变化。通过不断分配内存(比如往vector里持续添加数据),就能模拟大量占用RAM的场景,进而观察系统是否会在空闲RAM充足时触发Swap,以及对应的性能损耗情况。
内容的提问来源于stack exchange,提问作者toddwz
相关产品推荐
相关产品推荐

