ValueVPS:$7.34 128MB OpenVZ VPS

valuevps

ValueVPS 是一家英国“公司”,不过网站上没有任何关于公司的信息,估计也是个 reseller 或者 one man 工作,没有电话,联系方式只有网上联系,email/论坛/ticket/live chat 之类的。whois 显示 valuevps.co.uk 域名是2008年8月注册的。ValueVPS 提供 OpenVZ 和 Xen 可选,价格是一样的,30天退款保证,24/7服务。VPSee 发现 ValueVPS 接受 JCB 信用卡,真是感动啊,VPSee 的 JCB 卡都快注销了,VPSee 提醒大家千万不要办 JCB 卡,美国 VPS 服务商基本都不收,而且还和 Paypal 连不起来。VPS 配置如下:

服务器在 Blue Square datacenters in UK
Advanced VPS 控制面板(Advanced 是什么控制面板?)
10GB 硬盘
128MB Guaranteed RAM,256MB Burst RAM
150GB 带宽
2个独立 IP
7.34 美元

ValueVPS 没有提供硬件和网络信息(昏,是不是不想要人买啊?)。

37signals 的 RoR 架构

37signals 是除了 Twitter 以外的又一个高流量 Ruby on Rails 架构的示例。

数据

数据来源(2007):Ask 37signals: Numbers?

约30台服务器组成的 cluster,从 1 CPU 的文件服务器到 8 CPU 的应用服务器,加起来大慨 100 CPUs 和 200GB 内存(正计划把服务器数量减到16台,92 CPUs 和 230GB 内存,性能更高,架构更简单更易管理)。
客户总共上传约 5.9TB 的数据

Stack

以下是 37signals 用到的一些 stack:

Apache
HAProxy
Ruby on Rails
Mongrel
Memcached
MySQL
Xen
Amazon S3

值得注意的是用到了 Xen 虚拟技术和 Amazon S3 云存储。Memcached 现在已是高访问量网站的标准配置了,就不介绍了。有意思的是,DHH 在 Interview with David Heinemeier Hansson 提到,随着技术的发展,硬件越来越便宜,如果能用硬件解决问题就尽量用硬件,除非绝对必要,否则 shard 数据库来分载流量很痛苦。所以 37signals 不太赞成随便 shard,他们现在的主程序就跑在1台 128GB 的主服务器上,然后有多个备份服务器支持,主服务器不久会扩充到 256GB。VPSee 推测他们的 load balancing 是 Xen 之间的 load balancing,不是物理服务器之间的分载。

继续阅读 »

EarthVPS:$9.95 128MB Virtuozzo VPS

earthvps

EarthVPS 最近调整策略,不把技术支持和服务外包给第三方,由美国本地人提供技术支持。提供24/7服务,DDoS 保护,1小时响应,24小时内解决问题的服务,听上去不错。EarthVPS 声称在 hosting industry 有5年的经验,但是 whois 显示 earthvps.com 域名 2009年4月注册,才运行不到3个月而已,而且域名只注册了1年,没有提供服务器硬件等信息。VPS 配置如下:

服务器在 Chicago
Virtuozzo Power 面板
5GB 硬盘
128MB Guaranteed RAM,256MB Burst RAM
100GB 带宽
2个独立 IP
9.95 美元

现在订购只需7.95美元,看 WHT 上的 DDoS Filtered – 24/7 Phone/Live – Managed – 3 Months Off,优惠码:50off

Wikipedia 的 LAMP 架构

Wikipedia.org 是个标准的运行在 LAMP 上的高流量网站,看看能从 Brion Vibber (CTO, Wikimedia Founation)的这篇讲义:Scaling and Managing LAMP at Wikimedia 学到些什么。(图片资源来自:Scaling and Managing LAMP at Wikimedia

数据

每个月100亿 PV
高峰时后每秒达 50000 http requests
约400台 x86 服务器,约250台是 Web Server,剩下的基本上是 MySQL Server
只有7个工程师维护
每个月35000美元的带宽和 hosting 费用

LAMP

Wikipedia 是架在标准 LAMP 上的一个非常好的示例,以下是 Wikipedia.org 用到的一些 stack:

多个不同版本的 Linux,Ubuntu,Debian 等
Apache
PHP
MySQL

Cache

缓存就不用说了,从前端的 web cache,中间的 opcode cache,到后端的 database cache 都需要。Wikipedia 用 Squid + APC + memcached 来完成 cache 工作。Squid 对 wiki 这种内容为主,不经常变化的相对静态的 web 应用很有效。Wikipedia 还用 Squid 做 geographic load balancing,根据不同地理位置访问各地的服务器。只要用到 PHP 的地方就应该用到 opcode cache,Wikipedia.org 选择了 APC,good choice!,VPSee.com 也用 APC:)。memcached 用来缓存数据库的临时 object,不用反复从数据库读取,而且 memcached 可以做成缓存服务器供网上 share object,其他的服务器可以直接读取,比起从磁盘重新读取数据库,网络读取的延迟要小多了。现在大家都用 cache,送礼就送 cache(cash?)!

