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://ylnote.com/298.html

weinxin
我的微信公众号
我的微信公众号扫一扫
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: