首页 > 网络技巧 > 【经验】为自己的云主机VPS测试实际可用内存
2015
08-14

【经验】为自己的云主机VPS测试实际可用内存

BACK TOP文章索引

【经验】为自己的云主机VPS测试实际可用内存 - 第1张  | 意林笔记

现在VPS超售都已经是默认的了,特别是OpenVZ架构的虚拟技术,买来一个512M内存的,free命令显示是足的,但是用起来卡不说,没开几个程序就内存爆满了,这种就是超售的感觉。超售多少完全看主机商的良心了。我也被坑过,所以,网上找了方法加上自己折腾,弄了个工具检测。

一、建立编译文件

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

  1. /**
  2.  *  * MemoryTest.cpp
  3.  *   * (c) 2014 David Huang
  4.  *    *
  5.  *     * Use this program AT YOUR OWN RISK !
  6.  *      * DO NOT COMPILE AND USE IT ON ANY
  7.  *       * PRODUCTION SERVER !
  8.  *        */
  9. #include <iostream>
  10. #include <unistd.h>
  11. #include <stdlib.h>
  12. using namespace std;
  13.  
  14. int main()
  15. {
  16.     cout<<"I will try my best to fill your RAM."<<endl
  17.     <<"You have 3 seconds to quit (Ctrl+C)"<<endl;
  18.     sleep(3);
  19.     long allocatedMB = 0;
  20.     while (true)
  21.     {
  22.         unsigned char * leakThisMemoryPlease = new unsigned char[10485760];
  23.         for (int i = 0; i < 10485760; i++)
  24.             leakThisMemoryPlease[i] = i*rand();
  25.         allocatedMB += 10;
  26.         cout<<allocatedMB<<"MB allocated"<<endl;
  27.     }
  28.     return 0;
  29. }

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

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

Debian系统则替换为以下命令:

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

中途有的主机可能会出现报错,如下:

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

解决方法如下:

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

2、将该文件编辑为[epel]下的baseurl前的#号去掉,mirrorlist前添加#号。正确配置如下:

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

再运行编译第二步的脚本就可以了。

三、在文件目录下执行文件

编译好了,在同级目录有个可执行文件memtest

  1. ./memtest

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

  1. I will try my best to fill your RAM.
  2. You have 3 seconds to quit (Ctrl+C)
  3. 10MB allocated
  4. 20MB allocated
  5. 30MB allocated
  6. 40MB allocated
  7. ...
  8. 430MB allocated
  9. 440MB allocated
  10. 450MB allocated
  11. 460MB allocated
  12. 470MB allocated
  13. 480MB allocated
  14. 490MB allocated
  15. 500MB allocated
  16. 510MB allocated
  17. Killed

以此就能看出商家给你分配的内存是否与表述的有出入,出入太大的话可以发TK问问,小个10-20mb就算了吧。

最后编辑:
作者:意林
站长意林,一名80后全职普通上班族,旗下提供HelloIDC免费空间等业务。
捐 赠如果感觉本站不错,请尝试捐助一下,1块也不少!

【经验】为自己的云主机VPS测试实际可用内存》有 2 条评论

  1. Memory_Lee 说:

    如果我用一台机器编译了,生成了可执行文件
    可以拷贝出来给另一台机器用吗?放在服务器上让其他机器wget就完了

留下一个回复

你的email不会被公开。