分享高性能网站构架的7个方面

所属分类: 网站运营 / 建站经验 阅读数: 146
收藏 0 赞 0 分享

一、优化网站响应时间的架构方案:

网站能不能留的住用户,一方面是看内容,另一方面是看响应时间。通常有以下几个方式来降低网站响应时间:

1、减少HTTP请求。包括合并css和javascript。减少图片数量,比如利用css的偏移技术来在一个图片中选择不同的位置内容。利用浏览器的Cache功能,我们可以在头中声明是否被浏览器缓存。

2、动态内容静态化。比如永久生成HTML文件。生成静态文件并设定生存时间,到期后查询新的动态内容进行替换。

3、优化数据库。数据库的性能对于项目整体性能中是重中之重。设计良好的Mysql比乱糟糟的Mysql性能高出N个数量级,更别论再引入NOSQL了,比如Redis,MongoDB。

4、使用负载均衡。将请求合理的分发到更多服务器。

5、使用缓存。把花费时间和资源成本高昂的计算结果取出缓存起来,避免重复计算。比如在Mysql前面挡一层Memcached。比如生成一个文件,使用的时候include进来。再比如PHP中的OPCACHE等。

二、压力测试的架构方案:

吞吐率是指单位时间内处理的请求数,单位reqs/s。最大吞吐率是指单位时间内能够处理的最大请求出。模拟足够多的人数和并发请求来测试最大吞吐率的方法叫做压力测试。比如Apache自带的ab(Apache Bench)。ab的参数很多,常用的有请求数(-n),并发用户数(-c),超时时间(-t),长连接(-k),附件一个Cookie(-c name=value)

$ab -c 10 -n 1000 http://localhost/

三、长连接的架构方案: 每次请求都需要TCP的三次握手,握手完比表示连接正式联通,之后再发送数据。那么,把N个请求,就需要3N次握手,传递N次数据,得到N次响应,总共5N。如果把N个请求合成一个请求,就是3次握手,1次传递数据,1次返回响应,共5次。但是,有时候我们需要上一次响应的返回结果来发送新一轮的请求,在这个时候,合并请求并不好实现,这就需要长连接。使用起来很简单,在头中包含如下:

Connection: Keep-Alive

客户端和服务器端都可以设置长连接的最大时间,当两者不统一时以小的一方为准。开启长连接后进行压力测试:

发现提升不止三五倍。本机是提升了8倍的性能。

四、提高Mysql的响应速度的架构方案: Handlerocker是日本的一位架构师开发。Mysql的一种插件。Handlerocker实现了绕过Mysql的SQL解析层。在Mysql5.1以上版本可以使用,详情可以查看Mysql手册。这里就不在阐述。

五、Mysql主从复制的架构方案: 在分布式部署中,1台主库,N台从库。主库只写,从库只查。主库从库数据需要实现统一,这就是主从复制。

优点是: 1、从库备份时,主库可以继续处理更新。

2、优化响应时间。 3、增加健壮性。主库挂了可以切换到从库作为备份。 主从复制的实现过程有三步,1个在主库,2个在从库:

1、主库服务器将用户对数据库更新的操作以二进制格式保存到Binary Log日志文件。然后Binlog Dump线程将Binary Log日志文件传输给从库服务器。

2、从库服务器通过一个I/O线程将主库服务器的Binary Log日志文件中的更新操作复制到一个叫做Relay Log中的中继日志文件中。

3、从库服务器通过另一个SQL线程Relay Log中继日志文件中的操作依次在本地执行,从而实现主从数据库之间数据的同步。 本篇只是简单的列出方案,详细的配置和实现步骤将在另一篇中写到。

六、代理的架构方案: 读取内存的速度是读取硬盘的100000-1000000倍。把访问过的页面缓存在内存中,下次直接从内存中读取,可以有效加速。 1、传统代理。客户端发送请求给代理服务器,代理服务器向WEB服务器取到数据并返回给浏览器。代理服务器就是一个有大的存储空间的Cache。 2、反向代理。和传统代理原理类似,只是使用对象不同。传统代理的使用对象是客户端,反向代理的使用对象是服务器。用户通过反向代理访问Web服务器,Web服务器是隐藏起来的。不过用户不关心这些,权把代理服务器当作真实的Web服务器。反向代理有Vamish。

