Virpus:$7 512MB OpenVZ VPS

virpus

Virpus 从2006年就开始销售 VPS,算一家 “老“ VPS provider 了,当然他家的 VPS 价格也不菲,官方网站上提供的最便宜一款要15.99美元起,不过现在他家在 WHT 上推出了一款 Basic VPS,只要7美元,如果预付6个月的话还送 DirectAdmin,租用的是 Wholesale Internet 的服务器和设备。这款不到10美元的 VPS 配置如下:

服务器在 Kansas City
VSXPathway 控制面板
25GB 硬盘
512MB Guaranteed/2048MB Burst
5 Mbps Unmetered
2个 IP
7美元

服务器的硬件配置比较杂,各种配置都有:

We have many servers all which range from different specs. We tend to give customers 50% of the total CPU specs of a given system.

限制 Xen Dom0 的内存

今年来的新人比较多,每个人都需要至少两个 Xen 虚拟机做项目,一个 Linux 一个 Windows,去年升级到 16GB 内存的服务器都显得资源很紧张,今天 VPSee 给新来的人分配虚拟机的时候居然发现内存不够用。Xen 运行一段时间后,dom0 就会吃掉几乎所有可用内存(这是 Linux 的特点,把多余的内存用来做缓存),这时候如果要新建一个 Xen 虚拟机的话就造成内存分配不足的错误:

# xm create vm01
Using config file "./vm01".
Error: (12, 'Cannot allocate memory')

解决的办法很容易,就是在 Xen 内核启动的时候加上 dom0_mem=512M 参数限制,这样 dom0 最多只能使用 512MB 的内存。当然可以根据自己情况来决定给 dom0 分配多少内存,如果不确定的话,这篇 “应该给 Xen Dom0 和 DomU 配置多大内存?” 可能会有帮助。

# vi /etc/grub.conf
default=0
timeout=2
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.11.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-164.11.1.el5 dom0_mem=512M
        module /vmlinuz-2.6.18-164.11.1.el5xen ro root=LABEL=/
        module /initrd-2.6.18-164.11.1.el5xen.img

HWS Hosting:£4 128MB OpenVZ VPS

hwshosting

HWS Hosting 是家英国 Hosting provider,除了 VPS 还提供 share hosting, reseller hosting 等,已经存在好多年,有多年 hosting 的经验。现在使用优惠码 “NEWYEAR10” 可以得到一些半价 VPS,具体优惠信息可以看 WHT 的这篇广告。有 Bluesquare UK 和 Colo4Dallas US 两个数据中心可选。支付方式除了 Paypal, 信用卡等外,还支持 Google Checkout 支付,如果在英国还可以用支票支付。VPS 配置如下:

服务器在 Bluesquare UK or Colo4Dallas US
SolusVM 控制面板
30GB 硬盘
128MB Guaranteed/512MB Burst
300GB 带宽
2个 IP
4英镑($6.47美元)

没有服务器配置信息。

配置 Squid 服务器的硬件要求

去年有台 Squid 主服务器的主板坏了,因为有备份服务器所以不碍事,这台备份服务器是一台很老的 Pentium III 级别的 PC,平时不怎么用,只有主服务器 down 掉的时候才临时应付一下。VPSee 现在要抓紧时间把那台 Squid 主服务器换掉(在备份服务器坏掉之前~~),不考虑买新机器了,去年升级留下了很多老机器,以及一些内存、硬盘等配件,相互搭配一下应该可以配出几台好机器。

Squid 服务器的性能对内存和硬盘的要求比较敏感,硬盘缓存多少数据和需要多大内存之间有某种关系,这是因为每个缓存过的 object 在内存里都保留相应的 metadata,方便 Squid 能迅速查询 cache,这些 metadata 是由 StoreEntry 数据结构来保存的,每个 StoreEntry 占用 56 Bytes,加上每个 StoreEntry 都有1个 16-byte 的 cache key,所以保存在 cache 里面的每个 object 在内存中都对应占用 72 Bytes(metadata),这是在32位机器上的情况,如果是64位机器会占用更多(104 Bytes)。算下来在硬盘上缓存 1,000,000 个 objects 的话相应需要占用 72MB 内存用来做 metadata,而实际情况则比这个要多得多。这篇 Wiki 也解释了为什么 Squid 需要大量内存。如何来决定到底需要多少内存呢?能不能有某个公式可以直接套用呢? Squid: The Definitive Guide 这本书给出了这样一个建议,每缓存 1GB 需要 32MB 内存,这样的话一台 1GB 内存的机器可以在硬盘上缓存 32GB 的数据(object)。

