免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
打印 上一主题 下一主题

【F5专家解答网友提问视频】联合挑战第八期 “Web应用优化” [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-06-24 10:05 |显示全部楼层
利用分布式文件系统提高服务器性能与容错性
分布式文件系统是微软服务器中很重要的一项功能。通过分布式文件系统网络管理员可以将服务器文件分散存储到网络上的多台服务器上,以提高服务器性能并增强服务器的容错性。最重要的是,这对于普通用户来说是透明的,用户只需要从一个地点访问这些文件即可。
  如现在有一家企业提供WEB服务。为了提高WEB服务器的性能与容错性,他们就采用了分布式文件系统。把WEB服务器的内容存放在2台服务器中。即 WEB文件被重复的存储在多台计算机中。用户通过DFS(用户认为的WEB服务器)读取文件时,DFS就会自动给用户从其中一台服务器内读取文件。对于用户来说,并不需要知道这些文件的真正存储地点(即对用户来说他们不知道WEB服务器A与服务器B的存在)。如此部署的话,主要是为了提到服务器负载均衡与提高WEB服务器的容错性能两个目的。假设现在有多个用户需要浏览网页,DFS会根据实际情况避免从同一台服务器读取网页内容。它会分散地从不同的服务器给不同的用户读取网页。通过这种方式可以把分担分散到不同的服务器上。同样,如果当用户访问网页时,即使有一台WEB服务器发生了故障不能够正常访问时,DFS仍然可以从另外一台运行正常的服务器中读取用户所需要访问的网页。从而提高了WEB服务的容错性能。
  可见分布式文件系统在微软的服务器构建上具有很大的实用价值。不仅仅是WEB服务器,还有文件服务器、FTP服务器等等,都可以通过这种方式来提高服务器的容错能力,均衡服务器的负担等等。不过这个分布式文件系统也是一个比较娇贵的东西,要把它伺候好,让他为企业服务,还不是一件容易的事情。具体来说,在部署分布式文件系统时,需要注意以下问题。
  1、需要注意DFS(分布式文件系统)根目录的放置。当用户访问WEB网页时,他们只知道要访问某个网站,而不知道网站后面可能还有其他服务器的存在。用户要访问的WEB服务器其实就是DFS根目录所在的主机。网络管理员要实现分布式文件系统,必须要先将网络中一台服务器内的共享文件夹设置为 DFS根目录。这个DFS根目录主要用来存储分布式文件系统的映射关系。网络管理员要为该根目录取一个简约的名字,其他用户就可以通过这个名字访问这个分布式文件系统根目录下的文件。可见DFS根目录的安全性直接跟WEB服务器的安全相关。而且其也跟WEB应用服务的稳定**息相关。因为如果这个目录出现了问题,映射关系遭受到破坏,则用户将无法正常访问文件资源。为了提高这个根目录的安全性,笔者建议是要把这个根目录部署在微软的NTFS文件系统上,并对此配置一定的安全措施。由于NTFS文件系统要比FAT32文件系统安全的多。无论是加密技术或者数据还原上,NTFS文件系统都有比较突出的表现。故笔者觉得,使用NTFS文件系统当作分布式文件系统的根目录,则其安全性与稳定性会更有保障一点。
  2、部署多台主机服务器。如果DFS在微软的域环境中,则必须是域的成员才能够存储DFS根目录。换句话说,要成为DFS服务器,则必须加入到微软的域中。这台存储DFS根目录的服务器被称为主机服务器。域DFS可以通过创建另一个新的DFS根目录目标的方式,将DFS根目录复制到其他的服务器内。如上图中,DFS根目录的目标有两个,分别映射到两台服务器的共享文件夹。即DFS根目录中的内容被同时存储到这两台服务器种,以实现服务器负载均衡以及提供比较高的容错性能。从理论上来说,主机服务器越多,其容错性能越好,用户访问服务器的性能也越好。这些主机服务器的设置数据可以通过活动目录自动同步。为此当一台存储DFS根目录的主机服务器发生故障时,用户还是可以从其他的主机服务器读取到根目录内的设置数据。所以可以说主机服务器它具备了DFS映射关系的容错功能。简单的说,主机服务器之间的数据会自动发生同步,从而保证各台服务器之间数据的一致性。但是这就会发生一个问题。如果服务器比较多的时候,那么这个数据同步就可能会占用比较多的网络带宽。而且架立服务器也需要不少的投入。为此笔者觉得,主机服务器也并不是越多越好。网络管理员需要根据预计访问的用户、对于容错性的要求等等角度,去考虑主机服务器的数量。对于普通企业来说,这主机服务器2台到3台也就够了。多了也是种浪费。
  3、要选择合适的分布式文件系统类型。 Windows服务器(以2003服务器操作系统为例)其主要支持两种分布式文件系统类型。这两种类型分别为域DFS与独立的DFS。这两种分布式文件系统各有各的特点。网络管理员需要了解这两种分布式文件系统的特点,并根据企业自身的需求选择合适的实现方式。这里笔者要强调的是,无论是哪种分布式文件系统类型,他们都支持容错功能。无论是域DFS还是独立的DFS,一个DFS链接的目标可以同时映射到多台服务器的共享文件夹,这些共享文件夹中存储着相同的文件。当有一台服务器发生故障时,用户还是可以从其他的计算机获取文件。也就是说,无论哪种实现方式都可以提供DF链接容错功能。这也是这两种分布式文件系统类型的唯一共同之处。另外需要注意的是主机服务器之间文件的复制问题。在域DFS中,主机服务器之间的DS根目录复制,还有DFS链接的多个目标之间文件的复制,都可以通过文件复制服务来实现自动复制。但是如果是独立的DFS,则DFS链接的多个目标之间文件的复制,需要网络管理员手工操作。这个差异让独立DFS只限于在小规模范围内使用。除了这个差异外,独立DFS还不具有DFS映射关系的同步功能与DFS根目录的容错功能。故当采用独立的DFS 系统类型时,网络管理员需要花费比较多的时间去实现这个数据同步功能。故考试大建议对于独立的分布式文件系统要慎用。另外是否采用独立DFS,还有出于兼容性的考虑。这方面的内容笔者会在下一点进行说明。
  4、要注意早期操作系统对分布式文件系统的支持。一般来说只有安装了DFS客户端软件的客户端计算机,才可以访问DFS内的文件。另外也只有某些特定的计算机操作系统才具备存储DFS根目录的功能。通常情况下,Windows2000(包含 2000操作系统)以及以后的系统默认情况下都已经安装了DFS客户端,故这些操作系统对DFS文件系统的支持是没有文件的。需要注意的是早期的操作系统对其的支持。如Windows95操作系统,虽然其可以支持DFS分布式文件系统,但是另外下载并安装DS客户端软件。而Windows98操作系统默认情况下已经安装了DFS客户端,可是这个客户端只能够支持独立的DFS分布式文件系统类型。如果要访问域DFS分布式文件类型,则必须对这个DFS客户端软件进行升级。所以如果企业网络中存在着比较老的计算机操作系统,那么是网络管理员部署分布式文件系统的一大障碍。
  另外最后考试大需要强调的一点就是安全问题。从上面的描述中大家可以看出,分布式文件系统是在各个服务器的共享文件夹上实现的。为了分布式文件系统的安全性,最好能够把共享文件夹设置在NTFS文件系统下,并利用NTFS文件系统的权限与共享权限来提高这些共享文件的安全。不能因为采用了DFS文件系统而给数据安全带来了负面影响。否则的话,DFS的容错性与服务器性能负载均衡也无从谈起。

论坛徽章:
0
22 [报告]
发表于 2010-06-24 10:07 |显示全部楼层
本帖最后由 surpass_li 于 2010-06-24 10:16 编辑

配置为
cpu 双 Intel(R) Xeon(TM) CPU 3.20GHz 模拟四个cpu
内存 MemTotal:      6206916 kB
MemFree:         55820 kB
SwapTotal:    15004700 kB
SwapFree:     15004684 kB
硬盘 为raid 5 管理文件总大小为4-5T
网络带宽不是问题

apache 1.3做视频文件服务器,正常并发(httpd进程)>1000 ,load average 15左右。峰值并发(httpd进程)1500,峰值的时候,机子负载很高,用shell登陆反应都很慢。
请教各位高手,如何优化,提高其负载能力

正在准备转用apahe2.x 使用prefork还是worker好些,有人说worker模式不是很稳定,prefork占用系统资源又太大?
另外该如何查找系统的瓶颈,是应用的问题还是系统io太大承受不了,有什么好的方法。

单个文件大小一般在10M-20M

论坛徽章:
0
23 [报告]
发表于 2010-06-24 10:08 |显示全部楼层
本帖最后由 surpass_li 于 2010-06-24 10:14 编辑

在各种网站的正常运营中,由于用户需求的多样性,直接导致了主机应用的复杂性,诸如,Client/Server模式,Web/Server模
式,三层应用服务系统迅速普及,服务器作为网络信息发布,处理的关键性节点,比以往要承载更多的流量负载.也许服务器
的性能表现会不尽如人意,这就需要分析具体的服务器性能瓶颈并找到解决办法.本文对影响Web服务器性能的各方面做了分
析,提出了缓解Web服务器性能瓶颈效应的方法.
各种Web平台技术性能分析
实际上,目前的web站点能够采用各种技术,包括静态HTML,内嵌或服务器解析的HTML(inline/server-parsedHTML)和
CGI(CommonGatewayInterface,公共网关接口),并以ODBC(OpenDatabaseConnectivity,开放式数据库互接)实现数据库
的互连.每一种数据源均以其独特的方式在web服务中发挥着作用.
静态HTML
静态HTML是互联网上任何站点最基本的一种构成元素.几乎所有的站点均不同程度地采用了这种元素.静态的HTML
页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成.这意味着,对一个静态HTML文档发出访问请
求后,服务器端只是简单地将该文档传输到客户端.从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资
源.为了提高静态HTML的访问效率,主要可以从以下几个方面进行优化:网络带宽,磁盘I/O以及cache(高速缓冲存储器).
服务器解析的HTML
依靠服务器解析的HTML页面包括两部分的代码:一部分是标准的HTML代码,另一部分是服务器端运行的代码(由第三方
的处理程序或web服务器自己在页面传输到客户端前对其进行解释).这种HTML页面是CGI程序的升级版本(因为它的执行
效率更高).目前,内嵌的服务器端扩展集,比如ASP,PHP是普通的服务器端支持的扩展集,已得到了非常普遍的使用.开
发这种扩展集的目的是要使网站上的内容更生动活泼,更模块化,以利于维护.此外,服务器解析文档改善了性能相对低下的
客户端工作模式,将客户端的负载降低到最低程度,同时也降低了数据传输对带宽的要求.因为服务器解析文档必须在其传输
到客户端前就通过服务器来进行解释,所以,我们的服务器要添加额外的CPU.
公共网关接口(CGI)
CGI使Web站点具有更佳的交互性和实用性.它可以用来收集用户的输入数据,允许运行外部程序以执行众多与用户输入相关
的任务以及输出执行结果等,因此,应用CGI后,互联网的用途被大大扩充了.但是,要使用CGI,就必须付出一定开销.特
别在CGI与解释器(譬如PERL)配合使用时,CGI的调用成本会很高.如果系统运行在极端繁重的负载条件下,该成本更是
高居不下.如果可能的话,应该考虑选用ASP或PHP3来取代CGI.
数据库的互连性
目前,互联网上最大的资源杀手当非在线数据库(onlinedatabases)和电子商务(e-commerce)等应用莫属.提供web功能的
数据库和应用服务器近年来飞速增长,显示出强劲的发展势头.从性能的角度来看,在线数据库,基于MySQL,Oracle,SQLServer
或Sybase等的应用如日中升,迫使我们更加关注服务器的性能状况.对于大型网站来说,高负载的HTTP传输和数据库处理事
务互相抢占资源,并最终可能导致服务器在极短的时间内崩溃或者变得慢如蜗牛.在这种情况下,建议使用专门的后台运行的
数据库服务器(当然也是出于安全的考虑)以及前台处理的HTTP服务器.
如何缓解瓶颈效应
根据上述分析,我们知道不同的平台提供不同的性能水平,各个平台的性能之间存在一定交迭,因此,要根据我们选用的平台,
考虑从以下四个方面提出可行的办法.
网络带宽
可用的带宽对于主要由静态页面构成的站点来说,是最关键的因素.撇开网络的吞吐总量以及响应速度不讲,在高负载的环境
下,系统的突发传输速率是非常重要的.在用户访问的高峰期,某些站点也许根本无法访问.这样的站点在用户企图访问它时
显得慢如蜗牛,而服务器自身却仍旧非常空闲.这样看来,要成功搭建一个web主机,选择合适的带宽显然是非常重要的.必
要时,服务器到核心交换机可选择千兆带宽.
内存可用的物理内存是另外一个重要因素,这是因为对内存的占用率会直接随着对服务器请求数量的增加而增加.文件缓冲区也是
非常重要的,因为它能将磁盘的使用频率降到最低程度,明显加快事务处理的总体速度.对内存的需求很大程度上取决于使用
在特定服务器上的软件的具体情况.除了操作系统的管理能力和文件系统的缓冲区大小之外,还需要将所选择的web服务器软
件对硬件的特殊要求调查清楚.
存储
web服务器的性能和存储介质有关的读写时间指标也是非常重要的,对大型文件库和数据库(文件缓冲区的作用在这明显削弱)
而言,尤其如此.在多设备协同工作的条件下,Web服务器的磁盘系统必须有卓越的性能,推荐采用SCSI硬盘或RAID阵列.
对于那些主要放开了只读权限的站点(用户不能上传数据),RAID是最佳的解决方案.RAID具有可用性(Availability),
容量(Capacity)及性能(Performance)等三个方面的优点.因为,在RAID阵列中存在多个硬盘磁头,能明显提升读取操作
的数据吞吐量.
中央处理器
对于那些主要由静态页面构成的站点来说,CPU是最次要的一个因素.但是,在使用了包括CGI,服务器解析文档或提供web
访问方式的数据库的情况下,就需要更多地关注CPU的性能.在这种场合下,如果向一个较小的用户群体提供某种对CPU依
赖很大的应用服务,那么,一个高速的单CPU可能是最有用的.但是,如果存在多个用户同时对大批量的页面提出访问请求,
那么在这种情况下(尤其在这些页面均以独立的进程或线程模式打开情况下),多CPU系统(即使这些CPU的速度都很慢)更
为管用.
以上简单分析了各类平台下的服务器性能瓶颈,并提出了缓解的基本途径和方法.当然,缓解服务器性能瓶颈的方法还有
采用服务器集群,负载平衡技术等.

论坛徽章:
0
24 [报告]
发表于 2010-06-24 10:46 |显示全部楼层
每家的服务和应用场情都不一样,需要参照大众的经验进行测试和调整参数,做到满足自己的服务器的最优配置.

论坛徽章:
0
25 [报告]
发表于 2010-06-25 10:01 |显示全部楼层
F5现在是什么价位?

论坛徽章:
0
26 [报告]
发表于 2010-06-29 09:14 |显示全部楼层
分布式数据库可以在很大程度上提高WEB的性能.数据安全也有所提高

论坛徽章:
0
27 [报告]
发表于 2010-07-04 14:42 |显示全部楼层
看白皮书F5功能很强大,做为普通WEB站点适用吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP