Archive for 十一月 6th, 2005

化简为繁——优化你的网站层次

/*

############################################################################

#本文原作者: Litrin Jiang

#原文出处:www.litrin.net

#如需转载,请注明出处,谢谢!

############################################################################

*/

什么是层次?

史力克:就像洋葱。

当奇:为什么是洋葱,为什么不是泡芙?

史力克:因为洋葱有层次!!

常见的网站层次:

  1. 一层结构:

结构非常简单,只支持服务器端静态页面,网页文件数据直接从服务器硬盘中读出,经过www服务器传输给浏览器。

  1. 两层结构:

支持服务器端动态页面,页面文件经过处理后通过服务器传输给浏览器。最常见的3大页面语言:aspiisphp(php+apache) jsp(tomcat).

  1. 最常用的3层结构:

这就比较完善了,数据流程:数据库->脚本解释->www服务器->浏览器。常见的IIS+sql(access) LAMP Tomcat+oracle等等一系列的经典搭配全都是说的这三层结构。

  1. 几种变种:

多数据库结构,多用于数据库端负荷较重的场合,将数据库分开存放,减轻负担。同时可使用数据库同步技术或者负载均衡技术(其实使用负载均衡逻辑上应该只算一台数据库)。

ps: 传说网易采用了2个数据库专门负责写数据,4个数据库专门负责读数据,中间采用数据同步技术保持数据同步。

放在这里将有点牵强,其实这不能算作服务器技术,而应该算作页面技术,多见于门户网站的论坛——将页面做成框架,通过cookies同步数据。如果要保持同步,笔者曾经听说过http server技术,但没有采用过。

页面缓存、缓冲技术

  1. 客户端缓存:

似乎没有什么好解释的:设定页面过期时间,客户端的浏览器就会自动缓存的。

  1. 动转静”缓存:

原理就是将动态的网站转换成静态,从而达到减轻服务器负担和加速优化的目的。其转换出来文件名类似于*****-*****.html或者类似的,有些类似于***,***,***,*.html用“,”隔开的其实是传递的地址变量。具体生成这些文件的软件大多都是商业软件,如果哪位朋友发现有开源的产品,麻烦告诉我,在此感谢!

  1. 逆向代理缓存:

类似于http代理上网的原理,不过将他倒了过来,反向代理,本站也介绍过相应的配置方法,这种方法其实很常用,blogchina.com也用了类似的技术。(原先曾经有人问过我如何看出采用采用了页面缓冲,其实只要看它的http头,类似于“Server: squid/2.5.STABLE7”的就是了,看,版本号都有!)据我所知现在主要通过squid做缓冲,市面上也有所谓的网站加速器之类的硬件产品,实际上就是一个类似的嵌入产品。

PS:如果是采用了动态生成的页面,还要在脚本中稍加修改,具体方法烦请察看站内相关内容。

  1. 代理+缓存:

这个就比较高级了,结合了以上2者的特点,适合于超大规模的网站,一般用不到。

  1. 变种:

通过欺骗或者使用ip隧道技术使缓冲服务器代理或者访问本地的www服务器的方式达到访问目的。(主要通过修改本地主机信息)

负载均衡

  1. 基于域名的负载均衡:

原理类似于抽奖——准备多个IP,对应同一个域名。每做一次域名解析就随即返回一个IP,这无形中就等于将网站的访问量分摊给了多个主机,减少了单一节点的局限。具体判断方法是,nslookup命令返回的是多个ip地址

  1. 基于集群的负载均衡:

  2. 4层交换:

,

1 Comment

集群负载均衡系统简介

说到负载均衡,先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。例如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

集群的概念容易和一些概念(SMP 、NUMA、MPP、分布处理)相混淆,其主要区别在资源被共享和复制的级别不同。它们是按SMP、NUMA、MPP、集群、分布处理从最紧密到最松散的排列。

SMP(多处理系统):这种系统是在一台计算机里有多个CPU,CPU之间的地位是平等的,它们共享内存空间和I/O设备。其工作方法是由操作系统负责将任务分解成多个并发进程,然后让其在不同的CPU上运行。

NUMA(非统一内存存取):这种系统可以让多处理计算机的CPU比SMP更高效地共享本地内存,CPU可以更快速地存取单一的内存区域,不过如需要也可以用间接方式存取其他区域的内存,这种方法是让某些CPU在给定范围的物理内存中有更大的优先使用权。

MPP(巨型并行处理):这种系统的节点都有自己的CPU,并有自己的专有资源。此种结构相对独立,但各个节点一般没有完全存取I/O的能力。

集群:集群系统是由独立的计算机组成,但有控制管理工具统一管理。

分布处理:它是比我们要构筑的集群系统更松散的连接,一般是任务在不同的地方完成,没有可以作为整体管理的单一实体。

以上的聚合方式有紧有疏,它们都有自己的适用范围,这里就不多说了,有兴趣可自己找些资料看,这里只是想让大家了解它所处的位置。

实现负载均衡的方法
集群的目的是共享和高效地利用资源,提供大型运算,提供负载均衡分配请求压力以及出现故障时能够进行切换实现高可用性。

限于篇幅,本文只对负载均衡的实现做些介绍(针对TurboLinux Cluster Server)。通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有这样几种实现方法:直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)。

·直接路由(Direct forwarding)

当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。

·网络地址转换(NAT)

这种方法可能大家较熟悉,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送 到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是 效率低,因为返回给请求方的流量经过转换器。

·隧道技术(Tunneling)

这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。

集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等,下面我们将就具体的产品TurboLinux Cluster Server 来实现一个进行负载均衡集群系统,用于提供Web和FTP的服务。

四台服务器的负载均衡实例
所提供的服务:Web、FTP。

系统的实现目的:做一个较完善负载均衡的系统,以便能用到其中的较多的功能。

采用设备状况:使用四台服务器,其中3台装TurboLinux Cluster Server,1台安装Windows 2000 Sever。

·系统安装

1.在两台服务器上安装TurboLinux, apache和wu-ftpd也要安装,因为集群要提供这种服务,安装完后重启,挂接光驱在目录/mnt/cdrom下,执 行./TLCS-install,然后按提示完全安装。

2.在一台服务器上安装Windows 2000 Server,要安装Internet Information Server 5.0。

·系统配置

1.设置各台服务器的IP地址、子网掩码、路由等,调通网络,将一台TurboLinux服务器设置 成DNS服务器,使其能够正向解析和反向解析。服务器名此例为 pc1,域为test.com。

2.配置Cluster Server。执行Turbolinux clusteradmin,设置情况如下(注:箭头连接的是选单选项,箭头所指为下级选单,最后冒号后为设置情况)。

ClusterServer Configuration→Cluster Services→Application Stability Agents:

(1)http为默认的服务,不用设置

(2)ftp—-/usr/lib/ftpAgent

ClusterServer Configuration→Cluster Services→Service Settings:

(1)http,80:TCP,sticky

(2)ftp,21:TCP,ftp

ClusterServer Configuration→Servers Configuration:

(1) pc1 (pc1.test.com),direct,ping

(2) pc2 (pc2.test.com),direct,ping

(3) pc3 (pc3.test.com),direct,ping

(4) pc4 (pc4.test.com),direct,ping

ClusterServer Configuration→Advance Traffic Managers:

(1)Advance Traffic Manager System: pc1.test.com

(2)Advance Traffic Manager Setting: 默认值

ClusterServer Configuration→Virtual Severs:

(1)主机为:pc1.test.com

(2)sendmail:master@pc1.test.com

(3)Server pool name: ServerGroup1

ClusterServer Configuration→Globle Settings:

网络设置:netmask 255.255.255.0

·配置集群各接点

因为TurboLinux Cluster Server 本身能被工具自动同步,所以只需配置Windows 2000 Server:

开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,我想从列表选择硬件→其他设备→Microsoft:Microsoft Loopback Adapter→完成。

桌面上右键单击"网上邻居"→属性→TCP/IP→设置IP地址、缺省网关,子网掩码(注:先设成:255.255.255.0)。

开始→运行→regedit→找到注册表中跟Microsoft Loopback Adapter相关的项,将子网掩码改成:255.255.255.255。

配置系统以便运行合适的服务、并配置适合控制管理器管理的配置,以便可在控制管理器中使用。

·在管理选单中执行内容同步

选tlcs_content_sync,输入密码,将复制控制管理计算机中的服务内容。

·在管理选单中执行设置同步

选tlcs_config_sync,输入密码,将复制控制管理计算机中的设置。