As rule of thumb, you need 32 MB of memory for each GB of disk space.

除了知道以上内存和硬盘的关系以外,我们还需要通过实际需求来决定什么样配置的机器能满足用户需求并且取得最佳性价比。那么如何判断需要用多大的硬盘来缓存用户的记录呢?根据去年一年使用 LightSquid 对用户的日志统计和分析,VPSee 发现绝大部分用户每天消耗都不到 100MB 带宽(平均起来才 50MB 每用户每工作日),这样如果算每人每天平均消耗 50MB,每个月算20个工作日,那么每人每月就是消耗 1GB,算下来100人每月应该消耗 100GB 带宽,也就是要缓存每个月的用户记录的话需要 100GB 硬盘空间,根据上面 1GB/32GB 的公式,一台 4GB 内存的服务器就可以完全满足要求。幸运的是,Squid 服务器对 CPU 要求不高,只需要在老机器上加点内存就可以了。

还需要注意的是,一定要再配一台 Squid 服务器作为备份服务器以应付突发事件,cache 的数据不是很重要,所以不必做 RAID,不必花钱在一些昂贵的存储设备上,但是要保证至少有一台备份 Squid 服务器 stand by,在主服务器不能工作的时候能随时替换。Squid: The Definitive Guide 的作者推荐使用 FreeBSD 作为 Squid 服务器的操作系统。

Mrwebserver:$5 256MB OpenVZ VPS

mrwebserver

Mrwebserver 有一款 VPS 原价要10美元每月,使用 WHT 上的这个优惠码:promovps5 的话只要5美元。Mrwebserver.com 的域名注册刚超过一年,注册者是个澳大利亚人,租用的数据中心和服务器却在德国 Hetzner Online. 按照 WHT 上的说法,他家给的 256MB 应该是最小 256MB,但是没有告诉可以 burst 到多少。VPS 配置如下:

服务器在 Germany
vePortal 控制面板
10GB 硬盘
256MB Mem
120GB 带宽
2个 IP
5美元

没有服务器配置信息。

OneXenVPS:$5 128MB Xen VPS

onexenvps

OneXenVPS 是一家刚开张不到2个月的德国 VPS provider,最近基于 Xen 的 VPS 好像越来越多了起来,而且价格也比较公道,服务器在德国的 Frankfurt,查询显示 onexenvps.com 域名注册不到2个月。VPS 配置如下:

Xen-128 Xen-256
128MB RAM 256MB RAM
10GB 硬盘 20GB 硬盘
20GB 带宽 40GB 带宽
$5 $10

没有服务器配置信息。

QuickWeb:$6.5 128MB Xen VPS

quickweb

QuickWeb 是一家新西兰 VPS provider,在新西兰和美国两地都有租用机房,他家的 VPS 只有4中 Linux 发行版本可选:CentOS, Fedora, Debian, Ubuntu,最便宜的一款 Xen Lite 原价9.95美元,使用 “lowendbox35” 优惠码以后可以打6.5折,只要6.5美元。VPS 配置如下:

服务器在 San Jose, CA (USA)
SolusVM 控制面板
5GB 硬盘
1 Xeon CPU Core
128MB Ram, 256MB Swap
1TB 带宽
6.5美元

服务器配置和数据中心:

All our servers are powered by Intel Xeon Quadcore, Supermicro chasis, Redundant carrier provider, RAID Protected SATA II Drives, R1Soft CDP Daily backup available and DDoS Protection is available.

Linux 文件系统从 ext3 升级到 ext4

