今天继续无情转载的依然是来自无纯洁的一篇文章

 title=

部落手中的IPxCore的512M内存的OVZ只有96M的vSwap,而Locvps.net上512M内存的OVZ也只有128M的vSwap,两家比较优秀的主机商(至少我这么认为)都把vSwap设得比较小,这是为什么?而有些一些OpenVZ把vSwap设成与Ram值一样大小。前段时间,部落在TheQHost发TK,问购买页说的”vSwap Enabled”在哪儿,主机商很“爽快”地加了2G的vSwap(原本想找个借口退款:产品描述不实)。

不知大家是否注意到,一般用vSwap的VPS探针中显示差不多都是Swap区几乎是不用的。所以部落就想探究一下vSwap到底能用多少。

测试情况

这里有一个C程序测试VPS到底可以分配到多少内存(不是我原创,是别人写的),非OpenVZ建议先把Swap关掉,但部落这里就是为了测试vSwap到底能用多少。这是执行的代码:

wget http://vps1218.pjcss.com/test.c && gcc test.c && ./a.out

博主弄了个备份的

wget http://32mb.cn/download/vSwaptest.c && gcc vSwaptest.c && ./a.out

20220319 更新
因为年代久远,文件丢失,博主自己瞎整了一个

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main(){
        int z;
        for(z=1;z<16384;z++){
                void *t=malloc(1048576);
                memset(t,1,1048576);
                printf("Allocated:%dM\n",z);
        }
        return 0;
        int i;
        scanf("%dn",&i);
}

1TheQHost 2G Ram + 2G vSwap,最终取得3055M,这说明2G的vSwap只有一半是能使用的。

 title=

2.WeLoveServers 1G Ram + 1.2G vSwap,最终取得2267M,表现好像还不错,因为这是在达拉斯机房的,听小青年说的,达拉斯性能好。

 title=

3.CloudShards 32M Ram + 32M vSwap,最终取得48M,是vSwap有一半不能用,还是系统占用的部份不允许Locate?

 title=

4.Locvps 512M Ram + 128M vSwap,最终取得537M,额vSwap是摆设?

 title=

5.试试“屌丝神器”H1F 128M Ram + 256 vSwap,最终获得361M的成绩,实在令人惊喜啊。

 title=

6.最后试试看人品的urpad,1G Ram + 0K vSwap,额。 。 。没vSwap,发现这个程序的bug了,不能检测占用的内存的。

 title=

OpenVZ中,vSwap只有当内存耗尽才会大规模使用,而程序长时间没有活动会使用的vSwap恐怕是很小的。 vSwap给得很大几乎没有意义,因为很多主机商连内存都不能保证,正像上次OpenVZ内存写入测试中,一些OVZ的内存写入速度在500MB/s上下,可以肯定已经使用了母鸡的Swap区,否则速度不会那么慢。

小结

VPS一定要小心购买,购买后详细测试,同时也要考虑口碑。当然这个测试方法有没有问题,我并不清楚,希望大神指教。