`
wuce7758
  • 浏览: 182827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • YTT1121: 有网络拓扑发现的源代码么?能不能发我一份学习一下,现在我正要做 ...
    java拓扑图
  • YTT1121: 大神,有网络拓扑发现的源代码么?或者您会编写么?我需要做科研改 ...
    java拓扑图
  • YTT1121: 大神,有网络拓扑发现的源代码么?或者您会编写么?我需要做科研改 ...
    java拓扑图
  • poettang: 求代码分享学习,谢谢!膜拜大神!258026921@qq.co ...
    java拓扑图
  • oiqio: 87836238@qq.com,感谢楼主,来一份~
    java拓扑图

如何才能提高网站的并发连接数和性能 优化访问

 
阅读更多

有人会问,我们老是说把用户对业务的访问往前推,到底怎么推啊?推到哪呢?下面,我们就为大家一一道来。

第一层:首先在用户浏览器端,使用Apache的mod_deflate压缩传输,再比如:expires功能、deflate和expires功能利用的好,就会大大提升用户体验效果及减少网站带宽,减少后端服务器的压力。当然,方法还有很多,这里不一一细谈了。

提示:有关压缩传输及expires功能nginx/lighttpd等软件同样也有。

第二层:页面元素,如图片/js/css等或静态数据html,这个层面是网页缓存层,比如CDN(效果比公司自己部署squid/nginx要好,他们更专业,价格低廉,比如快网/CC等(价格80元/M/月甚至更低)而且覆盖的城市节点更多),自己架设squid/nginx cache来做小型CDN是次选(超大规模的公司可能会考虑风险问题实行自建加购买服务结合),除非是为前端的CDN提供数据源服务,以减轻后端我们的服务器数据及存储压力,而不是直接提供cache服务给最终用户。taobao的CDN曾经因为一部分图片的次寸大而导致CDN压力大的情况,甚至对图片尺寸大的来改小,以达到降低流量及带宽的作用。

提示:我们也可以自己架设一层cache层,对我们购买的CDN提供数据源服务,可用的软件有varnish/nginx/squid 等cache,以减轻第三层静态数据层的压力。在这层的前端我们也可以架设DNS服务器,来达到跨机房业务拓展及智能解析的目的。

    第三层:静态服务器层一般为图片服务器,视频服务器,静态HTML服务器。这一层是前面缓存层和后面动态服务器层的连接纽带,大公司发布新闻等内容直接由发布人员分发到各cache节点(sina,163等都是如此),这和一般公司的业务可能不一样。所以,没法直接的参考模仿,比如人人的SNS。

我们可以使用Q队列方式实现异步的分发访问,同时把动态发布数据(数据库中的数据)静态化存储。即放到本层访问,或通过其他办法发布到各cache节点,而不是直接让所有用户去访问数据库,不知道大家发现了没有,qq.com门户的新闻评论多的有几十万条,如果所有用户一看新闻就加载所有评论,那数据库不挂才怪。他们的评论需要审核(美其名约,实际是异步的方式,而且,评论可能都是静态化的或类似的静态化或内存cache的方式),这点可能就是需要51cto.com这样站点学习的,你们打开51CTO的一篇博文,就会发现下面的评论一直都显示出来了,也可能是分页的。不过,应该都是直接读库的,一旦访问量大,数据库压力大是必然。这里不是说51cto网站不好,所有的网站都是从类似的程序架构开始发展的。CU也可能是如此。

提示:我们可以在静态数据层的前端自己架设一层cache层,对我们购买的CDN提供数据源服务,可用的软件有varnish/nginx/squid 等cache。在这层的前端我们也可以架设DNS服务器,来达到跨机房业务拓展及智能解析的目的。

第四层:动态服务器层:php,java等,只有透过了前面3层后的访问请求才会到这个层,才可能会访问数据库及存储设备。经过前三层的访问过滤能到这层访问请求一般来说已非常少了,一般都是新发布的内容和新发布内容第一次浏览如;博文(包括微博等),BBS帖子。

特别提示:此层可以在程序上多做文章,比如向下访问cache层,memcache,memcachedb,tc,mysql,oracle,在程序级别实现分布式访问,分布式读写分离,而程序级别分布式访问的每个db cache节点,又可以是一组业务或者一组业务拆分开来的多台服务器的负载均衡。这样的架构会为后面的数据库和存储层大大的减少压力,那么这里呢,相当于指挥部的外层了。

第五层:数据库cache层,比如:memcache,memcachedb,tc等等。

根据不同的业务需求,选择适合具体业务的数据库。对于memcache、memcachedb ttserver及相关nosql数据库,可以在第四层通过程序来实现对本层实现分布式访问,每个分布式访问的节点都可能是一组负载均衡(数十台机器)。

第六层:数据库层,一般的不是超大站点都会用mysql主从结构,如:163,sina,kaixin都是如此,程序层做分布式数据库读写分离,一主(或双主)多从的方式,访问大了,可以做级连的主从及环状的多主多从,然后,实现多组负载均衡,供前端的分布式程序调用,如果访问量在大,就需要拆业务了,比如:我再给某企业做兼职时,发现类似的51cto的一个站点,把www服务,blog服务,bbs服务都放一个服务器上,然后做主从。这种情况,当业务访问量大了,可以简单的把www,blog,bbs服务分别各用一组服务器拆分开,这种方式运维都会的没啥难度。当然访问量在大了,可以继续针对某一个服务拆分如:www库拆分,每个库做一组负载均衡,还可以对库里的表拆分。需要高可用可以通过drbd等工具做成高可用方式。对于写大的,可以做主主或多主的MYSQL REP方式,对于ORACLE来说,来几组oracle DG(1master多salve方式)就够了,11G的DG可以象mysql rep一样,支持读写分离了。当然可选的方案还有,mysql cluster 和oracle 的RAC,玩mysql cluster和oracle RAC要需要更好更多的硬件及部署后的大量维护成本,因此,要综合考虑,到这里访问量还很大,那就恭喜了,起码是几千万以上甚至上亿的PV了。

象百度等巨型公司除了会采用常规的mysql及oracle数据库库外,会在性能要求更高的领域,大量的使用nosql数据库,然后前端在加DNS,负载均衡,分布式的读写分离,最后依然是拆业务,拆库,。。。逐步细化,然后每个点又可以是一组或多组机器。

特别提示:数据库层的硬件好坏也会决定访问量的多少,尤其是要考虑磁盘IO的问题,大公司往往在性价比上做文章,比如核心业务采用硬件netapp/emc及san光纤架构,对于资源数据存储,如图片视频,会采用sas或固态ssd盘,如果数据超大,可以采取热点分取分存的方法:如:最常访问的10-20%使用ssd存储,中间的20-30%采用sas盘,最后的40-50%可以采用廉价的sata。

第七层:千万级PV的站如果设计的合理一些,1,2个NFS SERVER就足够了。我所维护(兼职)或经历过的上千万PV的用NFS及普通服务器做存储的还有大把,多一些磁盘,如SAS 15K*6的,或者用dell6850,搞几组 NFS存储,中小网站足够了。当然可以做成drbd+heartbeat+nfs+a/a的方式。

如果能达到本文设计要求的,中等规模网站,后端的数据库及存储压力会非常小了。 象门户网站级别,如sina等, 会采用硬件netapp/emc等等硬件存储设备或是san光纤同道,甚至在性价比上做文章,比如核心业务采用硬件netapp/emc及san光纤架构,对于资源数据存储,如图片视频,会采用sas或固态ssd盘,如果数据超到,可以采取热点分取分存的方法:如:最常访问的10-20%使用ssd存储,中间的20-30%采用sas盘,最后的40-50%可以采用廉价的sata。

象百度等巨型公司会采用hadoop等分布式的存储架构,前端在加上多层CACHE及多及的负载均衡,同样会根据业务进行拆分,比如爬虫层存储,索引层存储,服务层存储。。。可以更细更细。。。为了应付压力,什么手段都用上了。

    特殊业务,如人人,开心网,包括门户网站的评论,微博,大多都是异步的写入方式,即无论读写,并发访问数据库都是非常少量的。

    以上1-7层,如果都搭好了,这样漏网到第四层动态服务器层的访问,就不多了。一般的中等站点,绝对不会对数据库造成太大的压力。程序层的分布式访问是从千万及PV向亿级PV的发展,当然特殊的业务 还需要特殊架构,来合理利用数据库和存储。

分享到:
评论

相关推荐

    SP3+TCPIP并发连接数修改器.rar

    通过调整TCP/IP并发连接数,理论上可以提高网络响应速度和数据传输效率。但是,使用此类工具需用户具有一定的技术知识,并充分考虑其可能带来的风险和影响。在进行任何修改前,建议用户咨询专业人士的意见,以免对...

    请问有什么软件能测试网站的最大并发连接数吗.zip我告诉你4款压测软件

    在测试网站的最大并发连接数时,你需要关注以下几点: - **并发用户数**: 模拟多少个用户同时访问网站。 - **响应时间**: 在高并发下,服务器处理请求的速度。 - **吞吐量**: 单位时间内服务器能处理的请求数量。 - ...

    优化nginx大并发——轻松应对上万并发访问

    本文将详细探讨如何通过系统层面和Nginx配置层面的优化,使Nginx能够轻松应对上万甚至十万级别的并发访问。 首先,从系统层面进行优化: 1. **调整同时打开文件数量**:使用`ulimit -n`命令设置系统最大文件描述符...

    tcp 连接数设置,以及查看电脑的连接数

    了解和调整TCP连接数对于优化服务器性能、应对高并发访问和防止DDoS攻击至关重要。然而,增加连接数并不总是解决方案,因为过多的并发连接可能会消耗大量的内存和CPU资源,导致性能下降。因此,合理设定和优化TCP...

    SQL Server 2008设置最大连接数

    在SQL Server 2008中,设置最大连接数是一项重要的系统配置,它关乎到数据库服务器的性能和稳定性。此设置决定了同一时间可以有多少个客户端连接到SQL Server实例。了解并正确配置这个参数对于数据库管理员来说至关...

    IIS网站高性能高并发优化解决方案

    这些命令分别用于提高TCP并发连接数、防止“Bad Request - Request Too Long”错误以及增加最大请求字节数。 **步骤五:重启HTTP服务及IIS** 运行命令`net stop http`停止HTTP服务,然后执行`net start http`启动...

    IIS并发数测试,IIS并发数测试压力测试

    4. **连接限制**:IIS允许的最大并发连接数可配置,过多的并发连接可能导致拒绝服务(DoS)。测试时应确保服务器能够处理预期的并发连接量。 5. **请求队列长度**:当并发请求超出服务器处理能力时,请求会被放入...

    sp3可用TCPIP并发连接数修改

    标题中的“sp3可用TCPIP并发连接数修改”指的是Windows XP Service Pack 3(SP3)操作系统中的TCP/IP协议配置优化。TCP/IP是Internet上最基础的通信协议,它定义了计算机如何通过网络进行通信。在Windows XP SP3中,...

    ArcSDE连接数设置及其性能说明

    ArcSDE连接数的设置与优化对于确保系统的稳定性和性能至关重要。通过对操作系统、ArcSDE以及数据库层面的深入理解,并采取相应的优化措施,可以有效提升系统的并发处理能力,满足多用户同时访问的需求。希望本文能为...

    IIS性能优化

    IIS 配置优化是 IIS 性能优化的核心部分,它包括了多个方面的设置和调整,例如最大并发连接数、程序池队列长度、最大工作进程数、禁止重叠、禁止多余的 Web 服务扩展、删除不必要的 IIS 扩展名映射等。这些设置和...

    大型网站性能优化实战从前端网络CDN到后端大促的全链路性能优化 带书签完整版

    综上所述,从用户体验出发,通过对前端、网络、CDN、后端以及特殊场景下的性能优化,可以显著提高网站的整体性能和用户体验。这不仅涉及到技术层面的优化,还需要综合考虑业务需求和用户体验,采用合适的方法和技术...

    Httpbfljcsgj_并发连接测试工具(内网版).rar

    在IT行业中,网络性能是衡量一个系统稳定性和效率的重要指标,特别是对于承载大量用户访问的网站来说,其并发连接能力至关重要。"Httpbfljcsgj_并发连接测试工具(内网版).rar" 提供的正是这样一种专门用于测试网站...

    TongWeb5.0 性能优化配置.pdf

    上传必要的数据库连接驱动包到TongWeb的lib目录下或指定路径,并根据集群情况调整连接池的相关性能参数,例如最大连接数、最小连接数、调整连接数和空闲超时等,以此来优化连接池的性能表现。 在JVM参数优化部分,...

    weblogic10.3性能优化参数配置

    合理的连接池连接数设置可以提高服务器的数据库访问速度,减少服务器的资源占用。在 Weblogic 10.3 中,可以通过修改 `weblogic\user_projects\domains\<domain_name>\config\config.xml` 文件来设置连接池连接数。 ...

    自定义高并发jdbc连接池

    5. **连接池大小管理**:根据系统的负载情况动态调整连接池的大小,例如设置最大连接数和最小连接数,以平衡资源利用和系统响应时间。 6. **性能优化**:可以通过连接池的配置参数来优化性能,如设置超时时间、自动...

    内网并发测试工具

    内网并发测试工具是针对网络服务接口进行性能和稳定性测试的重要软件,特别是在内网环境中的应用,它能够帮助开发者和测试工程师模拟大量并发用户请求,以此来检验系统在高负载情况下的表现。这类工具通常包括多种...

    实用负载均衡技术:网站性能优化攻略

    通过实施上述的负载均衡技术和性能优化策略,可以确保网站在面临高访问量时仍能保持良好性能,为用户提供快速、可靠的访问体验。同时,通过持续监控和性能测试,及时发现并解决性能问题,能够保证网站的长期稳定运行...

    sqlserver并发连接测试

    7. **并发用户限制**:SQL Server的最大并发连接数受许可证类型和实例配置的影响。例如,Express版有一个连接限制,而更高级别的版本则没有明确的连接限制,但仍然需要考虑服务器硬件和内存的承受能力。 8. **故障...

    Linux下Apache并发连接数和带宽控制.pdf

    这两个模块分别用于控制并发连接数和带宽使用,以确保服务器的稳定运行。 1. **mod_limitipconn**: mod_limitipconn模块允许管理员限制每个IP地址同时连接到服务器特定目录的并发连接数量。这对于防止恶意用户或...

Global site tag (gtag.js) - Google Analytics