继续阅读 »

BlackBoxVPS:$10 128MB Xen VPS

bbvps

BlackBoxVPS 特别强调自己是一家 “verified and trusted registered company in USA”,不是 one man 的业余爱好。现在 web hosting 行业入门门槛太低,买个 reseller 就可以开始做 hosting 业务,导致大批 IT 非懂不懂人士涌入,被誉为 “dirty industry”。 BlackBoxVPS 有 24/7 客户服务,7天 money back 保障。VPS 配置如下:

HyperVM 控制面板
5GB 硬盘
128MB RAM,256MB SWAP
200GB 带宽
10美元

现在订购第一个月只需5美元,看 WHT 上的 [US] Premium XEN Linux VPS,优惠码:BBVPS50

服务器硬件信息:

Dell PowerEdge Servers,Dual CPU Quad Core Intel,Xeon E5430, 2.66 GHZ,32 GB DDR2 RAM,4×1 TB SATA Hard Disk,Hardware RAID 5,NAS Backup Storage

CHostWales:£3.25 384MB OpenVZ VPS

chostwales

Cymraeg Wales Hosting 是一家英国公司,提供 Hosting 的几乎所有服务,2005年是一个网站设计公司,2006年开始 hosting 业务,2009年介入 VPS。不知道这家公司的网站设计人员怎么想的,网页做得这么难看,又难用,介绍公司信息居然用一大块图片,不用文字,难怪 about 页面打开这么慢,VPSee 还以为没有 about 信息呢,还号称以前是家网页设计的公司。网站上有公司照片,地址等信息,不过至少可以知道这是家公司,不是一个 one man 项目。Cymraeg Wales Hosting 提供 24/7 Email 支持,10am-5pm 免费电话支持(英国),每天都给 VPS 备份。VPS 配置如下:

服务器在 UK 和 US
这里有个控制面板 Demo,登录/密码:94.229.76.41/demo
30GB 硬盘
384MB Guaranteed RAM
500GB 带宽
2个独立IP
12.99英镑(这是原价,不要害怕:0,现在正在打折,只要3.25英镑)

忽略上面的12.99英镑,看 WHT 上的 CLOUD BASED VPS’s!!! 75% OFF,现在只要3.25英镑。

服务器硬件信息:

1 x Xeon Processor @ 1.2Ghz

VPS 上用 APC 加速 PHP

PHP 是一个解释型语言,每当浏览器请求服务器上一个 PHP 页面的时候,这个 PHP 页面都要在服务器上载入,分析,解释,然后返回给浏览器。对于一个复杂的 PHP 应用程序,如果有一个加速器能缓存 PHP 的中间代码避免每次重新载入同样的 PHP 页面将会很好的提高性能,因为每次浏览器请求将会直接从服务器缓存中读取已被解释过页面,不必再让服务器从磁盘重新读取,节约了磁盘 IO 的时间,也节约了CPU 解释页面的时间。所以对于复杂的 PHP 应用,会有大幅的性能提升。

像这样的加速器有很多,最出名的几个 PHP 开源加速器是:APC,eAccelerator 和 XCache。这里介绍安装和配置 APC。对于 64/128MB 的 VPS,VPSee 不推荐使用加速器,原因很简单,加速器需要适量的内存才能表现出良好的性能,64MB 运行一个 WordPress 刚刚好,还腾不出内存出来运行加速器。

安装必要软件包

# yum install gcc make
# yum install pcre pcre-devel
# yum install php-pear
# yum install php-devel
# yum install httpd-devel

安装 APC

# pecl install apc 

配置 APC

新建一个 apc.ini,加入下面配置:

