Linux VPS可用内存测试工具 memtest

我们平时购买VPS会碰到商家超售的情况,尤其是openvz架构的更容易超售,虽然标的是2G或4G等大内存,但是卖的人多了,你可能连1G都用不了。我们可以用memtest工具来给内存进行一下压力测试,看看到底有多少内存可用。

 

一、新建编译文件

linux的VPS新建一个文件名位memtest.cpp的c++文件,内容如下:

/**
 *  * MemoryTest.cpp
 *   * (c) 2014 David Huang
 *    *
 *     * Use this program AT YOUR OWN RISK !
 *      * DO NOT COMPILE AND USE IT ON ANY
 *       * PRODUCTION SERVER !
 *        */
#include 
#include 
#include 
using namespace std;
 
int main()
{
    cout<<"I will try my best to fill your RAM."<

 

二、编译环境,运行以下命令:

centos系统

yum install gcc gcc-c++ libstdc++-devel
g++ memtest.cpp -o memtest

debian系统

apt-get install gcc
g++ memtest.cpp -o memtest

如果编译过程中出现如下错误:

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

解决方法如下:

编辑该文件:/etc/yum.repos.d/epel.repo

将该文件[epel]部分里的baseurl前的#号去掉,mirrorlist前添加#号。正确配置如下:

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

然后再使用第二步的命令重新编译即可。

 

三、在目录下执行文件

编译完成后,在当前编译目录下有个可执行文件memtest,运行这个memtest:

./memtest

执行后就能检测可用内存了,结果如下所示就成功了:

I will try my best to fill your RAM.
You have 3 seconds to quit (Ctrl+C)
10MB allocated
20MB allocated
30MB allocated
40MB allocated
...
430MB allocated
440MB allocated
450MB allocated
460MB allocated
470MB allocated
480MB allocated
490MB allocated
500MB allocated
510MB allocated
Killed

OpenVZ的VPS如果内存超售严重的话,使用上面的memtest检测VPS实际可用内存数后,实际占用的内存可能与VPS商家标称的内存差距很大,如果只是差个一二十兆属于正常,另外如果VPS有SWAP的话最后输出的最大内存值应该是Ram+Swap的总和。

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/soft/3605.html

发表评论

登录后才能评论