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

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

阅读更多

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

分享到:
评论

相关推荐

    网站浏览量统计asp代码

    在这个场景中,我们将探讨如何使用ASP与Access数据库结合实现网站浏览量的统计。 首先,我们需要创建一个Access数据库来存储浏览量数据。Access数据库是轻量级的关系型数据库管理系统,适用于小型到中型的应用。在...

    jsp网页浏览量计数器

    jsp网页浏览量计数器是使用Java Servlet和JSP技术实现的网页浏览量计数器。该计数器可以纪录某个网页的浏览量,并且可以实时更新浏览次数。 计数器原理 该计数器的原理是使用文件来存储浏览次数。每次用户浏览网页...

    php动态显示浏览量

    当网站流量较大时,频繁的浏览量更新可能会对数据库造成压力。这时可以考虑引入队列服务,如RabbitMQ或Beanstalkd,将更新任务异步处理,以减少数据库的实时操作。 综上所述,使用PHP实现动态显示浏览量涉及数据库...

    C#写的刷贴子浏览量工具

    标题中的"C#写的刷贴子浏览量工具"指的是一个使用C#编程语言开发的应用程序,其主要功能是模拟用户访问,增加帖子或网页的浏览量。C#是一种面向对象的、类型安全的、现代的编程语言,常用于构建Windows桌面应用、Web...

    简单的PHP网页浏览量统计

    在本文中,我们将深入探讨如何使用PHP实现一个简单的网页浏览量统计系统。PHP是一种广泛用于Web开发的服务器端脚本语言,它可以帮助我们处理动态内容并进行数据存储。在这个简单的统计系统中,我们将关注以下几个...

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

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

    可以根据统计浏览量以访问量,非常实用的功能

    在IT行业中,访问量和浏览量是衡量网站或网页受欢迎程度的重要指标,它们反映了用户对特定数字...无论你是网站管理员、SEO专家还是市场营销人员,理解并掌握访问量和浏览量的统计方法都将对你的工作产生积极的影响。

    Ruby-ImpressionistRails插件跟踪页面展示和浏览量

    Ruby-ImpressionistRails插件是一个为Ruby on Rails框架设计的工具,主要用于追踪和记录页面的展示次数和浏览量。这个插件可以帮助开发者获取关于网站用户行为的数据,从而进行更有效的数据分析,提升用户体验,优化...

    javascript实现的网站访问量统计代码

    总的来说,虽然JavaScript实现的网站访问量统计代码可能不适用于大规模的数据分析,但对于个人开发者或小型网站来说,它可以提供基本的访问量信息,帮助理解网站的流量状况。同时,这也是一种学习JavaScript实际应用...

    JAVA 统计网站的访问量PV,UV

    这里我们主要探讨如何使用Java,Spring框架以及MySQL数据库来实现对网站的PV(页面浏览量)和UV(独立访客数)的统计。首先,我们需要了解这两个概念: 1. PV(页面浏览量):每次页面加载或刷新都会被计算为一次PV...

    黑谍宝贝浏览量提升专家V3.75

    在使用"黑谍宝贝浏览量提升专家V3.75"时,掌柜们应该熟悉电商平台的规则,遵循正规的推广方法,同时监控软件效果,适时调整运营策略,以实现店铺的可持续发展。在压缩包内的文件"黑谍宝贝浏览量提升专家V3.75"可能是...

    统计网站总访问量 实例

    访问量,也被称为页面浏览量或Page Views,是指用户打开或刷新一个网页的次数。在统计时,每个独立的页面加载被视为一次访问。然而,如果用户在同一页面上频繁刷新,这种行为可能会导致访问量被过度计算,从而影响...

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

    在`Article`控制器中,我们需要定义一个名为`set_hits`的方法,这个方法接收GET请求,然后更新数据库中对应文章的浏览量。 ```php // ArticleController.php public function set_hits(){ if(empty($_GET['id...

    网站访问量统计源代码

    综上所述,这个网站访问量统计源代码实现了一种基本的访问量对比方法,通过数据库查询获取数据,使用循环和比例计算进行分析,并通过图表呈现结果。在实际项目中,可能需要进一步优化,例如处理闰年、增加异常处理、...

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

    在WordPress中,实现搜索结果按浏览量排序的关键在于使用插件统计浏览次数并调整查询参数,具体实现方法包括以下几个知识点: 1. 使用统计浏览次数的插件:为了实现按浏览量排序,首先需要一个能够统计每篇日志浏览...

    网站日志分析工具使用方法AWStats

    * 能够对网站的访问量、浏览量、跳出率等指标进行统计 * 能够对网站的搜索引擎优化进行分析和优化 服务器日志设置方法 为了使用AWStats对网站访问数据进行分析,需要先设置服务器日志文件。以下是服务器日志设置...

    Springboot网站用户的访问量统计

    在Spring Boot框架中,实现网站用户的访问量统计是一项常见的需求,它可以帮助我们了解网站的活跃度、用户行为以及优化服务性能。本项目标题为“Springboot网站用户的访问量统计”,这意味着我们将探讨如何在Spring ...

    行业数据-20年6月份14日-7月份19日李子柒相关产品浏览量.rar

    标题和描述中提到的“行业数据-20年6月份14日-7月份19日李子柒相关产品浏览量”是指一个关于知名网络红人李子柒品牌产品的在线浏览量统计报告。这个报告可能包含了在2020年6月14日至7月19日期间,与李子柒品牌相关的...

    行业数据-20年6月份14日-7月份19日李子柒螺蛳粉浏览量.rar

    标题和描述中提到的“行业数据-20年6月份14日-7月份19日李子柒螺蛳粉浏览量.rar”指的是一个压缩文件,包含的是关于2020年6月14日至7月19日期间,网络红人李子柒品牌下的螺蛳粉产品在线浏览量的数据。这个数据集可能...

Global site tag (gtag.js) - Google Analytics