Network 版 (精华区)
发信人: moonvalley (月光), 信区: Network
标 题: Linux
发信站: 紫 丁 香 (Sat Dec 11 16:27:50 1999), 转信
在过去的一年中,Web上的热点就是Linux神奇的增长和流行,Linux以及变成一个值得严
肃对待的Web平台以及企业开发平台。Linux有自己的优势,比如其庞大的开放源码开发
者组织以及其价格;你现在的确可以在Linux建立Web应用。但是以Linux为基础建立这样
的应用需要做更多的工作,可以选择的商业软件不多,也未必能达到最佳性能。
我们使用Caldera OpenLinux 2.2来评估Linux 2.2核心的特性,我们下载了新的内核,并
且重新编译了它。Linux 2.2内核增加了几个新的面向服务器应用的性能及伸缩性增强。
Apache and Stronghold
我们在linux上运行的是C2Net的Stronghold Web Server 2.4.1(直销价格995美圆,www.
c2.net)。Stronghold是一种以Apache为基础的服务器,增加了支持SSL的能力,C2Net的
产品中带有Apache的源程序。Stronghold包括Apache的所有优点,包括对多个虚拟主机
的强大支持(在一个Web server上支持多个域名,比如www.site1.com,www.site2.com,
等等)
Stronghold,象Linux一样,在可靠性和稳定性方面享有美誉。但是Stronghold以及A
pache在多处理器环境下不能充分发挥。因此,在一个Apache Web站点扩容时,通常是
增加服务器而不是处理器。
相比之下,IIS以及Netscape Enterprise的多线程结构可以很好的发挥多处理器的能力
。这在我们的测试中体现的很明显,IIS和Netscape 通常性能要优于Stronghold。
虽然Apache允许你调整参数(比如客户可用进程数),但是这种调整通常需要编辑配置文
件。在易用性方面,这比Netscape的以Web为基础的管理界面差的比较远。
在Linux上建立Web平台的困难还不仅于此。现在Linux的工具市场刚刚开始出现,因此你
必须艰难地将你能找到的所有资源凑在一起完成一个方案。可选择的东西通常比Windows
NT和Solaris下的差。
比如,IIS和Netscape都提供了CGI的替代品,分别是ISAPI和NSAPI,这种进程内的API可
以大大提高性能。在Apache上要想达到同样的目的,必须写一个本地代码程序,编译成A
pache的一个模块,这个任务需要更多的编程知识。
这就是为什么Linux开发者很少开发自己的模块,而是选用别的比如mod_perl以及PHP之
类的东西。Mod_perl本身是一个Apache模块,作为Perl语言解释器运行。PHP是一种动态
网页脚本语言,与Microsoft的Active Server Pages类似。Stronghold中带有PHP;而
mod_perl是可以免费下载的。
不过第三方支持还是在增长,有一个公司以及开放源码组织发布了可以用于建立复杂应
用的中间层组件,比如MICO(www.mico.org)发布了一种CORBA兼容的对象请求代理(ORB)。
用Java开发自己的中间层组件现在在Linux上开始流行起来了。Apache Jserv是一个支持
Apache 的Java Servlet引擎。(现在可以在Java Apache Project java.apache.org找到
其beta版本)
Servlet引擎被编译为Apache模块运行,可以使用任何JDK 1.1兼容的Java虚拟机。授权
方面的问题使Java Apache Project不能发布用于开发servlet的SDK,但是你可以在
java.sun.com 找到这样的SDK。
性能
我们在前面曾经提到过,当考虑性能的时候,Apache-Linux的组合不是非常优秀,至少
现在还不够好。
在我们开始准备测试的时候,Linus Torvalds发布了Linux 2.2内核。该版本承诺将改善
Linux在多处理器方面的缺陷,而正是这种缺陷损害了Linux在我们的测试中的表现。
不幸的是,我们却无法对这种潜在的改善进行测试,2.2版本内核对TCP/IP堆栈的改进使
得我们的Windows 95客户端与之通信出现了问题。这种修改在2.0版本的内核中还没有,
因此我们只能选择在2.2版本之前发布的最新版,因此选择了Caldera的2.0.35内核版本。
尽管我们可能没有能够利用Apache完全的处理能力,Stronghold/Apache还是可以的。在
我们的CGI测试中,Stronghold表现出了不错的水准,但是在静态内容测试中,它远远落
在了运行于同样硬件基础之上的Sun Web Server以及Netscape之后。
某些性能问题要归结于Apache以进程(process)为基础的结构。进程模型要比线程(thread
)模型需要更多的管理代价。从1.2.4版本开始,Apache采用了一种新的模型,服务器会
产生一定数量的进程,即使在服务器压力不大,不需要这么多进程时也是如此。在我们
的测试中,我们确保有足够的进程被预先分配,以避免建立新的进程,但是管理进程仍
旧比管理线程要多占用一些CPU时间。
下一篇:产品一览:Microsoft Windows NT Server>>
-- 不飞到最高我会后悔
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: lichengyu.hit.ed]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.678毫秒