`

浏览量比较大的网站应该从哪几个方面入手?

阅读更多
收藏此页] [打印]
作者:游戏人间  2007-11-13 内容导航:浏览量比较大的网站应该从哪... 第1页: 浏览量比较大的网站应该从哪几个方面...

【IT168 技术文档】

当然,提问前先将个人的一些理解分享。大家有的也请不吝共享,偶急切的需要这方面的经验....

下面所提到的主要是针对一般的网站,不包括下载或聊天室等特殊站点...

一、减少数据库的压力

  缓存查询结果/建内存表

二、 减少Apache的压力——减少HTTP的请求次数

  背景图片全部做成一张然后用CSS控制位置/不使用AJAX来进行即时验证(不考虑客户体验什么的,通过拖长客户时间来减轻服务器压力)

三、减轻I/O压力

  页面局部缓存

作者: 蟋蟀    时间: 2007-6-15 05:29 PM

咱也说点,只是理论,不知道对不对.
流量大的网站咱没做过.
一横向
1\首先要考虑的就是硬件,适当的投入硬件,要比你搞那么多软件优化要实惠的多.
2\在就是从cpu 内存 硬盘 了.频繁操作的数据能存到内存中就存到内存中,能存到分布共享中就存储在分布共享内存中
其次考虑在考虑硬盘上.

二纵向
1\从web的http的响应 应答考虑
web要有服务器,所以如何优化服务器,如何通过配置服务器加速操作,能缓存的缓存,这方面的东西不少。
2、要是动态脚本,考虑使用的数据库 如何优化数据库、如何建立合理的表等操作 这方面细节同样不少
3、用php脚本,尽量少的require 文件,毕竟每次php是一次性编译,而且每次到require都要返回 这个脚本方面的就要看程序员的水平了

还有很多
--------------------------------------------------------------------------------
作者: yanglei1979    时间: 2007-6-15 06:02 PM

我也觉得这个问题比较值得讨论

1,写程序的时候,算法尽量做到优化,在满足功能的条件下尽量减少代码的执行

2,安排数据结构的时候,能用整型的,就不用字符型的

3,注意优化SQL查询语句

4,一些已经定下来的分类名什么的,就不要每次从数据库内调用了

5,服务器中PHP,MYSQL,APACHE模块安装和配置的时候,模块和参数尽量做到最优化的配置,(当然这个应该比较困难了,要有经验才行.)


这是我觉得的几点,下面的继续吧.

--------------------------------------------------------------------------------
作者: fcicq    时间: 2007-6-19 09:30 PM

好久没出来了,难得碰上一篇可以回的帖子

一、减少数据库的压力
  缓存查询结果/建内存表

有条件就把数据库尽量分开,减小数据库规模
杜绝超过0.5s的 queries - 非常重要!
开大内存索引

二、 减少Apache的压力——减少HTTP的请求次数
  背景图片全部做成一张然后用CSS控制位置/不使用AJAX来进行即时验证(不考虑客户体验什么的,通过拖长客户时间来减轻服务器压力)
背景图片?这个没必要.
静态内容不要用apache!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

三、减轻I/O压力
  页面局部缓存
--------------------------------------------------------------------------------
作者: 游戏人间    时间: 2007-6-20 04:35 AM


QUOTE:
原帖由 fcicq 于 2007-6-19 21:30 发表
二、 减少Apache的压力——减少HTTP的请求次数
  背景图片全部做成一张然后用CSS控制位置/不使用AJAX来进行即时验证(不考虑客户体验什么的,通过拖长客户时间来减轻服务器压力)
背景图片?这个没必要.//你啥知道没这个必要,我上次也是听他们几个人的意见说这样比较好,而且使用典范是腾讯,其它网站我还没注意过
静态内容不要用apache!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//难道说图片的下载不用经过APACHE

背景图片?这个没必要.

// 我上次也是听他们几个人的意见说这样比较好,而且使用典范是腾讯,其它网站我还没注意过

// 这么说吧,同样是背景图片你用的是一百张(夸张点的说),我用的是一张.那么一个是100个HTTP请求,一个是1个请求.

静态内容不要用apache!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

// 难道说图片的下载不用经过APACHE

// 这个不可能吧,如果你服务器上不装APACHE其它人还能浏览图片不成.上面我所提到的背景做成一张就是这样,如果是一百张那么客户端就向APACHE发出一百个请求...
--------------------------------------------------------------------------------
作者: leobok    时间: 2007-6-20 07:16 AM

先学好PHP再说。。。
--------------------------------------------------------------------------------
作者: ¥    时间: 2007-6-20 08:57 AM




QUOTE:
原帖由 游戏人间 于 2007-6-20 04:35 AM 发表


背景图片?这个没必要.

// 我上次也是听他们几个人的意见说这样比较好,而且使用典范是腾讯,其它网站我还没注意过

// 这么说吧,同样是背景图片你用的是一百张(夸张点的说),我用的是一张.那么一个是100个 ...
问题是一次请求1M的图和1M分开十次来load,效率谁优谁劣还有待考究吧?

不用apache,估计是用lighttpd,听说这东西做静态的web server是很不错的...

作者: php5    时间: 2007-6-20 06:55 PM

考虑硬件成本的话可以笼统地从以下着手

一、页面尽量静态化
二、配置服务器动态的走apache,静态的走Lighttpd
三、用最好的OS如FreeBSD
四、重点优化mysql性能从编译、配置上入手
五、最基本的控制好程序性能及SQL查询
六、做缓存、做代理反向代理
七、页面上的优化了,节省流量上的考虑

[ 本帖最后由 php5 于 2007-6-20 07:05 PM 编辑 ]
--------------------------------------------------------------------------------
作者: yanglei1979    时间: 2007-6-20 07:37 PM




QUOTE:
原帖由 fcicq 于 2007-6-19 09:30 PM 发表
好久没出来了,难得碰上一篇可以回的帖子

一、减少数据库的压力
  缓存查询结果/建内存表


缓存查询结果,这项技术倒是很少听说,能举例说明下吗?

是不是把 mysql_query()函数换成另外一个函数呀,还是把 mysql_db_query()函数换成另外一个函数呀
--------------------------------------------------------------------------------
作者: php5    时间: 2007-6-20 07:44 PM




QUOTE:
原帖由 yanglei1979 于 2007-6-20 07:37 PM 发表


缓存查询结果,这项技术倒是很少听说,能举例说明下吗?

是不是把 mysql_query()函数换成另外一个函数呀,还是把 mysql_db_query()函数换成另外一个函数呀
Adodb有这功能,不过有些鸡肋

通常重复并频繁利用的数据在查询完生成页面后    要么缓存整个页面,要么生成静态页
--------------------------------------------------------------------------------
作者: Macaulay    时间: 2007-6-20 08:44 PM

关注.....
--------------------------------------------------------------------------------
作者: 游戏人间    时间: 2007-6-20 08:57 PM

补充一句.如果一次数据统计:如某个表有多少条数据,这样小量数据量且不需要什么sql语句而是直接读取就可完成的数据不要放数据库直接放文本里能减少读取数据库的次数.
--------------------------------------------------------------------------------
作者: php5    时间: 2007-6-21 08:13 AM

一般访问量较大的情况下,访问数据库的性能可能不比文本差
--------------------------------------------------------------------------------
作者: 奶瓶    时间: 2007-6-21 10:52 AM

静态文件用apache的代价很大, 其实lighttpd和NGINX这类的也并不会小太多,有一些支持“文件至网卡”模式的特殊静态服务器可能划算一些。php的调用文件个数可以做到比较 精确的控制,tmpfs一类的方法可以尝试,不要过分迷信memcached,本地cache适当用用回保不错
--------------------------------------------------------------------------------
作者: fengchen9127    时间: 2007-6-21 11:13 AM

优化数据库访问。
  前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
  缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。我自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。
  如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用Select * from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。
     禁止外部的盗链。
 外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗 链,Apache自己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链, 不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在图片上增加水印。
    控制大文件的下载。
 大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台服务器上。
   使用不同主机分流主要流量
   将文件放在不同的主机上,提供不同的镜像供用户下载。比如如果觉得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服务将 RSS输出放在其他主机上,这样别人访问的流量压力就大多集中在FeedBurner的主机上,RSS就不占用太多资源了。
   使用流量分析统计软件。
 在网站上安装一个流量分析统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以。
--------------------------------------------------------------------------------
作者: 游戏人间    时间: 2007-6-21 10:22 PM

继续关注中,广征意见.虽然有也在猛说,其实我并不知道我说的对不对
--------------------------------------------------------------------------------
作者: deng0685    时间: 2007-6-21 10:31 PM

又学到了!!!
--------------------------------------------------------------------------------
作者: 游戏人间    时间: 2007-6-22 05:09 PM

估計這貼是沒人回了,最後留個記念.
--------------------------------------------------------------------------------
作者: php5    时间: 2007-6-22 07:28 PM

lighttpd 没有真正用过,也支持PHP,听谣言在静态访问方面要快上2-3倍

期待一种真正静态专用与优化的WEB服务器出现
--------------------------------------------------------------------------------
作者: 奶瓶    时间: 2007-6-23 02:51 PM

kHTTPD一类的东西,还是挺有趣的
--------------------------------------------------------------------------------
作者: isno    时间: 2007-6-23 03:24 PM

路过顶帖.
--------------------------------------------------------------------------------
作者: red7    时间: 2007-6-23 10:52 PM

能静态的都生成静态
--------------------------------------------------------------------------------
作者: 傻哥    时间: 2007-6-24 08:35 AM

学习一下~!
--------------------------------------------------------------------------------
作者: thesea    时间: 2007-6-24 08:02 PM

我想知道为什么少用require呢?执行require会降低效率?为什么呢?那用include或require_once 呢?谢谢啊!
--------------------------------------------------------------------------------
作者: fly512    时间: 2007-6-24 08:55 PM     标题: 转载一篇文章

【转载】Lighttpd+Squid+Apache搭建高效率Web服务器

架构原理
Apache通常是开源界的首选Web服务器,因为它的强大和可靠,已经具有了品牌效应,可以适用于绝大部分的应用场合。但是它的强大有时候却显得笨重, 配置文件得让人望而生畏,高并发情况下效率不太高。而轻量级的Web服务器Lighttpd却是后起之秀,其静态文件的响应能力远高于Apache,据说 是Apache的2-3倍。Lighttpd的高性能和易用性,足以打动我们,在它能够胜任的领域,尽量用它。Lighttpd对PHP的支持也很好,还 可以通过Fastcgi方式支持其他的语言,比如Python。

毕竟Lighttpd是轻量级的服务器,功能上不能跟Apache比,某些应用无法胜任。比如Lighttpd还不支持缓存,而现在的绝大部分站点都是用 程序生成动态内容,没有缓存的话即使程序的效率再高也很难满足大访问量的需求,而且让程序不停的去做同一件事情也实在没有意义。首先,Web程序是需要做 缓存处理的,即把反复使用的数据做缓存。即使这样也还不够,单单是启动Web处理程序的代价就不少,缓存最后生成的静态页面是必不可少的。而做这个是 Squid的强项,它本是做代理的,支持高效的缓存,可以用来给站点做反向代理加速。把Squid放在Apache或者Lighttpd的前端来缓存 Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。

即使是大部分内容动态生成的网站,仍免不了会有一些静态元素,比如图片、JS脚本、CSS等等,将Squid放在Apache或者Lighttp前端后, 反而会使性能下降,毕竟处理HTTP请求是Web服务器的强项。而且已经存在于文件系统中的静态内容再在Squid中缓存一下,浪费内存和硬盘空间。因此 可以考虑将Lighttpd再放在Squid的前面,构成 Lighttpd+Squid+Apache的一条处理链,Lighttpd在最前面,专门用来处理静态内容的请求,把动态内容请求通过proxy模块转 发给Squid,如果Squid中有该请求的内容且没有过期,则直接返回给Lighttpd。新请求或者过期的页面请求交由Apache中Web程序来处 理。经过Lighttpd和Squid的两级过滤,Apache需要处理的请求将大大减少,减少了Web应用程序的压力。同时这样的构架,便于把不同的处 理分散到多台计算机上进行,由Lighttpd在前面统一把关。

在这种架构下,每一级都是可以进行单独优化的,比如Lighttpd可以采用异步IO方式,Squid可以启用内存来缓存,Apache可以启用MPM 等,并且每一级都可以使用多台机器来均衡负载,伸缩性很好。
1
分享到:
评论

相关推荐

    网站架构及高性能并发服务器设计

     浏览量比较大的网站应该从哪几个方面入手? 17  用负载均衡技术建设高负载站点 20  大型网站的架构设计问题 25   开源平台的高并发集群思考 26  大型、高负载网站架构和应用初探 时间:30-45分钟 27  ...

    高性能高并发服务器架构大全

     浏览量比较大的网站应该从哪几个方面入手? 17  用负载均衡技术建设高负载站点 20  大型网站的架构设计问题 25  开源平台的高并发集群思考 26  大型、高负载网站架构和应用初探 时间:30-45分钟 27 ...

    C#网站流量统计代码源码

    在C#中实现网站流量统计,我们可以从以下几个关键点入手: 1. **日志记录**:首先,我们需要在服务器端捕获用户的请求信息。这可以通过解析IIS日志或者自定义HTTP模块来实现。IIS日志包含了每次请求的详细信息,而...

    基于Java的网上商城系统的设计与实现论文附件样本.doc

    该系统的需求分析可以从以下几个方面入手: * 系统的功能需求:该系统需要具备哪些功能?例如,用户注册、登录、浏览商品、购买商品、订单管理等。 * 系统的性能需求:该系统需要达到哪些性能指标?例如,系统的...

    分工任务.docx

    具体来说,商业思维可以从以下几个方面入手: 1. 问题分析:准确地识别并定义问题,明确需要改进的方面,为后续的优化提供方向。 2. 市场调研:对市场进行全面的了解,了解用户的需求和期望,同时也要了解竞争对手...

    大型网站系统构架-高并发高负载

    以一个具体的大型网站为例,假设该网站每天需要处理数十万甚至上百万级别的PV(页面浏览量)。为了满足如此庞大的流量需求,我们可以采取以下策略: 1. **使用多台高性能服务器**:根据业务规模选择适当的服务器...

    ChatGPT智能客户管理系统在电商中的应用与优化

    基于ChatGPT的智能搜索引擎优化,可以从以下几个方面入手: 1. 关键词分析:利用ChatGPT的技术,对关键词进行分析和挖掘,了解用户搜索习惯和需求,制定合适的关键词优化策略。例如,可以利用ChatGPT的关键词分析...

    :网站运营数据分析心得体会.docx

    网站站内分析是关键,具体可以从以下几个方面入手: 1) 标题优化:确保标题包含核心关键词,同时层次分明,利于搜索引擎抓取。 2) 关键词策略:合理分布关键词,结合百度指数选择合适的竞争度,利用长尾关键词增加...

    移动互联网时代智能手机对大学生睡眠质量的影响分析.pdf

    为了改善这一问题,可以从以下几个方面入手: 1. 大学生要树立正确的时间意识,合理安排使用智能手机的时间,尤其是在睡前要减少使用,以保证足够的睡眠时间。 2. 高校应加强关于智能手机使用的宣传教育,让学生...

    高性能高并发服务器架构

    对于浏览量较大的网站,可以从以下几个方面入手优化: 1. **图片压缩**:减少图片大小,提高页面加载速度。 2. **HTTP/2和TLS优化**:启用HTTP/2协议,实现多路复用,减少连接开销;优化TLS设置,提高加密性能。 3. ...

    ASP实例开发源码—ALEXA排名查询阿里西西版.zip

    如果你正在学习ASP或想深入了解这个实例,可以从以下几个方面入手: 1. **阅读源码**:仔细研究代码结构和逻辑,理解每个部分的功能。 2. **调试和运行**:在本地搭建ASP运行环境,如IIS服务器,部署源码并测试功能...

    StartBBS轻量开源社区 V1.0.3.zip

    整体架构从缓存技术、数据库设计、代码优化等多个角度入手进行优化,支持百万级数据,开启缓存和gzip后,打开的网站速度如同静态页一样流畅。 安装包大小仅几百K, 比一般的blog还要小巧轻便, 从起点开始,给“臃肿...

    基于Python+Django+Sqlite校园二手交易跳蚤市场网站设计源码案例设计.zip

    在实际学习和研究这个案例时,你可以从以下几个方面入手: 1. 分析项目结构:了解Django项目的目录结构,如`apps`、`templates`、`static`、`migrations`等目录的作用。 2. 阅读源码:理解每个Python文件的功能,...

    PHP实例开发源码—网址导航系统3号(php生成静态).zip

    对于初学者,这是一个很好的学习项目,可以从以下几个方面入手: 1. 了解PHP基础语法和常用函数。 2. 学习如何连接和操作MySQL数据库。 3. 理解MVC架构,分析源码中的模型、视图和控制器。 4. 探究PHP生成静态页面的...

    饼状图Pie与Histogram横向柱状图

    开发者在学习这个项目时,可以从以下几个方面入手: 1. 理解饼状图和横向柱状图的绘制原理。 2. 学习MPAndroidChart库的使用,包括设置数据、添加动画、自定义样式等。 3. 掌握RecycleView和ListView的基本用法,...

    2019字节跳动春招社区产品经理笔试(1).pdf

    分析一个产品,可以从以下几个角度入手: 1. 用户需求:分析产品的目标用户群体,以及这些用户使用该产品的核心需求是什么。 2. 产品功能:罗列产品的核心功能和附加功能,思考这些功能是如何满足用户需求的。 3. ...

    百试百灵解决快照不更新的办法

    为了改善用户体验,可以从以下几个方面入手: - **页面加载速度**:优化网站代码和资源,减少不必要的插件使用,以提高页面加载速度。 - **导航结构**:设计直观易用的导航菜单,让用户轻松找到所需信息。 - **移动...

    jsTree大集合

    学习jsTree时,可以从以下几个方面入手: 1. **官方文档**:首先,详细阅读jsTree的官方文档,了解其基本用法、配置选项和API。 2. **示例代码**:压缩包中的示例代码可以帮助你快速上手,通过实际操作理解jsTree...

Global site tag (gtag.js) - Google Analytics