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

收藏此页] [打印]
作者:游戏人间 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VMware安装黑QNAP图文详细步骤 目录 第一步:准备工具 2 第二步:新建虚拟机 3 第三步:修改配置文件 4 第一次登陆控制台报错问题! 14 存储池爆红,提示错误。存不了文件 15 第一步:准备工具 1、VMware ESXI6.5及以上 2、配置好的QNAP1G-BOOT.vmdk文件(自己按照教程做的,已配置好需要的文件,只需将老骥伏枥1G版威联通启动盘换成这个,就不需要麻烦配置了,其他步骤一样) 备注:在esxi新建虚拟机就按此教程VM虚拟机软件中的说明就可以,理论上esxi6.5及以上可用,测试为esxi6.7,仅供学习交流,非原创,只是再这个基础上进行了改进。 第二步:新建虚拟机 在vmware菜单栏中,按照以下方法建虚拟机 文件>新建虚拟机>自定义高级>最高版本硬件兼容>稍后安装>客户机操作系统Linux,版本是centos 7>下一步>下一步>虚拟机内存2G够了>网络使用桥接模式>推荐的就行>IDE>使用现有磁盘,选择的是老骥伏枥1G版威联通启动盘>保存现有格式>完成 这一步需要注意的有:网络选择桥接、硬盘选择IDE类型,其他的按照默认即可。 把启动盘接在IDE 0:1 接口的位置(primer slave),数据盘接在IDE 0:0 (primer master)接口的位置。修改硬盘位置的方法如下图所示: 第三步:修改配置文件 2、修改虚拟机网卡。 在虚拟机放置的目录里寻找  你虚拟机名字.vmx文件,以我的虚拟机为例,虚拟机名字为QNAP,就找到QNAP.vmx文件,然后使用文本编辑器打开 ,修改图中红框一行,e1000改为e1000e。 3.修改启动引导。 右击虚拟机,依次选择,电源→打开电源时进入固件。这样开机时就会进入bios,按照图中所示修改启动顺序 4、 启动虚拟机。 点击第一个 启动内核中,需要等几分钟 出现这个页面的时候就已经成功了。 这个时候用ip:8080在浏览器访问就可以了,ip就是在上面我叫你拿个记事本记住的! 之后就是漫长的安装过程。完成安装后可能会出现以下几个问题! 第一次登陆控制台报错问题! 这个在你兴高采烈进去的时候发现登陆不进去,按F12发现Console一直在报错!这个时候打开目录下面的gistfile1.txt 这个时候将里面的内容复制起来,复制到刚才控制台(就是在浏览器a按下F12后,在报错的最下面黏贴,回车就行了) 然后就可以登陆,记住第一次登陆会特别长! 时间很长后还是不行就关闭虚拟机,重新启动。再次进入,如果还不行,多试几次这样。一定可以的 存储池爆红,提示错误。存不了文件 在登录后,后台一直提示存储池错误 下面图片就是解决方法 一直下一步就行了! 好了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值