`
mryufeng
  • 浏览: 977423 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Linux内核Web服务器Tux

阅读更多

虽然目前动态网站的业务进行得如火如荼,但传输大量静态内容的服务却仍然有很大的需求,而且这种需求越来越多, 对服务器响应速度的要求也越来越高。而我们接下来要介绍的TUX正是此领域的佼佼者。

TUXThreaded linUX http layer的简称。它是Redhat发行版特有的模块,目前最高版本是2.2 首次出现在2.4内核中。它有以下特点:

静态内容处理

可以直接处理HTMLGif等静态页面文件

ftp服务

通过配置, TUX可以作为一个匿名FTP 服务器使用

多虚拟主机支持 <o:p></o:p>

首次出现在TUX 2.1中,支持基于主机的虚拟服务器。除了RAM和磁盘空间的限制外,理论上对虚拟主机的数量没有限制

缓存控制 <o:p></o:p>

通过ETag Last-Modified HTTP控制头 这两个属性来减少无谓的数据传输。

压缩数据流<o:p></o:p>

TUX可以发送gzip格式的压缩数据流。它可以减小发送到客户浏览器的数据大小,减短浏览器载入数据的时间。

二进制的日志格式

TUX默认的日志格式是二进制的,我们可以使用tux2w<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3c</st1:chmetcnv>将日志转成与apache兼容的日志格式

CPU亲缘性 <o:p></o:p>

可以将执行的CGI绑定到指定CPU上。<o:p></o:p>

请求重定向

TUX不确定如何处理一个请求,它总是通过重定向,让运行在用户态的web服务器(apache)来处理此请求。

<o:p> </o:p>

TUXRedHat公司的项目名为Red Hat Content Accelerator。顾名思义, RedHat最突出的特性就是加速对内容的处理。Redhat公司称其每秒能处理1~2w次的并发请求,能提供目前最快的web服务,而且占资源非常小。笔者曾经测过,用8台机器以每秒2000个请求的速度同时向一台 tux服务器(Intel dual core, <st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="g">4G</st1:chmetcnv>, 千兆网卡)请求一个3kb左右的Gif文件,TUX都能应付自如,cpu占用率仅为78%左右。

为什么TUX拥有如此高效的性能呢? 针对本节首段所陈述的需求,系统设计者们探索了一条道路:在系统核心中,直接为web服务提供接口。这与Windows NTTransmitFile系统调用有些类似。系统设计者提出的一种理想状态是,构建一种操作系统。这种操作系统的目的仅为:提供访问本地文件系统HTTP服务和运行安全的CGI程序。其数据缓存在内核地址空间,加以零拷贝技术,极大地消除因为数据拷贝和checksum运算所带来的性能消耗;CGI脚本可以从内核中直接调用,而脚本产生的数据通过零拷贝直接放入到网络层,从而减少了对数据的拷贝和上下文的切换。

TUX的设计者,redhat公司的Ingo Molnar为了达到此目标,把其缓冲对象集成到Linux的内核中,发明了此web服务器。TUX使用了一系列先进的技术来达到高效的性能,下面列出其中主要几条:

<!---->1.         <!---->支持SMP(对称多处理器),多线程可以异步地完成复杂的HTTP请求。

<!---->2.         <!---->从内核的网络层直接驱动web服务,实现了一个真正意义上的网络事件驱动服务器。

<!---->3.         <!---->用内核网络层缓存请求,加快了静态请求的分发速度。

<o:p> </o:p>

TUX的这种优势,对于企业级应用所带来的经济效益是非常可观的。因为他的高并发量,相对于运行于用户空间的web服务器(apache)的性能高出了好多,而且可以充分利用SMP的优势,一台机器可以服务众多客户,省下很多机器资源,同时节省了大量维护成本。

就以常见的图片服务器为例。一般的图片,大小以10~20KB居多。TUX在首次读取数据的时候,就将数据缓存在内核里面。如有一台非常一般的<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="8" unitname="g">8G</st1:chmetcnv>内存机器,它就可以缓存40万张图片。 而在后续的请求中都无须访问文件系统,TUX服务器自身会从页缓冲中以zero copy write的方式配以网卡TSOTCP segment ati on offload),而CPU几乎就没有什么计算量,故能达到高性能、大吞吐量和小响应时间。

当然由于内核特性的一些限制,TUX也存在一些缺点:

  1. 协议分析比较严格,对大小写敏感。这对于不太规范的浏览器,会带来些麻烦。
  2. TUX服务做在内核里面,任何的bug或者安全漏洞带来的后果非常严重。轻则会导致机器宕机,重则有安全方面的隐患。
  3. 目前尚不支持流行的脚本语言如php, jsp等。
  4. 性能微调方面对管理员能力的要求比较高。

然而瑕不掩瑜,TUX的众多优点使它在近几年中迅速成为目前流行的轻量web服务器之一。我们期待TUX能够为我们带来更多的惊喜:

<!---->1.         <!---->协议解析加入更多的容错错误处理,同时有进一步的性能优化。

<!---->2.         <!---->apache那样,拥有更多的模块处理不同的业务

<!---->3.         <!---->用户空间的管理工具。加入些统计功能,方便管理员日常维护。

<o:p> </o:p>

分享到:
评论
1 楼 codeall 2007-12-22  
既然看过了,就顶一下。
1w+的速度比起lighttpd优势不大吧,如果apache开200clients也能到1.5w+吧。我说的是4核1.5G的机器。
mina.apache.org有些测试数据

相关推荐

    linux 上tuexdo 开启tux_snmpd

    ### Linux上Tuxedo开启Tux_snmpd详解 #### 一、环境配置与准备 在开始之前,确保你的环境符合以下要求: 1. **操作系统**:Red Hat Enterprise Linux Server release 6.5 (Santiago) 2. **Tuxedo版本**:Oracle ...

    linux内核编程教学

    - **Tux**:Linux的官方吉祥物,一只穿着燕尾服的企鹅。 - **MINIX**:由Andrew S. Tanenbaum教授开发,对Linux早期设计产生了重要影响。 - **GNU项目**:Richard Stallman发起,旨在创建一个类似于Unix的自由...

    tux2live可将LINUX定制成LIVECD版

    本文将详细解释tux2live如何帮助用户将Linux(例如Ubuntu)定制为LiveCD版。 一、tux2live简介 tux2live是一款开源的工具,它允许用户将现有的Linux发行版,如Ubuntu,转换为LiveCD或LiveUSB系统。这个工具的目的是...

    Linux 入門課程

    其中,Linux服务器市场占有率在不断提高,Apache web服务器的市场份额也远超Microsoft IIS。 然而,尽管Linux在服务器领域取得了显著的成功,但在桌面市场的占有率仍然较低,仅为2%左右。据估计,Linux桌面的普及...

    TUX安装配置简明教程(1)

    TUX是一种Linux内核级的网络服务器,它特别设计用于提高静态内容的处理效率。它能够直接从内核的页高速缓冲区(DMA)向网络发送数据,减少数据复制,从而提高性能。TUX还能处理动态内容,但需要通过转换现有CGI应用...

    Linux的密码修改

    Linux实际上源为Linux内核,由林拉纳.本纳第克特.托瓦兹全力开发,以Tux(一只企鹅)为标志,Tux已经成为Linux和开源社区象征。 Linux的主要特点,Linux是一套从OOSLX(可移动新操作系统)规范的操作系统,将操作系统...

    Linux介绍.pdf

    Linux内核最初是为了解决个人计算机的操作需求,随着时间的推移,它已经演变成一个全球开发者社区共同努力的成果,广泛应用于各种硬件设备,包括手机、平板电脑、路由器、超级计算机等。Linux的成功在于其开源的本质...

    linux-嵌入式Linux预科班培训讲义

    - **加载Linux内核**:内核是操作系统的核心,负责控制所有硬件资源和进程。 - **运行init进程**:初始化系统服务和应用程序。 ##### 1.6 Linux基本命令 - **ls**:列出目录内容。 - **cd**:切换当前工作目录。 - ...

    linux 历史 doc文档

    Linux不仅包含操作系统内核,还包括服务器、桌面环境和应用软件,形成完整的发行版本。这些发行版本有各自的版本号,内核版本由Linus Torvalds领导的团队维护,发行版本号则由各个Linux软件公司定义。 Linux的版本...

    Tux:Tux,Linux企鹅

    Tux,Linux企鹅 关于 拉里·尤因(Larry Ewing)的原始Tux插图,位于: : 由Garrett LeSage在Inkscape中重绘: : IFo Hancroft的提炼和清理: ://www.ifohancroft.com 执照 公共领域 ...但是,如果有人问: ...

    uktools:自动为Ubuntu及其衍生版本升级最新Linux内核:penguin:

    "penguin"在这里可能是对Linux系统的俏皮称呼,因为Linux的吉祥物是一只企鹅,通常被称为"Tux"。这可能意味着该工具特别关注或适用于Linux用户。 "security"标签暗示了升级内核的一个关键原因是提高系统的安全性。...

    linux起源简介

    Linux的标志是一只名为Tux的小企鹅,背后有一个有趣的起源故事,与Linus的一次澳大利亚动物园之旅有关。 Linux的发展历程充满了网络的烙印。1991年,作为赫尔辛基大学的学生,Linus对Minix操作系统感到不满,于是...

    tux_perl-开源

    一个类似于 perl 解释器的 mod_perl,用于 Tux(Redhat 的 Linux 内核 http 服务器)和相关软件,以使用 tux 加速 Web 应用程序。 它将在 Linux、Perl 和 Tux 支持的平台上运行。 用 C 和 Perl 实现,并带有一些库

    linux学习1

    Linux的吉祥物是一只名为Tux的企鹅,象征着Linux的友好和广泛分布。 2. **Linux版本** - **内核版本**:Linux内核由kernel.org发布和维护,版本号遵循主版本.次版本.修订版本的规则,重大变化会提升主版本,显著...

    tux3:tux3文件系统

    Tux3在Linux内核社区中备受关注,因其独特的特性而被寄予厚望,成为未来可能替代现有文件系统如EXT4或XFS的有力竞争者。 ### 文件系统基础 在深入探讨Tux3之前,我们需要了解文件系统的概念。文件系统是操作系统...

    linux壁纸

    Linux壁纸的设计通常包含各种元素,如Linux吉祥物Tux(企鹅)、Linux发行版的标志、极简主义设计、科技主题、自然风景等。它们为用户提供了定制自己桌面的独特方式,让工作环境更具个性和舒适感。壁纸的选择可以反映...

Global site tag (gtag.js) - Google Analytics