现在已经可以进入运行状态,可将客户端连接在服务器的交换机上,客户端可以请求Web和FTP服务,需要查看运行情况可以用控制台从https://pc1.test.com:910管理。

在计算机技术中集群负载平衡是自成体系的,目前它是一个热门技术也是一个高端应用,Internet/Intranet中使用集群负载平衡方案的地方十分 广泛,尤其是大中型网站都难脱离这种技术,直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)都会因需要而被采用。它在网络中的作用和被人们重视程度都是很高的,如 果你也感兴趣的话,不妨也来试试。

No Comments

使用负载均衡技术建设高负载的网络站点

上次在加速LAMP一文的最后提到了负载均衡技术,这就是一篇关于负载均衡具体实现的理论分析。

Internet的快速增长使多媒体网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如 Yahoo每天会收到数百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、 I/O处理能力很快会成为瓶颈。

简单的提高硬件性能并不能真正解决这个问题,因为单台服务器的性能总是有限的,一般来讲,一台PC服务器所能提供的并发访问处理能力大约为1000个,更 为高档的专用服务器能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求。尤其是网络请求具有突发性,当某些重大事件发生 时,网络访问就会急剧上升,从而造成网络瓶颈,例如在网上发布的克林顿弹劾书就是很明显的例子。必须采用多台服务器提供网络服务,并将网络请 求分配给这些服务器分担,才能提供处理大量并发服务的能力。

当使用多台服务器来分担负载的时候,最简单的办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台 用于提供游戏页面;或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等需要大量消耗资源的动态页面访问。然而 由于网络访问的突发性,使得很难确定那些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大浪费。事实上造成负载过大的页面常常是在变化中的, 如果要经常按照负载变化来调整页面所在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方向的调整,对于大负载的网站,根本的解 决办法还需要应用负载均衡技术。

负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部 发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使 用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。

1.基于特定服务器软件的负载均衡(访问重定向)

很多网络协议都支持"重定向"功能,例如在HTTP协议中支持 Location指令,接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。由于发送Location指令比起执行服务请求,对 Web服务器的负载要小的多,因此可以根据这个功能来设计一种负载均衡的服务器。任何时候Web服务器认为自己负载较大的时候,它就不再直接发送回浏览器 请求的网页,而是送回一个 Locaction指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。

在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送 Location指令?Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见, 使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用CGI(包括使用FastCGI或 mod_perl扩展来改善性能)来模拟这种方式去分担负载,而Web服务器仍然保持简洁、高效的特性,此时避免Location循环的任务将由用户的 CGI程序来承担。

2.基于DNS的负载均衡(多机单域名负载)

由于基于服务器软件的负载均衡需要改动软件,因此常常是得不偿失,负载均衡最好是在服务器软件之外来完成,这样才能利用现有服务器软件的种种优势。最早的 负载均衡技术是通过 DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的 一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请求,就可以设置该域的DNS服务器中关于该域的数据包括有与下面例子类似的结果:

www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请求也就发送给不同地址了。

DNS 负载均衡的优点是简单、易行,并且服务器可以位于互联网的任意位置上,当前使用在包括Yahoo在内的Web站点上。然而它也存在不少缺点,一个缺点是为 了保证DNS数据及时更新,一般都要将DNS的刷新时间设置的较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效;第二点 是DNS负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服 务器上的偶然情况。

3.反向代理负载均衡(缓冲池)

使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web 服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

实现这个反向代理能力并不能算是一个特别复杂的任务,但是在负载均衡中要求特别高的效率,这样实现起来就不是十分简单的了。每针对一次代理,代理服务器就 必须打开两个连接,一个为对外的连接,一个为对内的连接,因此对于连接请求数量非常大的时候,代理服务器的负载也就非常之大了,在最后反向代理服务器会成 为服务的瓶颈。例如,使用Apache的mod_rproxy模块来实现负载均衡功能时,提供的并发连接数量受Apache本身的并发连接数量的限制。一 般来讲,可以使用它来对连接数量不是特别大,但每次连接都需要消耗大量处理资源的站点进行负载均衡,例如搜寻。

使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并 且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个 服务器的偶然现象。

4.基于NAT的负载均衡技术(内网cluster和四层交换)

网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址 时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与 自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

