简介
服务器性能对任何网络应用程序或服务的成功至关重要。用户数量是影响服务器性能的关键因素之一。随着用户数量的增加,服务器必须处理更大的负载,这可能会导致性能下降,甚至服务器崩溃。
影响服务器性能的因素
影响服务器性能的因素有很多,包括:硬件:服务器的硬件规格,如 CPU、内存和存储,对性能有直接影响。软件:服务器上运行的操作系统和应用程序也会影响性能。网络:服务器与客户端 arasındaki网络带宽和延迟会影响性能。负载:服务器上同时运行的进程和服务的数量会影响性能。
用户数量与服务器性能
用户数量是服务器服务器性能对任何网络应用程序或服务的成功至关重要。用户数量是影响服务器性能的关键因素。通过了解服务器如何应对负载并实施适当的优化技术,可以确保服务器能够高效可靠地处理大量用户。
WEB服务器流量超负载:如何分散解决
Web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。
为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。
从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。
一、计算WEB服务器负载量的两种方法 web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。
为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。
从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。
高可靠性可以看作为系统的一种冗余设定。
对于一个特定的请求,如果所申请的服务器不能进行处理的话,那么其他的服务器能不能对之进行有效的处理呢?对于一个高效的系统,如果一个Web服务器失败的话,其他的服务器可以马上取代它的位置,对所申请的请求进行处理,而且这一过程对用户来说,要尽可能的透明,使用户察觉不到! 稳定性决定了应用程序能否支持不断增长的用户请求数量,它是应用程序自身的一种能力。
稳定性是影响系统性能的众多因素的一种有效的测量手段,包括机群系统所能支持的同时访问系统的最大用户数目以及处理一个请求所需要的时间。
在现有众多的均衡服务器负载的方法中,广泛研究并使用的是以下两个方法: DNS负载平衡的方法RR-DNS(Round-Robin Domain Name System) 负载均衡器 以下,我们将就这两种方法进行讨论。
二、DNS轮流排程的优势及缺点 域名服务器(Domain Name Server)中的数据文件将主机名字映射到其IP地址。
当你在浏览器中键入一个URL时(例如),浏览器则将请求发送到DNS,要求其返回相应站点的IP地址,这被称为DNS查询。
当浏览器获得该站点的IP地址后,便通过该IP地址连接到所要访问的站点,将页面展现在用户面前。
域名服务器(DNS)通常包含一个单一的IP地址与该IP地址所映射的站点的名称的列表。
在我们上面所假象的例子中, 这个站点的映射IP地址为203.24.23.3。
为了利用DNS均衡服务器的负载,对于同一个站点来讲,在DNS服务器中同时拥有几个不同的IP地址。
这几个IP地址代表集群中不同的机器,并在逻辑上映射到同一个站点名。
通过我们的例子可以更好的理解这一点,将通过下面的三个IP地址发布到一个集群中的三台机器上: 以下为引用的内容: 203.34.23.3 203.34.23.4 203.34.23.5 在本例中,DNS服务器中包含下面的映射表: 203.34.23.3 203.34.23.4 203.34.23.5 当第一个请求到达DNS服务器时,返回的是第一台机器的IP地址203.34.23.3;当第二个请求到达时,返回的是第二台机器的IP地址203.34.23.4,以此类推。
当第四个请求到达时,第一台机器的IP地址将被再次返回,循环调用。
利用上述的DNS Round Robin技术,对于某一个站点的所有请求将被平均的分配到及群中的机器上。
因此,在这种技术中,集群中的所有的节点对于网络来说都是可见的。
DNS 轮流排程的优势 DNS Round Robin的最大的优点就是易于实现和代价低廉: 代价低,易于建立。
为了支持轮流排程,系统管理员只需要在DNS服务器上作一些改动,而且在许多比较新的版本的DNS服务器上已经增加了这种功能。
对于Web应用来说,不需要对代码作任何的修改;事实上,Web应用本身并不会意识到负载均衡配置,即使在它面前。
简单. 不需要网络专家来对之进行设定,或在出现问题时对之进行维护。
DNS 轮流排程的缺点 这种基于软件的负载均衡方法主要存在两处不足,一是不实时支持服务期间的关联,一是不具有高可靠性。
不支持服务器间的一致性。
服务器一致性是负载均衡系统所应具备的一种能力,通过它,系统可以根据会话信息是属于服务器端的,还是底层数据库级别的,继而将用户的请求导向相应的服务器。
而DNS轮流排程则不具备这种智能化的特性。
它是通过cookie、隐藏域、重写URL三种方法中的一种来进行相似的判断的。
当用户通过上述基于文本标志的方法与服务器建立连接之后,其所有的后续访问均是连接到同一个服务器上。
问题是,服务器的IP是被浏览器暂时存放在缓存中,一旦记录过期,则需要重新建立连接,那么同一个用户的请求很可能被不同的服务器进行处理,则先前的所有会话信息便会丢失。
不支持高可靠性。
设想一个具有N个节点的集群。
如果其中的一个节点毁坏,那么所有的访问该节点的请求将不会有所回应,这是任何人都不愿意看到的。
比较先进的路由器可以通过每隔一定的时间间隔,对节点检查,如果有毁坏的节点,则将之从列表中去除的方法,解决这个问题。
但是,由于在Internet上,ISPs将众多的DNS存放在缓存中,以节省访问时间,因此,DNS的更新就会变得非常缓慢,以至于有的用户可能会访问一些已经不存在的站点,或者一些新的站点得不到访问。
所以,尽管DNS轮流排程在一定程度上解决了负载均衡问题,但这种状况的改变并不是十分乐观和有效的。
除了上面介绍的轮流排程方法外,还有三种DNS负载均衡处理分配方法,将这四种方法列出如下: Round robin (RRS): 将工作平均的分配到服务器 (用于实际服务主机性能一致) Least-connections (LCS): 向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。
用于实际服务主机性能一致。
) Weighted round robin (WRRS): 向较大容量的服务器分配较多的工作。
可以根据负载信息动态的向上或向下调整。
(用于实际服务主机性能不一致时) Weighted least-connections (WLC): 考虑它们的容量向较少连接的服务器分配较多的工作。
容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。
(用于实际服务主机性能不一致时) 三:传统负载均衡器的优势及缺点 负载均衡器通过虚拟IP地址方法,解决了轮流排程所面临的许多问题。
使用了负载均衡器集群系统,在外部看来,像是具有一个IP地址的单一服务器一样,当然,这个IP地址是虚拟的,它映射了集群中的每一台机器的地址。
所以,在某种程度上,负载均衡器是将整个集群的IP地址报漏给外部网络。
当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。
如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。
而且,internet上缓存的DNS条目也不再是问题了。
当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。
也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。
传统负载均衡器的优点 服务器一致性. 负载均衡器读取客户端发出的每一个请求中所包含的cookies或url解释。
基于所读出的这些信息,负载均衡器就可以重写报头并将请求发往集群中合适的节点上,该节点维护着相应客户端请求的会话信息。
在HTTP通信中,负载均衡器可以提供服务器一致性,但并不是通过一个安全的途径(例如:HTTPS)来提供这种服务。
当消息被加密后(SSL),负载均衡器就不能读出隐藏在其中的会话信息。
通过故障恢复机制获得高可靠性. 故障恢复发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时。
主要有两种故障恢复: 请求级故障恢复。
当集群中的一个节点不能处理请求时(通常是由于down机),请求被发送到其他节点。
当然,在导向到其他节点的同时,保存在原节点上的会话信息将会丢失。
透明会话故障恢复。
当一个引用失败后,负载均衡器会将之发送到集群中其他的节点上,以完成操作,这一点对用户来说是透明的。
由于透明会话故障恢复需要节点具备相应的操作信息,因此为了实现该功能,集群中的所有节点必须具有公共存储区域或通用数据库,存储会话信息数据,以提供每个节点在进行单独进程会话故障恢复时所需要的操作信息。
统计计量。
既然所有的Web应用请求都必须经过负载均衡系统,那么系统就可以确定活动会话的数量,在任何实例访问中的活动会话的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。
所有的这些统计信息都可以被很好的用来调整整个系统的性能。
传统负载均衡器的缺点 硬件路由的缺点在于费用、复杂性以及单点失败的。
由于所有的请求均是通过一个单一的硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃。
HTTPS请求的负载均衡 正如上面所提到的,很难在那些来自HTTPS的请求上进行负载均衡和会话信息维护处理。
因为,这些请求中的信息已经被加密了。
负载均衡器没有能力处理这类请求。
不过,这里有两种方法可以解决这一问题: 代理网络服务器 硬件SSL解码器 代理服务器位于服务器集群之前,首先由它接受所有的请求并对之进行解密,然后将这些处理后的请求根据头信息重新发往相应的节点上,这种方式不需要硬件上的支持,但会增加代理服务器的额外的负担。
硬件SSL解码器,则是在请求到达负载均衡器之前,先经由它进行解密处理。
这种方式比代理服务器的处理速度要快捷一些。
但代价也高,而且实现比较复杂。
如何使得Linux服务器下多网卡负载均衡
如何使得Linux服务器下多网卡负载均衡?
◆应用服务器的负载均衡技术如果将客户端的负载均衡层移植到某一个中间平台,形成三层结构,则客户端应用可以不需要做特殊的修改,透明的通过中间层应用服务器将请求均衡到相应的服务结点。
比较常见的实现手段就是反向代理技术。
使用反向代理服务器,可以将请求均匀转发给多台服务器,或者直接将缓存的数据返回客户端,这样的加速模式在一定程度上可以提升静态网页的访问速度,从而达到负载均衡的目的。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。
然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。
反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求,代理服务器的负载也就非常之大。
反向代理能够执行针对应用协议而优化的负载均衡策略,每次仅访问最空闲的内部服务器来提供服务。
但是随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。
◆基于域名系统的负载均衡NCSA的可扩展Web是最早使用动态DNS轮询技术的web系统。
在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
在很多知名的web站点都使用了这个技术:包括早期的yahoo站点、163等。
动态DNS轮询实现起来简单,无需复杂的配置和管理,一般支持bind8.2以上的类unix系统都能够运行,因此广为使用。
DNS负载均衡是一种简单而有效的方法,但是存在不少问题。
首先域名服务器无法知道服务结点是否有效,如果服务结点失效,余名系统依然会将域名解析到该节点上,造成用户访问失效。
其次,由于DNS的数据刷新时间TTL(Time to LIVE)标志,一旦超过这个TTL,其他DNS服务器就需要和这个服务器交互,以重新获得地址数据,就有可能获得不同IP地址。
因此为了使地址能随机分配,就应使TTL尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址。
然而将TTL设置得过短,将使DNS流量大增,而造成额外的网络问题。
最后,它不能区分服务器的差异,也不能反映服务器的当前运行状态。
当使用DNS负载均衡的时候,必须尽量保证不同的客户计算机能均匀获得不同的地址。
例如,用户A可能只是浏览几个网页,而用户B可能进行着大量的下载,由于域名系统没有合适的负载策略,仅仅是简单的轮流均衡,很容易将用户A的请求发往负载轻的站点,而将B的请求发往负载已经很重的站点。
因此,在动态平衡特性上,动态DNS轮询的效果并不理想。
◆高层协议内容交换技术除了上述的几种负载均衡方式之外,还有在协议内部支持负载均衡能力的技术,即URL交换或七层交换,提供了一种对访问流量的高层控制方式。
Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策。
例如可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务,常见的有HTTP协议中的重定向能力等。
HTTP运行于TCP连接的最高层。
客户端通过恒定的端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个HTTP请求。
协议交换根据内容策略来控制负载,而不是根据TCP端口号,所以不会造成访问流量的滞留。
由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通过后才能确定如何进行负载的平衡。
当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息的分析以及进程的时延已经变得很重要了,要尽一切可能提高这几各部份的性能。
在HTTP请求和报头中有很多对负载平衡有用的信息。
我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用的高性能数据库服务器。
如果网络管理员熟悉内容交换技术,他可以根据HTTP报头的cookie字段来使用Web内容交换技术改善对特定客户的服务,如果能从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。
除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。
如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。
◆网络接入协议交换大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web服务器等。
如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。
现在许多交换机提供第四层交换功能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择一个内部地址,将数据包转发到该地址上,达到负载均衡的目的
VDI云桌面支持移动办公吗?
VDI云桌面的一个比较重要的功能特性,就是能支持移动办公。
因为VDI的计算资源、CPU、内存、硬盘、显卡都是用服务器的,所以它对前端的硬件要求就很低,所以用手机、平板、笔记本电脑都可以接进去,不管是X86还是arm的都可以,非常灵活。
这对经常需要通过移动设备实时办公的用户来说很有帮助。
但也正是由于VDI全部使用后端计算的特性,使得它真正应用到日常办公中的时候,依然存在局限性。
其中比较显著的局限,就是VDI对网络严重依赖。
因为它所有的传输都是要通过网络,那么一旦网络中出现卡机的情况下,那么就会出现网络延迟,或者说网络丢包。
它的原理就像我们看动画片一样,一帧一帧的把图片传过来,那么就相当于说我们在看动画片的时候,被抽走几页纸,对用户的体验是突然间鼠标可能动不了了,或者是键盘敲下去,过个两秒钟,没有任何反应,到了第三秒钟,突然间刚刚敲的内容就全部出来了,这个对很多用户来说是很抓狂的。
为了解决VDI对网络依赖严重的问题,一些云桌面厂商会把利用前端资源计算的架构融入到产品里,有VOI也有IDV,这两个都是利用前端计算的。
但VOI无论从性能、稳定性还是各方面都比IDV卓越。
在这些厂商中融合比较成功的是下一代云桌面,因为它的VOI中有其独创的盘网双待技术,就是说无论是网络丢包,还是硬盘坏损,都不会影响正常使用,业务连续性很高。
但IDV有其独特的价值,就是可以在新硬件上跑老系统,这对于一些规定只能使用某种特定系统,如win7/xp等单位来说十分友好。
这也是下一代云桌面把这三种云桌面主流架构全都深度融合在产品底层的重要原因。

