一般来说,一个项目中老是会有一些较难处理惩罚的营业,比如营业错杂花样繁多的搜刮,应用搜刮体系如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、按照办事器负载进步履态把握。 -- 涉及到底层及办事器权限,研究本钱较高,有爱好的话可以研究。

注:

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

php 并发 100 压测,简单PHP把握站点并发数相关推荐

  1. 基准测试工具(压测工具):wrk---高并发、损耗低,安装简单 (一)

    基准测试工具:Wrk初识   最近和同事聊起常用的一些压测工具,谈到了Apache ab.阿里云的PTS.Jmeter.Locust以及wrk各自的一些优缺点和适用的场景类型. 这篇博客,简单介绍下H ...

  2. JMeter压力测试:单接口压测和多场景混合并发

    单接口并发压测 首先介绍下单接口压测,使用Jmeter的线程组进行设置: 1.线程数:并发用户数 2.Ramp-Up Period(in seconds):运行的时间 3.循环次数:线程运行的次数 一 ...

  3. Jmeter多线程并发和压测结果分析

    一.多线程并发 1. 线程组简介: (1). 线程数: 配置虚拟用户数量 (2). Ramp-Up时间:设置的虚拟用户数需要多长时间全部启动,如果线程数为10,准备时长为2,那么需要2秒钟启动10个线 ...

  4. springboot 压测 50并发 线程等待_线程池+CountDownLatch——高并发就是这么简单

    今天和大家分享的是:在开发服务端API时候,如何合理的运用线程池+CountDownLatch来保证API的高并发访问. 首先,作为Java开发的同学来说,java.util.concurrent并发 ...

  5. 【腾讯优测干货分享】从压测工具谈并发、压力、吞吐量

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/580d914e07b7fc1c26a0cf7c 前言 随着部门业务的拓展,我们有 ...

  6. jmeter 高并发测试报告_Windows下JMeter分布式压测环境搭建

    JMeter是Apache组织开发的开源项目,设计之初用于性能测试,同时它在实现对各种接口的调用方面做得比较成熟,因此,常被用于接口功能测试和性能测试.它能够很好的支持各种常见接口,如HTTP(S). ...

  7. 并发模式与 RPS 模式之争,性能压测领域的星球大战

    Photo by Daniel Cheung on Unsplash 本文是 <如何做好性能压测>系列专题分享的第四期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景 ...

  8. 早知道早幸福——从压测工具谈并发、压力、吞吐量

    目前腾讯WeTest服务器性能测试已经正式对外开放, 点击 链接:http://wetest.qq.com/gaps/ 立即体验! 导语   这篇文章其实憋了很久,最初仅仅是对吞吐量计算的个人兴趣研究 ...

  9. jmeter压测_简单七步,快速入门 JMeter原生压测

    导入本地的 JMeter 原生脚本,即可快速发起一次压测. 前提条件 JMeter 脚本需要在本地调试成功. 请同时上传依赖的 CSV 或者 JAR 文件.CSV 文件的 File Name 只需要文 ...

最新文章

  1. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化
  2. 「吐血」我把大学4年、研究生3年的全部学习资源都分享在这里了
  3. Keras.layers各种层介绍,网络层、卷积层、池化层 等
  4. Linux中,文件创建的时间是怎么保存的?
  5. 蓝桥杯真题训练 2019.4题
  6. wxpython使用简介_wxpython简介
  7. 作为一个新晋测试经理,在软件测试计划之前你必须知道的10件事
  8. PHP学习总结(3)——PHP入门篇之PHP的echo语句
  9. Oracle管理文件OMF (oracle managed files)
  10. vant组件做表格_落户上海!分享心得,再做个积分计算器
  11. Winfrom 线程实现 http、https 文件下载 显示下载进度详情
  12. EXCEL滚动条控件制作动态图表
  13. ah、esp、gre协议_AH,ESP的协议号和它们支持的功能有何差异?两种模式下的差异是什么?...
  14. jzoj5629 【NOI2018模拟4.4】Map (业界毒瘤仙人掌缩环,线段树合并)
  15. html5网页制作电脑版,页未央HTML5制作神器PC版
  16. Android常用第三方支付
  17. 图像mnf正变换_基于MNF 变换的多元变化检测变化信息的集中
  18. 题目:在单处理器多到分时系统中,有三道作业依次提交, 其提交时刻及运行时间分别为
  19. 【HTTP】10分钟带你快速了解HTTP中常见的状态码(内附大量实例)
  20. 虚拟机下装msdos操作系统,再安装borlandc

热门文章

  1. modbus tcp主站和从站_【智】S7200PLC与台达变频器MODBUS轮询实时读取详解
  2. linux系统安装ntp,CentOS下NTP安装配置
  3. 线程锁定CPU linux,linux 线程与CPU绑定
  4. Jmeter跨线程组传递参数
  5. 【Jmeter篇】如何利用Jmeter配置元件计数器、随机变量制造批量数据和变量参数化?
  6. ansible常用命令
  7. 4-数组、指针与字符串1.4-动态内存分配
  8. 进程、线程相关知识点整理
  9. 嵌入式软件工程师笔试题
  10. Vue入门 ---- vue-loader 、vue-cli