地址转换可以通过软件方式来实现,也可以通过硬件方式来实现。使用硬件方式进行操作一般称为交换,而当交换必须保存TCP连接信息的时候,这种针对OSI 网络层的操作就被称为第四层交换。支持负载均衡的网络地址转换为第四层交换机的一种重要功能,由于它基于定制的硬件芯片,因此其性能非常优秀,很多交换机 声称具备400MB-800MB的第四层交换能力,然而也有一些资料表明,在如此快的速度下,大部分交换机就不再具备第四层交换能力了,而仅仅支持第三层 甚至第二层交换。

然而对于大部分站点来讲,当前负载均衡主要是解决Web服务器处理能力瓶颈的,而非网络传输能力,很多站点的互联网连接带宽总共也不过10MB,只有极少的站点能够拥有较高速的网络连接,因此一般没有必要使用这些负载均衡器这样的昂贵设备。

使用软件方式来实现基于网络地址转换的负载均衡则要实际的多,除了一些厂商提供的解决方法之外,更有效的方法是使用免费的自由软件来完成这项任务。其中包 括 Linux Virtual Server Project中的NAT实现方式,或者本文作者在FreeBSD下对natd的修订版本。一般来讲,使用这种软件方式来实现地址转换,中心负载均衡器存 在带宽限制,在100MB的快速以太网条件下,能得到最快达80MB的带宽,然而在实际应用中,可能只 有40MB-60MB的可用带宽。

5. 扩展的负载均衡技术

上面使用网络地址转换来实现负载分担,毫无疑问所有的网络连接都必须通过中心负载均衡器,那么如果负载特别大,以至于后台的服务器数量不再在是几台、十几 台,而是上百台甚至更多,即便是使用性能优秀的硬件交换机也回遇到瓶颈。此时问题将转变为,如何将那么多台服务器分布到各个互联网的多个位置,分散网络负 担。当然这可以通过综合使用DNS和NAT两种方法来实现,然而更好的方式是使用一种半中心的负载均衡方式。

在这种半中心的负载均衡方式下,即当客户请求发送给负载均衡器的时候,中心负载均衡器将请求打包并发送给某个服务器,而服务器的回应请求不再返回给中心负载均衡器,而是直接返回给客户,因此中心负载均衡器只负责接受并转发请求,其网络负担就较小了。

这种方式的硬件实现方式也非常昂贵,但是会根据厂商的不同,具备不同的特殊功能,例如对SSL的支持等。

由于这种方式比较复杂,因此实现起来比较困难,它的起点也很高,当前情况下网站并不需要这么大的处理能力。

比较上面的负载均衡方式,DNS最容易,也最常用,能够满足一般的需求。但如果需要进一步的管理和控制,可以选用反向代理方式或NAT方式,这两种之间进 行选择主要依赖缓冲是不是很重要,最大的并发访问数量是多少等条件。而如果网站上对负载影响很厉害的CGI程序是由网站自己开发的,也可以考虑在程序中自 己使用Locaction来支持负载均衡。半中心化的负载分担方式至少在国内当前的情况下还不需要。

,

No Comments

为 LAMP 加速

本技巧不仅仅可以为 PHP 提供加速的技巧,对于 Perl 和 Python 也有同样的效果。

为了得到完整的调试结果,建议你采用 ApacheBench 或者 httperf之类的软件。如果你对非 LAMP 架构的服务器测试有兴趣的话,建议你采用微软的免费软件: Web Application Stress Tool(需要 NT 或者 2000)。

检测 Apache ,采用 top d 1 显示所有进程的 CPU 和内存情况。另外,还采用 apachectl status 命令。

1、升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。一台 400 Mhz 的普通奔腾机器所下载的静态页面就能让 T3 专线(45Mbps)饱和。

2、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。

3、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。

4、把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 –with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个简单的修改能让会话管理时间缩短一半。

5、另外一项缓冲技术是把不常修改的 PHP 页面采用 HTML 缓冲输出。

6、如果你采用了 Linux 系统,建议升级内核到 2.6.0以上(现在最新版本为2.6.10)并开启抢占式内核支持,因为静态页面由内核服务。

7、采用最新版本的 Apache ,并把 PHP 编译其中,或者采用 DSO 模式,尽量不要采用 CGI 方式。

8、采用输出缓冲(请参考ob_start),如果你的代码有很多的 print 和 echo 语句,能提速 5-15% 。

