Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185239
  • 博文数量: 80
  • 博客积分: 70
  • 博客等级: 民兵
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 13:58
文章分类
文章存档

2014年(47)

2011年(33)

分类: 系统运维

2014-11-24 17:17:37

原文地址:Solaris 网络缓存和加速 作者:wanglp2000

 

如今INTERNET内容大量增长,为了获取更多的HTML内容,使得浏览更为流畅,不断增加网络流量和更高宽带的连接才能满足这个要求。网络加速已经对WEB服务产生了严重的影响。

为满足越来越多的新需求,最新发布的操作系统和WEB服务器在伸缩性和性能上有了重大的提升,这样,同样的计算能力,如今的web服务器系统可以支撑起更高的用户负载。

Solaris网络缓存和加速器(NCA)技术亦即是为了增加服务能力来满足如今WEB服务。

注意:如果图片无法显示,请访问我的豆丁文档:

    

Solaris NCA简介

Solaris NCA软件通过维护一个kernel内的web页缓存,这些web页是最近HTTP请求访问过的web页,从而提高web服务器的性能。

当一个用户请求一个HTML页时,如果刚好该页就在SolarisNCA缓存里,那么这个web页就可以直接提供给用户,而无需web服务器的介入。这个就能使得web服务器性能有了长足的提高,因为从缓存里获取web页,服务器所处理的指令更少,花费时间更少。当服务器请求一个页面处理时,Solaris NCA也结合了其他提高性能的设计变化。

Solaris NCA历史

l  Solaris NCASolaris 8操作系统中第一次被引入,是个基于DOORs接口的web服务

l  Solaris 8 OEupdate 7/01中,NCA套接字接口被引入,这个心接口允许Solaris NCA可以和最流行的WEB服务器一起运行,这个版本的solaris 8同时引入sendfilev()系统调用,该调用允许应用程序可以发送多个厂商或者数据和文件的描述符给Solaris NCA

l  NCA增加了多服务器实例的支持

 

Solaris NCA的重要性

Solaris NCA 主要功能:

l  增强服务器能力,WEB服务器利用NCA在单位秒内可处理更多用户web页的请求

l  更好的投资回报(ROI):服务器计算能力增强,减少了计算机扩容的需求

 

如何使用solaris NCA网络缓存和加速器

Solaris NCA的实现全部包含在solaris操作系统内,无需任何硬件的支持。

Solaris NCA 架构

主要有以下几个部分组成:

l  基于Solaris NCA技术的web服务器:httpd

l  内核模块:ncakmod

a.       nackmod内核模块在系统内存中维护web页的缓存cache,也使用套接字接口(AF_NCA套接字类型)和web服务器httpd通讯

b.       nackmod内核模块也提供日志工具,记录HTTP缓存命中的日志

Solaris NCA 工作原理

         在没有Solaris NCA情况下,所有的数据流是通过IPTCP协议层从网卡到web服务器。如下图所示,一旦Solaris NCA起作用的话,在客户端和web服务器端之间的用户请求数据流将是如下所述:

1.       从客户端向web服务器发出一个HTTP的请求

2.       客户端来的Packet命中Solaris NCA Switch

3.       Solaris NCA Switch查询出端口号,并判断进来的数据包是否为NCA(dport=80)或者IP

4.       Solaris NCA IP(solaris NCA优化过的),则处理该数据包

5.       Solaris NCA TCP(Solaris NCA优化过的),则进行连接或者创建一个新连接,将数据包转发给HTTP Parser

6.       HTTP引擎分解数据包,同时缓存管理器检查kernel缓存,看看其是否为静态请求并且所请求也已在缓存里

7.       如果所请求也在缓存里,则内核缓存的web页将被返回

8.       如果所请求也不在缓存里,则web服务器将接受请求获取web页或者更新之

9.       依据HTTP协议使用规则,决定web页被缓存与否,并将其返回给客户端,如果HTTP请求里面包含了No-cache报文头的话,则该页无需缓存。

使用Solaris NCA的时机

         Solaris NCA应该运行在专用的web服务器上,如果在同一服务器上,有应用需使用大量CPUmemory的话,同时运行NCA可能会带来一些问题。

Web 服务器的支持

         Solaris NCA使用套接字接口,只要作很小的改动就能和web服务器通讯,NCA可以和大多数主流的web服务器一起很好地工作,如SUN ONE WEB SERVERApacheAOL以及Zeus,并不需要做太多的改动,要做的改动也只是修改一些配置文件,而不是源代码!

 

Solaris 网络缓存和加速器规划和实现

系统要求

l  256M bytes RAM

l  Solaris 8 OE, update 7/01及以后版本

安装和配置

运行库

如果web服务器不使用本地的SolarisNCA套接字接口(套接字类型AF_NCA/PF_NCA, ncad_addr.so),那么可以使用预先加载的方式,具体方法是在web服务器的启动脚本里面加入以下一行:

LD_PRELOAD=/usr/lib/ncad_addr.so/usr/sbin/httpd

Web服务器使用NCA的具体配置

1.       注册接口

/etc/nca/nca.if文件里加入每一个物理网卡的名字,比如hme0hme1nxge0

对于每一个网络接口,在/etc/hosts文件里面必须有对应的主机名对应,也就需要对每个网卡有一个能解析的主机名,以及其对应的IP地址。

2.       启动ncakmod内核模块

该步骤完成时在/etc/nca/ncakmod.conf文件里完成:

# NCA Kernel Module Configuration File

status=enabled

#(将该status状态改为enable即可)

httpd_door_path=/var/run/nca_httpd_1.door

ncad_status=disabled

nca_active=disabled

3.       启用NCA logging日志功能

修改一下/etc/nca/ncalogd.conf文件中的statusenable

# NCA Logging Configuration File

#

status=enabled

logd_path_name="/var/nca/log"

logd_file_size=1000000

                  

                   关闭NCA以及NCA logging功能与以上开启类似,只是在关闭后,需要reboot服务器。

阅读(2299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~