七、异步计算的架构方案: 比较耗时的比如将用户上传的文件分发到多台机器,比如裁剪图片,视频转码等。可以使用异步方案。让用户无须等待计算结束而是先行返回结果。代表产品有和Memcache同一家的Gearman。关于Gearman的使用可以查看PHP手册。

更多精彩内容其他人还在看

空手套白狼:说说招投标网站的一些内幕 掌握资源的网站远比内容原创更重要

我非常欢迎这类文章的投稿,并会做传播,作者是一位建筑公司的经理,会通过互联网与大量招标类网站有接触,并通过自己的经历告诉了我们这些网站的内幕,通过本文可以了解到:掌握资源的网站远比内容原创更重要
收藏 0 赞 0 分享

百度站长平台:站点整改反馈功能即将上线

百度站长平台今日发布公告表示即将推出站点整改反馈功能,即若站长网站内容存在质量或是作弊问题,百度站长平台会将相关问题告知站长。若能在规定时间内修正,网站可有一次避免被惩罚的机会
收藏 0 赞 0 分享

建站经验:网站建设公司发展必备的22条商规

22条商规,是一本被神话了的商业著作,其实它翻来覆都在讲一个道理:成为你行业的标杆,然后一切你说了算。记得有位朋友跟我说,22商规其实只有最后一条定律是最重要的,其他的都是空谈。不过,本文希望能站在建站公司的角度重新解读,不当之处也多情谅解。
收藏 0 赞 0 分享

虚拟主机安装Dropbox备份网站的教程

虽然目前从国内访问Dropbox有小小困难,但是从国外访问还是正常的,对于拥有国外Linux虚拟主机的用户,可能会遇到这样的需求,就是如何将国外虚拟主机上的网站备份到Dropbox上,下面我以Dreamhost为例介绍一下备份的方法
收藏 0 赞 0 分享

站长再谈博客,理性、务实、交流是本质

如今大家都迷恋着资讯站、小说站、电商站的经营,已经很少有人再去关心所谓的博客了。还记得09年左右,独立博客迎来自身发展的黄金时期,涌现了牟长青、一格电、卢松松、月光博客等一系列知名博客,而这其中卢松松博客也已经实现了突破发展,向着平台继续前进
收藏 0 赞 0 分享

关于网站备案的44个问题和经验总结

这篇文章主要介绍了关于网站备案的44个问题和经验总结,这些问题是在备案过程中经常遇到的,需要的朋友可以参考下
收藏 0 赞 0 分享

企业建站注意事项:黑心建站公司的陷阱-域名所有者

这篇文章主要介绍了企业建站注意事项:黑心建站公司的陷阱-域名所有者,建站时购买的域名持有者一定要是息的资料,否则等着被坑吧,需要的朋友可以参考下
收藏 0 赞 0 分享

你赚到钱了吗?站长们之所以赚不到钱是因为缺乏这些思路

我们有没有找到问题的根源,我想这样的问题根源不在于个人的能力,而在于自己的思维和策略。那么,发现了问题根源,我们用什么样的方法去解决,这才是最重要的,也是大家最想知道的事情。今天,我就根据自己的一些想法,给大家分享一下解决办法
收藏 0 赞 0 分享

从“郭美美赌球被抓”这事件来谈谈百度搜索的用户体验

最近郭美美又火了一把,而且这把火并不好过,让她欠债2.6亿元,并且被带到了自己最不愿去的地方-警察局“做客”。今天本文就和大家一起从从“郭美美赌球被抓”这事件来谈谈百度搜索的用户体验
收藏 0 赞 0 分享

站长必看:竞价只靠钱来砸实在是太傻了!

虽然站长圈对于百度的这个商业行为十分厌恶,但是从自身利益上讲,我们还要遵守百度的游戏规则。不过,要说到效果,竞价的确有一定的话语权,有些专门竞价的站长的确是从中受益不少,只不过钱砸的太狠了
收藏 0 赞 0 分享
查看更多