我们平时购买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
我的微信公众号
我的微信公众号扫一扫