PHP处理网站大数据大流量与高并发(转)ITeye - 凯时娱乐

PHP处理网站大数据大流量与高并发(转)ITeye

2019-01-11 05:48:51 | 作者: 半梅 | 标签: 网站,流量,效劳 | 浏览: 2154

1:硬件方面

一般的一个p4的效劳器每天最多能支撑大约10万左右的IP,假如拜访量超越10W那么需求专用的效劳器才干处理,假如硬件不给力 软件怎样优化都是杯水车薪的。首要影响效劳器的速度

有:网络-硬盘读写速度-内存大小-cpu处理速度。

2:软件方面

第一个要说的便是数据库,首要要有一个很好的架构,查询尽量不必* 防止相关子查询 给常常查询的添加索引 用排序来代替非次序存取,假如条件答应 ,一般MySQL效劳器最好装置

在Linux操作体系中 。关于apache和nginx在高并发的情况下引荐运用nginx,ginx是Apache效劳器不错的代替品。nginx内存耗费少 官方测验能够支撑5万并发衔接,在实践出产环境中跑

到2~3万并发衔接数。php方面不需求的模块尽量封闭,运用memcached,Memcached 是一个高功能的分布式内存目标缓存体系,不运用数据库直接从内存傍边调数据,这样大大进步了速

度,iiS或Apache启用GZIP紧缩优化网站,紧缩网站内容大大节约网站流量。

第二,制止外部的盗链。

外部网站的图片或许文件盗链往往会带来很多的负载压力,因而应该严厉约束外部对
于自身的图片或许文件盗链,好在现在能够简略地经过refer来操控盗链,Apache自
己就能够经过装备来制止盗链,IIS也有一些第三方的ISAPI能够完成相同的功用。当
然,假造refer也能够经过代码来完成盗链,不过现在故意假造refer盗链的还不多,
能够先不去考虑,或许运用非技术手法来处理,比方在图片上添加水印。

第三,操控大文件的下载。

大文件的下载会占用很大的流量,而且关于非SCSI硬盘来说,很多文件下载会耗费
CPU,使得网站呼应才能下降。因而,尽量不要供给超越2M的大文件下载,假如需求
供给,主张将大文件放在别的一台效劳器上。

第四,运用不同主机分流首要流量

将文件放在不同的主机上,供给不同的镜像供用户下载。比方假如觉得RSS文件占用
流量大,那么运用FeedBurner或许FeedSky等效劳将RSS输出放在其他主机上,这
样他人拜访的流量压力就大多会集在FeedBurner的主机上,RSS就不占用太多资源了

第五,运用不同主机分流首要流量
将文件放在不同的主机上,供给不同的镜像供用户下载。比方假如觉得RSS文件占用流量大,那么运用FeedBurner或许FeedSky等效劳将RSS输出放在其他主机上,这样他人拜访的流量压力就大多会集在FeedBurner的主机上,RSS就不占用太多资源了。

第六,运用流量剖析计算软件。
在网站上装置一个流量剖析计算软件,能够即时知道哪些地方耗费了很多流量,哪些页面需求再进行优化,因而,处理流量问题还需求进行准确的计算剖析才能够。比方:Google Analytics(Google剖析)。

高并发和高负载的约束条件:硬件、布置、操作体系、Web 效劳器、PHP、MySQL、测验

布置:效劳器别离、数据库集群和库表散列、镜像、负载均衡

负载均衡分类: 1)、DNS轮循 2)署理效劳器负载均衡 3)地址转化网关负载均衡 4)NAT负载均衡 5)反向署理负载均衡 6)混合型负载均衡

布置计划1:

适用范围:静态内容为主体的网站和运用体系;对体系安全要求较高的网站和运用体系。

Main Server:主效劳器

承载程序的主体运转压力,处理网站或运用体系中的动态恳求;

将静态页面推送至多个发布效劳器;

将附件文件推送至文件效劳器;

安全要求较高,以静态为主的网站,可将效劳器置于内网屏蔽外网的拜访。

DB Server:数据库效劳器

承载数据库读写压力;

只与主效劳器进行数据量交流,屏蔽外网拜访。

File/Video Server:文件/视频效劳器

承载体系中占用体系资源和带宽资源较大的数据流;

作为大附件的存储和读写库房;

作为视频效劳器将具有视频主动处理才能。

发布效劳器组:

只担任静态页面的发布,承载绝大多数的Web恳求;

经过Nginx进行负载均衡布置。

布置计划2:

适用范围:以动态交互内容为主体的网站或运用体系;负载压力较大,且预算比较足够的网站或运用体系;

Web效劳器组:

Web效劳无主从关系,属平行冗余规划;

经过前端负载均衡设备或Nginx反向署理完成负载均衡;

区分专用文件效劳器/视频效劳器有用别离轻/重总线;

每台Web效劳器可经过DEC可完成衔接一切数据库,一起区分主从。

数据库效劳器组:

相对均衡的承载数据库读写压力;

经过数据库物理文件的映射完成多数据库的数据同步。

同享磁盘/磁盘阵列

将用于数据物理文件的一致读写

用于大型附件的存储库房

经过自身物理磁盘的均衡和冗余,保证全体体系的IO功率和数据安全;

计划特性:

经过前端负载均衡,合理分配Web压力;