尽管 ext4 出来已经有一段时间了,由于有一些 bug 还没被大量应用到服务器生产环境中,不过对于桌面用户来说 ext4 已经足够成熟了。去年发布的最新 RHEL 5.4 版本默认文件系统依然是 ext3。 最近 Linux 内核开发人员、ext4 文件系统的维护者 Ted Ts’o 跳槽到 Google,并在 Google 继续从事 ext4 的研发和 Linux kernel 方面的工作。在一篇 mailing list 里,Google 工程师 Michael Rubin 也提到了一些 Google 内部使用 ext4 的情况。经过 Google 内部测试,ext4 和高性能的 xfs 文件系统性能很接近,Google 选择 ext4 而不是 xfs 的主要原因是因为他们的现有系统是 ext2,这样升级到 ext4 会更容易一些。还有一个有意思的地方是,大多数人对 dbench 很信任,选用 dbench 来做文件系统的测试工具。

如何从 ext3 升级到 ext4?首先需要确保 Linux kernel 是支持 ext4 的,其次要注意 /boot 分区最好使用 ext3,因为现在系统上的 grub 很可能不支持 ext4,需要有这个 commit 的特别版本 grub 才能支持 ext4. 用下面的命令转换:

# cd /; umount /dev/sda1
# tune2fs -O extents,uninit_bg,dir_index /dev/sda1

记住,转换成 ext4 后必须用 fsck 扫描,否则不能 mount,-p 参数说明 “自动修复” 文件系统:

# fsck -pf /dev/sda1

挂载 ext4 文件系统:

# mount -t ext4 /dev/sda1 /path/to/

Unix/Linux 下的小工具:lsof

lsof 本来是一个很普通的小工具,用来显示被进程打开的文件信息,因为在 Unix/Linux 下任何东西都是文件,所以 lsof 这个 “小” 工具就显得非常强大,常被称作 “Unix debugging 的瑞士军刀”。lsof 很好的遵循了 Unix 的哲学 “只做一件事,并把事情做好”。来看看 Unix/Linux 下被看作文件的有哪些:普通文件,目录,NFS 文件,特殊块文件,字符文件,管道,连接,各种 socket,共享文件库等,所有都是文件,所以 lsof 用途非常广泛。

列出所有进程打开的所有文件:

# lsof

列出某个程序打开的所有文件:

# lsof -c vim
# lsof -c vim -c python

列出某个用户打开的所有文件:

# lsof -u vpsee
# lsof -u vpsee, root

列出某个组(group id)打开的所有文件:

# lsof -g 1

列出某个进程(PID)打开的所有文件:

# lsof -p 1
# lsof -p 1,2,3

列出某个目录下被打开的所有文件:

# lsof +D /usr/lib

列出所有网络连接:

# lsof -i

列出所有 TCP 连接或 UDP 连接:

# lsof -i tcp
# lsof -i udp

列出谁在使用某个网络端口:

# lsof -i :22
# lsof -i :ssh

列出某个用户所有的网络连接:

# lsof -a -u vpsee -i

列出所有 NFS 文件、Unix domain socket 文件:

# lsof -N
# lsof -U

CS-Squad:$4 32MB Xen VPS

cs-squad

CS-Squad 的 Mini VPS 里面有几种不同的虚拟技术可选,OpenVZ,Xen,FreeBSD Jail 等。他家的这些 Mini VPS 都不带控制面板,不提供任何技术支持,如果自己把 VPS 弄砸了需要重装系统,换操作系统,rebuild image 的话还需要每次额外支付20美元。32MB 内存太小,不实用,而且留着自己平时玩的话容易搞砸系统,还要20美元 rebuild,不知道推出这样的 VPS 市场定位在哪里。相比来说 FreeBSD Jail Mini VPS 有 1GB 的内存,更划算一些。他自家的网站放在 DMEHosting.com,租用的是 Primary.net 的服务器,机房在 St. Louis. VPS 配置如下:

Xen Mini OpenVZ Mini FreeBSD Jail Mini
32MB RAM 32MB RAM 1GB RAM
5GB 硬盘 5GB 硬盘 5GB 硬盘
300GB 带宽 300GB 带宽 300GB 带宽
$4 $3 $5

没有提供服务器配置信息。