php 并发 100 压测,简单PHP把握站点并发数

一般来说,一个项目中老是会有一些较难处理惩罚的营业,比如营业错杂花样繁多的搜刮,应用搜刮体系如sphinx,lucence等来处理惩罚的话,数据源的若是变更过快(如顶、踩、浏览数之类),则起推荐数据的频率就较难衡量,别的无确搜刮或排序。所以一般景象下的做法是经由过程DB进行搜刮,并且除了尽量将营业分化到法度层面外,还会在DB前加一层cache。然则如许做也有不少已知的弊病:

1、实际上很多营业无法放到通俗的PHP中处理惩罚,如一些较错杂的排序、筛选,经由过程通俗的PHP来实现的话效力还不如MYSQL。

2、cache的射中率也不好包管,希罕是对一些应用关键词进行查询的营业,关键词变更太多。

若是碰到恶意刷的话,DB办事器轻易直接挂掉,是以我们可以在法度层面上加一层限制器,限制并发数,该限制器具备以下特点:

1、高效(空话么,不然直接刷限制器就刷爆了)。如今是应用memcache进行原子操纵计数,可以扩大成应用其他办法。

2、正确到action层。可以零丁限制单个页面。

3、便利。见仁见智吧

4、本钱低廉。包含研发本钱与硬件本钱。

按照压测,本来只能100并发的搜刮功能,限制100后,压测800成果正常。

代码如下:

/

搜刮

/

public function search(){

//增长计数器功能,跨越次数则返回体系繁忙

¥viewlimiter = Library::load(viewlimiter);

//接见限制器的名称,请用controller+action,尽量单个页面对峙独一

¥limitName = search_search;

//最多同时接见数

¥limit = 100;

//若是跨越数量则直接返回

if(!¥viewlimiter->check(¥limitName, ¥limit)) {

ajaxOutput(0, ¥this->lang->line(multi_search_limit));

}

/----错杂变态的营业逻辑-----/

¥xxxModel->search(¥params);

}

//end func

?>

扩大话题:

1、若是该营业被刷,可能导致正常用户无法查看内容。 -- 这个题目要解决只能是从体系层面去操纵,可见这边:http://johnsteven.blog.51cto.com/2523007/818209

2、限制数好能与缓存射中率相连络,必然局限内主动变革限制数,进步限制的精准度。 -- 这个后期可以进行研究,与缓存类相连络

3、按照办事器负载进步履态把握。 -- 涉及到底层及办事器权限,研究本钱较高,有爱好的话可以研究。

注:

本文只申明思路,具体代码因为一些原因临时不开放文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值