经过文件/视频效劳器与惯例Web效劳器的别离,合理分配轻重数据流;

经过数据库效劳器组,合理分配数据库IO压力;

每台Web效劳器一般只衔接一台数据库效劳器,经过DEC的心跳检测,可在极短时间内主动切换至冗余数据库效劳器;

磁盘阵列的引进,大幅进步体系IO功率的一起,极大增强了数据安全性。

Web效劳器:

Web效劳器很大一部分资源占用来自于处理Web恳求,一般情况下这也便是Apache发生的压力,在高并发衔接的情况下,Nginx是Apache效劳器不错的代替品。Nginx (“engine x”) 是俄罗斯人编写的一款高功能的 HTTP 和反向署理效劳器。在国内,已经有新浪、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、 频道运用 Nginx 效劳器。

Nginx的优势:

高并发衔接:官方测验能够支撑5万并发衔接,在实践出产环境中跑到2~3万并发衔接数。

内存耗费少:在3万并发衔接下,敞开的10个Nginx 进程才耗费150M内存(15M*10=150M)。

内置的健康检查功用:假如 Nginx Proxy 后端的某台 Web 效劳器宕机了,不会影响前端拜访。

战略:相关于老牌的Apache,咱们挑选Lighttpd和Nginx这些具有更小的资源占用率和更高的负载才能的web效劳器。

Mysql:

MySQL自身具有了很强的负载才能,MySQL优化是一项很杂乱的作业,由于这终究需求对体系优化的很好了解。咱们都知道数据库作业便是很多的、 短时的查询和读写,除了程序开发时需求留意树立索引、进步查询功率等软件开发技巧之外,从硬件设备的视点影响MySQL履行功率最首要来自于磁盘查找、磁盘IO水平、CPU周期、内存带宽。

依据效劳器上的硬件和软件条件进行MySQl优化。MySQL优化的中心在于体系资源的分配,这不等于无约束的给MySQL分配更多的资源。在MySQL装备文件中咱们介绍几个最值得重视的参数:

改动索引缓冲区长度(key_buffer)

改动表长(read_buffer_size)

设定翻开表的数目的最大值(table_cache)

对缓长查询设定一个时间约束(long_query_time)

假如条件答应 ,一般MySQL效劳器最好装置在Linux操作体系中,而不是装置在FreeBSD中。
战略: MySQL优化需求依据事务体系的数据库读写特性和效劳器硬件装备,拟定不同的优化计划,而且能够依据需求布置MySQL的主从结构。

PHP:

1、加载尽可能少的模块;

2、假如是在windows平台下,尽可能运用IIS或许Nginx来代替咱们平常用的Apache;

3、装置加速器(都是经过缓存php代码预编译的成果和数据库成果来进步php代码的履行速度)
eAccelerator,eAccelerator是一个自在开放源码php加速器,优化和动态内容缓存,进步了功能php脚本的缓存功能,使得PHP脚本在编译的状态下,对效劳器的开支简直彻底消除。

Apc:Alternative PHP Cache(APC)是 PHP 的一个免费揭露的优化代码缓存。它用来供给免费,揭露而且健旺的架构来缓存和优化 PHP 的中间代码。

memcache:memcache是由Danga Interactive开发的,高功能的,分布式的内存目标缓存体系,用于在动态运用中削减数据库负载,进步拜访速度。首要机制是经过在内存里保护一个统 一的巨大的hash表,Memcache能够用来存储各种格局的数据,包含图画、视频、文件以及数据库检索的成果等

Xcache:国人开发的缓存器,

战略: 为PHP装置加速器。

署理效劳器(缓存效劳器):

Squid Cache(简称为Squid)是一个盛行的自在软件(GNU通用公共许可证)的署理效劳器和Web缓存效劳器。Squid有广泛的用处,从作为网页效劳器的前置cache效劳器缓存相关恳求来进步Web效劳器的速度,到为一组人同享网络资源而缓存万维网,域名体系和其他网络查找,到经过过滤流量协助网络安全,到局域网经过署理网。Squid首要规划用于在Unix一类体系运转。

战略:装置Squid 反向署理效劳器,能够大幅度进步效劳器功率。

压力测验:压力测验是一种根本的质量保证行为,它是每个重要软件测验作业的一部分。压力测验的根本思路很简略:不是在惯例条件下运转手动或主动测验,而是在计算机数量较少或体系资源匮乏的条件下运转测验。一般要进行压力测验的资源包含内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测验。
压力测验东西:webbench,ApacheBench等

缝隙测验:在咱们的体系中缝隙首要包含:sql注入缝隙,xss跨站脚本进犯等。安全方面还包含体系软件,如操作体系缝隙,mysql、apache等的缝隙,一般能够经过晋级来处理。

缝隙测验东西:Acunetix Web Vulnerability Scanner

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    怎么中止线程ITeye

    中止,线程,办法
  • 2
  • 3

    [C#]Console类的详细用法ITeye

    控制台,字符串,输出
  • 4

    ehcache基本原理ITeye

    缓存,磁盘,是否
  • 5
  • 6
  • 7

    KMPITeye

    匹配,长串,短串
  • 8

    ruby编码问题小结ITeye

    办法,第章,编程
  • 9
  • 10

    mysql分页问题。ITeye

    分页,大约,数据库