注册
登录
提问时间:2016/9/28 13:24:55
刚刚参加工作。 以前没有接触过php,本来想从事的是android。因为之前学过j2ee,到公司之后,老大让我做php。
我们公司的项目,是基于yii1.1开发的,日ip 在7w+, 日pv 20多万。
是不是一旦访问量到这个级别了,单纯的安装个lamp已经带不动了?要考虑到什么负载均衡,可扩展性方面(听过,不了解)的,单单从代码能学到这些东西吗?
请php大牛们给些建议,详细说说。感激不尽
1楼(站大爷用户)

今天正好研究了这个问题:

从PV和日IP看,你们的网站已经算得上是一个大型网站了。大型网站都会面临三大问题:

大的访问量(大并发:并发:是指在某个时间点,有多少个用户同时访问某个地址).

大的流量,(大的带宽的问题).

海量的数据存储.
网站从小到大的数据的存储,比如数据表的容量达到GT级别,带来查询速度变慢,要从海量 的数据表里面快速的查找到数据,是我们优化的重点.
如何解决大访问量带来的问题?

方案:采用分层架构服务器,使用负载均衡来架构
关于负载均衡:
软件:lvs(linux virtual server)linux虚拟服务,nginx(web服务器,负载均衡).

硬件:f5-bigip :价格昂贵,立竿见影,效果非常好,一般是大的网游公司或大的门户网站使用.

负载均衡器的策略:
轮询:负载均衡把请求轮流转发给web服务器.

最少连接:负载均衡把请求转发给最空闲的那台服务器.

ip哈希:同一地址的客户端,负载均衡把请求始终给同一台服务器.

具体来说:

1.在web 服务器端,配置压缩,减少数据传输的数据量.
打开apache的httpd.conf配置文件,开启压缩模块;
在虚拟主机里面,配置压缩的对象:


#配置压缩的级别,压缩级别为6,可选1-9,推荐为6
DeflateCompressionLevel 6
#压缩文本文件
AddOutputFilterByType DEFLATE text/plain
#压缩html文件
AddOutputFilterByType DEFLATE text/html
#压缩xml文件
AddOutputFilterByType DEFLATE text/xml
2楼(未知网友)

框架表示毫无压力。
3楼(站大爷用户)

不要单机架构
不要混跑
做好扩容和灾备方案
网站基本上不出框都是lamp架构,只不过有些组件可以被更适合业务的组件替换,比如apache换成了nginx。mysql换成了nosql。复杂的业务需要更多组件支持来提高性能,扩展性等,比如缓存,队列等。
看好是读业务多还是写业务多,优化点不同
是否有高并发,是否有强数据一致性要求
负载均衡方案有很多,dns 2层 4-7层 数据库层都可以
横着拆 竖着拆 一刀切 都行
4楼(未知网友)

这个量不是问题,实际上数据库优化的好,再多几倍都没问题。
如果是想提升性能,就要对各个接口和页面的访问次数和耗时进行统计,然后对耗时高的接口进行优化。
如果是想升级硬件做读些分离,负载均衡之类的,研究一下阿里云的产品就行了,他们提供整套的方案和现成的服务器。
5楼(未知网友)

这个数量不大,根据项目类型单机很有可能顶得住。吃透项目的唯一办法就是通读代码。
6楼(站大爷用户)

把项目存到Flash卡里,然后吃掉。
7楼(未知网友)

这么点量,代码写成渣也毫无压力
8楼(未知网友)

泻药…
详见…
一个初级的PHP程序员如何提升自己的技能,以及构建自己的技能树? - 编程
9楼(未知网友)

这个量级基本不用怎么优化。
如果是sns类型或页游还勉强可以优化下,
如果是新闻资讯类的网站,带宽够,简单的静态分离,加个缓存,毫无无压力。
10楼(未知网友)

这么点量不会有什么压力。

当然是没有复杂的业务罗技的情况下咯。
具体问题还是要具体分析的。

不过一下几个方面可以通吃大部分场景:

内存缓存,这个yii或者其他很多框架已经提供抽象层,问题不大。

读写分离,这个其实不算什么好的解决方案,但是是比较简单的方案,很多框架在database驱动层也提供了这个东西
NoSql的使用,这个是比较根源的方案,现在关系型和非关系型数据库结合用的案例也是不少的,不过会碰到不少问题。毕竟这个东西吧,很多场景下真的不够成熟。
对于Apache或者Nginx有最基本的优化能力、以及不同的脚本处理方式(fast-cgi,php-fpm,Nginx反向代理)有基础了解。
数据库索引是不是做的好。
静态资源分离,CDN,或者专门的静态文件服务器。
静态化技术。
PHP自己的几个缓存扩展,apc啥的。
立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品