- 主题:【优化求助】网站Apache进程数过高,主DB负载高
网站用户在月初会有大量的数据上传,
工程反映,在上传数据高峰期:
1、网站的三台Web服务器apache的http进程增多,最高到达300(前端用Ngix做负载均衡)
2、DB1(主服务器)CPU占用到达300%,而其他DB,CPU在100%以下。
目前我推测,一个用户在一次数据上传的过程过程中,由于DB瓶颈,写一份数据耗时较长;
N个用户(可能超过1K)同时上传数据,导致DB负载过高,业务需求上,由于DB数据插入后需要Web实时显示用户数据,由于DB这时响应较慢,导致Apache进程数持续升高,DB负载也恶性循环;
请问版上的各位大拿,针对这样的数据模型,有没有较好(低成本)的优化思路呢?
--
修改:ssmn FROM 119.253.60.*
FROM 119.253.60.*
nginx替apache?
也不是没想过,现在是大数据写入,怀疑DB那儿也有问题。
hadoop+hive也考虑过,但这个玩意儿实时性跟不上,上传的数据还要很快的
显示给用户。
【 在 zxdong262 的大作中提到: 】
: ngix
--
FROM 119.253.60.*
机制没有失效,用户并发量在月初较大,ngix代理后面的三个web都开始上气不接下气了。
累的。
【 在 kawolu 的大作中提到: 】
: 我理解是单个用户成为热点,导致负载均衡机制失效。我理解得对吗?
:
--
FROM 119.253.60.*
专业,捡几个我知道的回答。
读访问并发量高峰期1小时内2W。
日写入总量在300M左右。
DB配置:双CPU 8核 2.3GHZ 32G内存
1主3从,1个主写,3台读。
我有一个简单的想法,在应用和MYSQL之间,加一层redis做数据的暂时存放处,定时向MYSQL
同步,用户要展示的新鲜数据就从redis取,redis只存一天的数据,
过期后定时删除,这样的思路可行否?
这样读取,都有缓存了。
【 在 yourgf 的大作中提到: 】
: 你的写入\读取压力有多大?
: 写入最大并发量多少?读访问并发量多少?
: 日总写入量多少?用户读访问峰谷比多少?
: ...................
--
FROM 119.253.60.*
多谢~
见笑了,还就是2W request/hour。
但就是这个玩意儿,弄的响应有些捉襟见肘。
我也想简单点,从DB,从PHP(SQL)处优化,
但给PHP加的那点儿数据缓存(Memcache),命中率实在太低。
所以想到搞个redis,考虑是不是能在业务高峰期承担点儿DB负载呢?
【 在 yourgf 的大作中提到: 】
: 有几个问题
: 2W request/hour,平均下来应该是秒并发5~6次请求,这不是什么很难满足的事情
: 持续1小时的2W request/second,这个确实需要下大力量优化
: ...................
--
FROM 119.253.60.*
钻牛角尖了。
是这个事儿,我分批分量的先从底层搞定。
受教了。
【 在 yourgf 的大作中提到: 】
: 先看你一次访问有几次sql查询,每次查询的时间都是多少,把每次查询的时间都优化到一百毫秒再说其他
:
--
FROM 119.253.60.*