# vi /etc/php.d/apc.ini
extension = apc.so
apc.enabled = 1
apc.shm_size = 32
apc.include_once_override = 1
apc.mmap_file_mask = /tmp/apc.XXXXXX

载入 APC

如果用的是 Apache 的话就重新启动 Apache,如果用 Nginx/FastCGI 就重启 FastCGI

# /etc/init.d/httpd start

测试

如果想看 APC 正在干嘛,就把 apc.php 拷贝到你的 web 目录,用浏览器访问 apc.php,就可以看到很清楚的数据和图表。先查找 apc.php 在哪,如果 locate 报错就先 updatedb 再 locate,最后打开浏览器访问 http://www.vpsee.com/apc.php 看效果。

# locate apc
locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory

# updatedb

# locate apc.php
/usr/share/pear/apc.php

# cp /usr/share/pear/apc.php /home/www/vpsee.com

BuzzServers:$7 128MB OpenVZ VPS

buzzservers

BuzzServers 在 WHT 上推出一个优惠,只要3美元的 VPS,这是 VPSee 见过最低价的 VPS 了,而且配置还不差,只不过对 BuzzServer 这家公司不大信赖,网站上没有关于公司的任何信息,连电话都没有,Email 也没有,服务只能靠 ticket 和 online live chat,不过号称能提供 24/7 服务。whois 显示 buzzservers.com 域名是2009年3月注册的,而且只注册了1年。VPSee 不推荐,不过太便宜了,VPSee 还是决定订一个玩玩。VPS 配置如下:

服务器在 Dallas, TX and San Jose, CA
OpenVZ
LxAdmin/Kloxo 控制面板
5GB 硬盘
128MB Guaranteed RAM
80GB 带宽
7美元

上面的7美元 VPS 是网站上的信息,网站上没有给出3美元的优惠 VPS,如果需要就得去 WHT 订,配置是:15GB 硬盘,256MB RAM,75GB 带宽,3美元每月。

服务器硬件和网络信息:

Hosted in the take2 facility. All our VPS nodes are connected to hardware CISCO firewalls, programmed and configured to deal with DDoS attacks towards the network. All our VPS packages are hosted on QuadCore Servers run by the latest hardware.

安装和配置 OpenIMS Core

openimscore

最开始听说 OpenIMSCore 是在毛里求斯的一次会议上,这个项目是德国的 Fraunhofer FOKUS 赞助的,主管是一个德国教授,他也是那次会议的一个 key speaker,他在会上不停的谈到这个东东,我对电信那一层不熟悉,不怎么懂,从软件层面来看我总觉得是类似于 Asterisk,SIP Express Router(SER)一样的平台,感觉 OpenIMSCore 实际上就是在 SER 上面加了一层多媒体而已,而且文档/代码还处在学术阶段,不可靠,所以一直没有怎么关注。后来去了几次 University of Cape Town,得知他们有个小组专做 OpenIMSCore,也是 Fraunhofer FOKUS 赞助的,在这个项目上面发了很多 paper,OpenIMSCore 的 client:UCT IMS Client 就是他们开发的,后来还知道那个主管 OpenIMSCore 的德国教授是 UCT 的一个 visiting professor,扒远了~~

最近 VPSee 的 sponsor 对 IMS 产生兴趣,希望我能跟一下,看看能不能把本人的一个有点关联的项目和 OpenIMSCore 集成一下,我的项目里用到了 SIP/SIMPLE 和后台的 Asterisk/OpenSER。OpenIMSCore 也兼容 SIP,而且也是在 SER 基础上扩展的,应该和我的项目集成起来不会有什么困难,在 VPSee 的眼里 OpenIMSCore 就是一个加强了的 SER。

下面是安装在 Ubuntu 9.04 Desktop 版本上的过程,Ubuntu 的其他版本也应该可以。为了减少痛苦,建议在 Ubuntu 上安装 OpenIMSCore,配置文件/文档什么的都是为 Ubuntu 写的。八卦一下,UCT 是 Ubuntu 的铁杆粉丝,Ubuntu 的创始人就毕业于 UCT.

下载和安装

官方网站下载 source code,我本来懒得安装配置,想下载一个 vmware image 版本直接运行,结果 image 太大,下载老出错。刚好我们组在 UCT 有个 workshop,所以路过就找 UCT 的人要了个 hard copy,不过是 source code 的,他们自己都不用那个 image 版本,软件开发行业有句话叫做:“eat your own dog food”,既然他们都不 eat,那我也不 eat 他们的了:)

mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore

mkdir ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/
ser_ims/trunk ser_ims

mkdir FHoSS
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/
FHoSS/trunk FHoSS

安装必要的软件包

sudo apt-get install bison flex libxml2 libxml2-dev bind9
sudo apt-get install mysql-server libmysqlclient15-dev 
sudo apt-get install sun-java5-jdk ant

编译

cd /opt/OpenIMSCore

cd FHoSS 
ant compile deploy 
cd ..

cd ser_ims 
make install-libs all 
cd ..

配置 DNS

拷贝 DNS 配置文件,编辑 named.conf.local:

sudo cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/

vi /etc/bind/named.conf.local
zone “open-ims.test” {
    type master;
    file “/etc/bind/open-ims.dnszone”;
};

重启 DNS 服务,然后用 ping 测试:

sudo /etc/init.d/bind9 restart

ping open-ims.test
PING open-ims.test (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.027 ms
...

配置 OpenIMSCore

cd /opt/OpenIMSCore

mysql -u root -p < FHoSS/scripts/hss_db.sql 
mysql -u root -p < FHoSS/scripts/userdata.sql

mysql -u root -p < ser_ims/cfg/icscf.sql 

cp ser_ims/cfg/*.cfg . 
cp ser_ims/cfg/*.xml . 
cp ser_ims/cfg/*.sh .

运行 OpenIMS Core

/opt/OpenIMSCore/pcscf.sh
/opt/OpenIMSCore/icscf.sh
/opt/OpenIMSCore/scscf.sh

/opt/OpenIMSCore/FHoSS/deploy/startup.sh

如果在启动 startup.sh 时遇到:startup.sh: line 15: /bin/java: No such file or directory 说明 JAVA_HOME 没有设置好,首先定位 java 装在哪里,然后修改 .bashrc 设置环境变量,把 java 的路径加到 JAVA_HOME。

locate /rt.jar

cd
vi .bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
source .bashrc

重新启动 startup.sh,打开浏览器输入 http://localhost:8080, 用户名/密码是:hss/hss。 登录后会报错,原因是要用 root 启动 Tomcat,FHoSS 运行在 Tomcat 上:

sudo ./startup.sh

如果这个时候提示找不到 /bin/java,需要做个连接:

sudo ln -s /usr/bin/java /bin/java

再次启动 startup.sh,用浏览器登录 http://localhost:8080 后就可以看到欢迎界面了。

用 uctimsclient 测试

到 http://uctimsclient.berlios.de/ 下载 OpenIMS Core 的客户端 uctimsclient,先安装必要软件包,然后安装 uctimsclient:

sudo apt-get install libavcodec52 libosip2-dev libexosip2-dev
sudo apt-get install libgtk2.0-dev libxml2-dev libcurl4-dev libvlc-dev vlc
sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libavcodec-unstripped-52 

sudo dpkg -i uctimsclient1.0.13.deb

dpkg -i uctimsclient1.0.13.deb 时会报错,这里有几个 dependency 问题需要解决:需要 libavcodec51 而不是上面最新的 libavcodec52,所以要把 libavcodec52 删除,手动下载和安装 libavcodec51;需要 libavcodec-unstripped-51 而不是 libavcodec-unstripped-52,手动下载 libavcodec-unstripped-51,安装 libavcodec-unstripped-51 前需要先安装 libx264-59。

运行 uctimsclient,如果这个时候报错,则需要安装 libcurl 后再次运行:

uctimsclient: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

apt-get install libcurl3

uctimsclient

Quantact:$9.99 128MB OpenVZ VPS

quantact

Quantact 从2004年开始提供 VPS 服务,服务器托管在 Sonic.net,机房的更多信息可以看这个 PDF 文件。Quantact 有 Xen 和 OpenVZ 两种产品线,不过 Xen VPS 要比 OpenVZ 贵一些,目前只有一款 OpenVZ VPS 在10美元以下。Quantact 提供 24×7×365 支持,30天 money back 保证,有自己自制的控制面板。Quantact 网站上有个小 wiki,不过上面信息很少,而且没什么有用信息。VPS 配置如下:

服务器在 Santa Rosa, Ca
OpenVZ
自制的 QCP 控制面板
5GB 硬盘
128MB Guaranteed RAM,256MB Burst RAM
128GB 带宽
9.99美元

服务器硬件信息不详。