`
wangdei
  • 浏览: 366729 次
社区版块
存档分类
最新评论

浏览量比较大的网站一些使用方法

阅读更多

【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 等,并且每一级都可以使用多台机器来均衡负载,伸缩性很好。

分享到:
评论

相关推荐

    改善网站、提高浏览量的方法

    只需要几分钟,你就可以按照这 25 条对你的网站做出修改,提高浏览量(我修改后,浏览量提高了不少): <br>实用性/方便浏览 <br>如果人们不能方便的使用你的网站,他们就不会对你的网站产生兴趣。...

    thinkPHP+ajax实现统计页面pv浏览量的方法

    主要介绍了thinkPHP+ajax实现统计页面pv浏览量的方法,涉及thinkPHP模板调用及数据库读写相关操作技巧,需要的朋友可以参考下

    新媒体日浏览量轻松破十万的方法技巧

    一个让你新媒体写作快速提升的技巧,让你今日头条,趣头条轻松破十万日浏览,这份文档你值得拥有

    黑谍淘宝宝贝浏览量提升专家V3.72+注册机

    注册方法 : 先打开宝贝流量软件复制机器码. 然后打开注册机粘贴机器码,生成注册码,最后打开软件启动.exe ...注:经本人亲测可用,通过"按宝贝地址下载",然后设置你要的浏览量,"开始执行"即可.马上提升你的宝贝浏览量.

    wordpress主题中无法显示浏览量问题的解决方法

    你在用wordpress主题的时候肯定标配了WP-postviews这款插件,那么你的wordpress版本也一定更新到了最新版本,而当你启用了WP-postviews插件之后,发现首页的标题下方居然没有浏览统计数

    WordPress搜索结果按浏览量排序的实现方法

    方法很简单!  第一步,先安装 Lester Chan 的一个插件 WP-postviews。  关于这款插件,相信大家都不会陌生的了,它的这主要作用就是用来统计日志被浏览的次数的,这方面在这里就不再多说。好了,去到 WordPress...

    快手引流创业笔记玩法浏览量过百万

    互联网上做任何事业,...今天我们重点分享快手引流创业笔记玩法浏览量过百万的引流方法。 快手有1亿用户,并且70%是属于互联网上的优质用户。出了名的正规、安全、便捷,被人们信赖。 现在这个方式分享出来给大家用

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

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

    3DE平台集成VCollab对产品仿真结果轻量化处理方法.docx

    随着CAE仿真规模的扩大,企业需要通过产品仿真管理平台(3DE)对海量的仿真数据进行统一归档和管理,但是由于仿真输出文件极大(从几个GB到100多个GB),因此,迫切需要将仿真结果文件进行轻量化处理。另外通过产品仿真...

    mpv:电影页面浏览量 - 一个按维基百科页面浏览量每月对 HBO 电影进行排名的小应用程序

    对于每个电影名称,使用端点 查找维基百科页面浏览量/<title name>(例如:电影《烛台背后》的 2014 年 2 月统计数据 ) 输出按上个月总页面浏览量总和排序的标题名称列表 奖金: 优化以获得最佳性能。 想...

    论文研究-一种高效的用户浏览行为采集方法.pdf

    针对在多用户、多Web站点的网络访问环境下存在的数据采集...实验结果表明,该方法可以有效地采集浏览行为数据并清除大量的附带请求,抽取出能够反映用户显式点击的页面基请求,为用户浏览行为建模提供准确的数据源。

    vue 移动端记录页面浏览位置的方法

    记录一下本次项目我使用的方法,有更简单便捷的方法,欢迎交流 描述: 假设有a b c 页面 从a页面 到 b页面 ,b页面到c页面 b到c页面的时候需要记录当前b的浏览位置,c返回到b的时候滚动到上次浏览的位置 b在返回a...

    服务器错误[网站https服务器内部500错误的解决方法][修改版].docx

    通讯量超出网站的配置能力的解决办法通讯量超出网站的配置能力的解决办法,一般经常碰到被cc攻击的人出现这个,开启硬防防护之后为什么还会出现这个呢?建议直接租用本司的高防服务器。浏览里报错如下:此时无法处理...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    在WinXP和Win2000中浏览网上邻居时系统默认会延迟30秒,Windows将使用这段时间去搜寻远程计算机是否有指定的计划任务(甚至有可能到Internet中搜寻)。如果搜寻时网络时没有反应便会陷入无限制的等待,那么10多分钟...

    提交数据库查询统计效率

    大型数据库系统中往往要用到查询统计,但是对于数据量大的系统,用户在进行复杂的查询统计时往往感到速度很慢,不能满足应用要求,这就要求我们在设计数据库系统时进行合理设置,提高查询统计的速度。本文结合笔者的...

    apache服务器的各种配置方法

    该资源是我最近给某大公司开发集团官网的过程中总结的apache服务器配置方法,涉及知识如下,希望能帮助到大家: 1、配置网站默认发布路径。 2、让apache支持shtml文件,实现include文件解析。 3、添加默认文档index....

Global site tag (gtag.js) - Google Analytics