文档章节

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

mac_zhao
 mac_zhao
发布于 2015/06/23 13:37
字数 653
阅读 373
收藏 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
粉丝 41
博文 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
见识下postgreSQL的强悍,对比下mysql的低能

最近帮朋友升级了论坛,把数据库换成了postgreSQL,运行有一周。通过前后对比才发现pgsql性能有多强悍,或者说mysql有多低能。 论坛地址:www.ifxtx.com 网络带宽:100M独享 论坛流量:日均I...

mark35
2012/07/23
29.8K
106
HBase性能优化方法总结(四):数据计算

本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。 下面是本文总结的第四部分内容:数据计算相关的优...

蓝狐乐队
2014/06/04
107
0

没有更多内容

加载失败,请刷新页面

加载更多

win10下端口被占用解决办法

win10下端口被占用解决办法 昨天还好好的tomcat,今天启动时候发现tomcat无法启动,看报错信息显示8080端口被占用。 解决办法如下:按win+R输入cmd打开控制台,输入 netstat -ano|findstr 8...

DemonsI
3分钟前
0
0
yum apt chrome 常用软件的SOCKS 代理设置

yum 设置: 在/etc/yum.conf 增加一行,内容为: 在apt-get (apt) 上使用socks代理 chrome socks代理:

idoz
4分钟前
0
0
因 php 默认的 url encode 编码标准引发的一个问题

先看常用的校验请求合法性的一个方式 function createToken($params) { $secretKey = 'secretKey'; ksort($params); $query = http_build_query($params); $token = md5......

anoty
8分钟前
1
0
微信小程序页面栈管理

页面路由 在小程序中所有页面的路由全部由框架进行管理。 页面栈 框架以栈的形式维护了当前的所有页面。当发生路由切换的时候,页面栈的表现如下: 路由方式 页面栈表现 初始化 新页面入栈 ...

昙花一现
43分钟前
2
0
es6 let使用总结

中午偷个闲做个es6let的使用总结 作用域块 在作用域块中声明的变量不受外部的影响,见例子 {let a= 10;{let a= 20;console.log('子作用域', a);// 20}console.log('父作用域', a);// 10...

莫西摩西
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部