文档章节

一个每日1000W的PV论坛怎么优化性能? 从分页、数据库、流量等多方面入手

mac_zhao
 mac_zhao
发布于 2015/06/23 13:37
字数 653
阅读 389
收藏 1
这是一个php程序员面试过程中经常遇到的问题,就目前工作环境中的情况来看,这种千万级别的访问量的情况还没遇到,在百度中找到这样一篇文章,可能对这个问题有帮助。
 
用一台1U服务器让phpwind承受1000万PV(实际营运)
臭现下,偶的网站已经经过1000万PV的考验了(百度统计结果)
 
1000万pv的实际论坛是很恐怖的,因为这样的论坛日发帖一般大于10万,会员数据超过200万,帖子总数超千万。
 
1、 解决流量问题,1000w pv,我做过检测,每秒流量高达300M以上,我采用了多网卡来解决。用了4个网卡口子,每口100M,就可以承受400M流量了。1U服务器一般只有2 个网口,可以增加USB网卡,目前有几种芯片的USB网卡在linux下是自动识别的。1000M的端口机房是很贵的,10万以上每年。所以采用多网卡负 荷分担是经济实用的。
 
2、解决mysql瓶颈问题,首先要学会mysql的配置优化my.cnf的优化,然后要对程序进行优化,目前的免 费bbs程序,在负载上都是很垃圾的(pw和dz在程序上很少考虑大负载问题,VBB没有仔细关注过,可能vbb要好很多),需要实际中调试慢查询,优化 sql语句,注意用子查询进行分页,不要简单的使用limite start,num ,某些频繁查询而又不是经常变化的sql尽量使用缓存技术,对访问频繁的页面,例如首页,必须对sql以及php的运算都进行优化,做到像访问html一 样访问bbs首页。
 
3、使用memcache对mysql数据进行缓存,虽然有数据延迟,但可以很大的降低mysql的负荷。
 
4、使用nginx + eac 做web ,eac共享内存设置为60M即可,不能太大,nginx开10个线程。
 
5、使用lighttp的spawn-cgi + php-cgi 开启至少256个线程。不要使用php-fpm,这玩意儿在千万pv的大压力时,会出问题,频繁假死
 
6、解决搜索问题,选择使用中文全文索引
 
硬件配置:2个4核Xeon5405 + 12G RAM + 4x300G SAS raid0

© 著作权归作者所有

共有 人打赏支持
mac_zhao
粉丝 42
博文 249
码字总数 304671
作品 0
普陀
程序员
私信 提问
记录JAVA单线程处理千万级数据表的过程

记录JAVA单线程处理千万级数据表的过程 要求:原表有4000w+数据,需要对其中message字段进行数据处理,并将处理的结果写入result字段中 优化:分表,sql的优化 过程: 最开始是啥都不懂,打算...

qq_34594123的博客
2017/12/22
0
0
大数据分页方案

软件开发中,常用要用到分页、计算总数,数据量超过千万、上亿的时候,往往 的需要超过 1s 的执行时间,甚至 3-5s,对于一个追求性能的前沿团队来说,这个不能忍啊! 为什么会慢? mysql 会对...

fzxu_05
2016/08/16
32
0
资深站长干货:小说网站从建立到盈利全解析

从2007年做站,刚好十年了。时间过得真快。因为自己是兼职做站,所以一直断断续续,也没有什么大的成绩。做过地方论坛,电影站,股票站,文章站,小说站等,能尝试的都尝试了。学了很多东西,...

卢松松博客
2017/11/15
0
0
zanePerfor 一款完整,高性能,高可用的前端性能监控系统,不要错过

HI!,你好,我是zane,zanePerfor是一款最近我开发的一个前端性能监控平台,现在支持web浏览器端和微信小程序段。 我定义为一款完整,高性能,高可用的前端性能监控系统,这是未来会达到的目...

wangweianger
11/08
0
0
大型站点高并发架构技术

大型站点高并发架构技术 高并发: 高并发主要是由于网站PV访问量大,单台服务器涌承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个访问会被发送到哪台...

浮躁的码农
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
今天
3
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部