VPS测评介绍
VPS技术分享

Linux VPS测评工具:memtest测试VPS实际可用内存数

内存量对于VPS来说是一个重要的指标,但是因为有些主机商的VPS存在超售现象,所以实际分配到的可用内存数可能达不到标称的内存数,memtest这个工具可以测试VPS实际可使用的内存的最大值。memtest这个VPS测评工具,通过不断增加填充内存的量,直到内存被占用玩,进程被杀掉为止。


一、memtest使用方法

64位系统

wget http://down.xxorg.com/Tool/memtest/memtest_1M_64
chmod +x ./memtest_1M_64
./memtest_1M_64

32位系统

wget http://down.xxorg.com/Tool/memtest/memtest_1M_32
chmod +x ./memtest_1M_32
./memtest_1M_32

运行结果如下:

[root@ultra ~]# chmod +x ./memtest_10M_64
[root@ultra ~]# ./memtest_10M_64
====================================
I will try my best to fill your RAM.
Add 10M
www.xxorg.com
====================================
You have 3 seconds to quit (Ctrl+C)
10MB allocated
20MB allocated
30MB allocated
40MB allocated
50MB allocated
……
……
……
440MB allocated
450MB allocated
460MB allocated
470MB allocated
480MB allocated
Killed
[root@ultra ~]#

二、源文件编译运行(上面步骤中memtest的由来)

1、编译过程

    如果需要自己重新编译运行的话,首先在在Linux下建立文件名为memtest.cpp的c++文件(文件下载地址:http://down.xxorg.com/Tool/memtest/memtest.cpp),文件内容如下:

#include <iostream>
#include <unistd.h>
#include <stdlib.h>
using namespace std;
 
int main()
{
    cout<<"===================================="<<endl
	<<"I will try my best to fill your RAM."<<endl
	<<"Add 10M"<<endl
	<<"www.xxorg.com"<<endl
	<<"===================================="<<endl
    <<"You have 3 seconds to quit (Ctrl+C)"<<endl;
    sleep(3);
    long allocatedMB = 0;
    while (true)
    {
        unsigned char * leakThisMemoryPlease = new unsigned char[10485760];
        for (int i = 0; i < 10485760; i++)
            leakThisMemoryPlease[i] = i*rand();
        allocatedMB += 10;
        cout<<allocatedMB<<"MB allocated"<<endl;
    }
    return 0;
}

编译环境,CentOS系统运行以下命令:

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

Debian系统运行以下命令:

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

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

./memtest

2、编译过程错误处理

编译过程中可能会出现如下错误:

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

然后再使用上面的命令重新编译。

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

赞(0)
未经允许不得转载:服务器VPS折腾 » Linux VPS测评工具:memtest测试VPS实际可用内存数

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址