星期五, 十月 06, 2006

telnet-based BBS八卦 section 1 (原创)

说明:本系列文章,作者为Hok-men Chan;本系列文章纯粹yy,纯粹八卦;除特别标出外,在2003年11月至2004年3月间写成。并且,本文的发布与再发布均须遵循GNU Free Documentation License。


标 题: telnet-based BBS八卦 section 1 (原创)
(Wed Mar 31 04:31:22 2004)

telnet-based BBS八卦

Author: Hok-men Chan ( hokmen (dot) chan (AT) gmail (dot) com )

License: GNU Free Documentation License
(link: http://www.gnu.org/licenses/fdl.html )

Copyright:

Copyright (c) 2004 Hok-men Chan
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

0.前言

本文纯粹yy,纯粹八卦。本文的发布与再发布遵循GNU Free Document License(http://www.gnu.org/licenses/fdl.html),任何转载均需附上上述版权声明。

1.从32bit cpu 到64bit cpu

smth和ytht在2004年寒假的时候,用“测试”的名义接受了AMD 的一家合资公司的赞助。这家颇具眼光的名叫中基超威的公司,分别向这两家著名的telnet-based BBS站点提供一对opteron 240 cpu 、主板、内存的套件,让它们的应用跑在x86_64平台上。这次赞助在ytht的devote版引起了关于ytht是否已经商业化的争论,关于商业化的判 断标准,我在后文有讲,这一章专门讲讲telnet-based BBS在向64bit cpu 升级的过程中机遇。

1.1 “新武器试验场”

telnet-based BBS在华文圈的大学里面比较流行,而这些BBS 里面,同时在线id最多的,就目前(2004 年年初) 来说,要数smth、ptt 和ytht三家,它们均创记录地达到>12000个在线id的水平( 含www 访问) 。其中,ptt 的记录是去年10月的时候创下的,不含www 连接,12504 个telnet在线id,也就是说,同时有>12k个tcp 连接,这绝对是值得称道的事情。

它们是用什么配置来达到这个数值的呢?它们创造这些记录的时候,都是用4G内存的32bit p3机器的说。( 下面的数据如有错误,劳烦各位老大指出)

smth p3 700 xeon * 4,raid5 ,linux ,含www 和guest 大概可以达到13xxx 个在线id (ps:www+guest为35xx-4xxx 个) 目前最高15xxx 个在线id( 含www 和guest)。

ptt p3 * 2,FreeBSD ,10000 个id以上会开始感到慢,9xxx个id很流畅,最高记录是12xxx 个在线id( 不含www)
ytht p3-866 * 2,linux ,目前最高记录已经过138xx(含www和guest),在11xxx 个在线id时速度尚可忍受。 (但据说ytht有相当大部分是www用户,因此极限估计应该比13xxx 低得多)

这三家能用4G内存就能达到并发10k 个tcp 连接,其程序的优化相信做得相当不错。因而,中基超威看上smth和ytht不是没有道理的。据说ytht已经在3 月中旬的时候成功地把他们的数据和站点搬迁到x86_64体系上,现在看起来跑得还算稳定,上10k 个在线id( 含www 和guest)仍然非常轻松。能成功地在如此高负载的应用中运行,绝对是个非常好的和非常划算的广告。x86_64在成本上比同等级数的xeon要低一 点,但相对来说现在的x86_64的效能要比现在的xeon高一些,只是因为相对比较晚出来,跑起来的大型应用还不多。

telnet-based BBS绝对可以成为“新武器试验场”。

1.2 由32bit cpu 向64bit cpu 移植

telnet-based BBS由32bit 应用向64bit 应用迁移,如果是从x86 体系移植到x86_64体系,所做的事情似乎只有重新编译程序而已,要做的东西不多。amd 已经有x86_64的数学库,gcc 和glibc 也有相应的版本了。但如果telnet-based BBS的代码里面含有分组(block) 的算法,而这些算法专门为32bit cpu 设计的话,就需要对这些算法做点改动。这些为32bit 体系优化的分组算法常常是用32bit 作为一个block ,搬到64bit 上就得改为64bit 一个block ,并且对原有的流程做点增减。幸好要改的东西不多,而且还算比较容易。

1.3 硬件成本

就目前(2004 年3 月底) 的硬件报价来看,( 以下价格均为二级代理/ 系统集成商的报价,大中华区总代理= 》第一级代理= 》第二级代理/ 系统集成商,含税,单位为rmb)一颗opteron 240 报23xx( 一颗p4 xeon 大概3xxx) ,一块2cpu带scsi,6 条内存槽的tyan主板大概6xxx,而一颗opteron 848 大概98xx(or 95xx? ,记不大清了) ,一块4cpu板载scsi,10条内存槽的tyan主板大概137xx ,4cpu+一块主板,报518xx(or519xx? 记不大清),这样看来即使上4opteron的系统,对于>10k个在线id的站点来说,也是合理的。

1.4 Linux or FreeBSD ?

目前www.x86-64.org这个x86_64体系的开源代码开发站点,在成员列表中,有一半的成员属于de和cz的suse,另外的一半成员属于 linux kernel和开发x86_64模拟器的组织,另外,FreeBSD 和NetBSD各有一位。由人数构成看来,目前来说,我个人倾向于在x86_64体系上用GNU/Linux 。

不过,据说FreeBSD 5-stable将在未来数周内出来,而FreeBSD 5.2.1-release 已经相当地stable,现在ptt 主站也换上了稳定支持>4g 内存的PAE 功能的FreeBSD 5.2.1r,看样子还跑得不错。据说5.2.1 的进程切换比4-stable有了极大的进步,而且调度器也非常成熟了,i386体系上的确非常适合telnet-based BBS这种极其多进程的应用。而x86_64体系上跑FreeBSD 仍然有待考验。