9、不要在 Web 服务器上运行 X-Windows ,关掉没有必要运行的进程,如果已经安装了X-windows,请使用 init 3登录。

10、如果能够用文本就不要用图像,尽量减小图片的尺寸。

11、分散负载,把数据库服务器放到另外的机器上去。采用另外低端的机器服务图片和 HTML 页面,如果所有的静态页面在另外一台服务器上处理,可以设置 httpd.conf 中的 KeepAlives 为 off ,来减少断开连接的时间,但这样对于访问者来说不够友好。

12、采用 hdparm 来优化磁盘,一般能提升 IDE 磁盘读写性能 200%,但是对 SCSI 硬盘没有效果。

13、修改 httpd.conf :
# 关闭 DNS lookups,PHP 脚本只拿 IP 地址
HostnameLookups off

# 关闭 htaccess 检测
<Directory />
AllowOverride none
</Directory>

打开 FollowSymLinks ,关闭 SymLinksIfOwnerMatch 以防 lstat() 系统调用:
Options FollowSymLinks
#Options SymLinksIfOwnerMatch
下面还有很多关于 httpd.conf 参数的调整。

14、Kurt 简洁而完整的 Apache Tuning Tips

15、如果喜欢从修改 Apache 源码入手,可以安装 lingerd。在页面产生和发送后,每个 Apache 进程都会浪费一段时光在客户连接上,Lingerd 能接管这项工作,让 Apache 迅速服务下一个客户请求。

16、如果网络拥挤,CPU 资源不够用,采用 PHP 的 HTML 压缩功能:
    output_handler = ob_gzhandler
    PHP 4.0.4 及以前的用户请不要使用,因为存在内存泄漏问题
   

17、修改 httpd.conf 中的 SendBufferSize 为你最大的页面文件的大小。加大内核的 TCP/IP 写缓冲大小

18、另外一篇文章:Tuning Apache Web Servers for Speed,一篇 97 年的很古老的文章。

19、采用数据库的持久连接时,不要把 MaxRequestsPerChild 设置得太大。

20、Caching Tutorial for Web Authors and Webmasters 教你怎样实现浏览器缓冲。

21、如果你足够勇敢的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。

22、来自Professional Apache的技巧。

23、官方的Performance Tuning 文档,很好的资料,但是十分繁琐。

24、编译 PHP 时,建议采用如下的参数:
    –enable-inline-optimization –disable-debug

25、安装mod_gzip(apache1.3)或者mod_deflate(apache2.0)等页面压缩软件减轻服务器拥堵。同时尽可能优化你的HTML文件和PHP文件。

26、优化 Linuxmore Linux 以及Solaris

27、如果系统瓶颈在MYSQL的数据操作上,可以考虑将Mysql拆分成多个端口甚至多个服务器并适当优化my.cnf ,这比使用单个端口速度提高不少。

26、以上所有的方法都是针对单机而言的,如果你觉得系统还是不够快,可以采用集群负载均衡缓冲技术。采用 Squid 作为缓冲,配置 Squid 的方法

,

No Comments

FireFox“背后”的秘密:教你如何玩提速

Mozilla Firefox发布已经有些时日了,也许细心的人会发现,每次Firefox都会向页面发送一个请求信息,像目前大多数的互联网上的浏览器一样。这全都是因为Firefox对其传输途径的配置,也正是利用这个,我们可以对其配置文件进行简单的修改来达到提速的目的。

首先,在URL栏输入"about:config", 将打开一个参数的命令行清单,这就是我们以下进行编辑的第一步。

FireFox

第二步,在下面的清单中找到(或直接输入)"network.http.pipelining"并将其值属性改为"true"。

FireFox

随后我们找到"network.http.proxy.pipelining"并把它的值同样设置为"true"。

FireFox

下面我们要做的就是找到"network.http.pipelining.maxrequests"并把它的值改的高一些,如果你改成10,意思就是要求它每次发送10个请求。

FireFox

最后一步就是在Firefox任何一个地方点右键,选择"New"—"Integer"在弹出的对话框中输入"nglayout.initialpaint.delay"并将其值改为"0",表示当浏览器收到网站回复的信息后能够快速的反应。

FireFox

FireFox

FireFox

完全关闭FireFox后退出,再重新打开FireFox,你将会有不一样的速度体验,会有2—3倍的速度提升,有兴趣的朋友可以实验一下。

No Comments