apache - ab压测php+redis,为什么很快就挂掉了?

 海伦国际官2502862377 发布于 2022-11-28 14:01

E:\phpStudy\Apache\bin>ab-c1000-n10000http://localhost/mysql.phpThisisApacheBench,Version2.3<$Revision:1604373$>Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/Benchmarkinglocalhost(bepatient)Completed1000requestsCompleted2000requestsCompleted3000requestsCompleted4000requestsCompleted5000requestsCompleted6000requestsCompleted7000requestsCompleted8000requestsCompleted9000requestsCompleted10000requestsFinished10000requestsServerSoftware:Apache/2.4.10ServerHostname:localhostServerPort:80DocumentPath:/mysql.phpDocumentLength:242bytesConcurrencyLevel:1000Timetakenfortests:39.351secondsCompleterequests:10000Failedrequests:9(Connect:9,Receive:0,Length:0,Exceptions:0)Totaltransferred:4440000bytesHTMLtransferred:2420000bytesRequestspersecond:254.12[#/sec](mean)Timeperrequest:3935.125[ms](mean)Timeperrequest:3.935[ms](mean,acrossallconcurrentrequests)Transferrate:110.19[Kbytes/sec]received==========================以上的MYSQL,以下是REDIS===============================E:\phpStudy\Apache\bin>ab-c1000-n10000http://localhost/redis.phpThisisApacheBench,Version2.3<$Revision:1604373$>Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/Benchmarkinglocalhost(bepatient)Completed1000requestsTestabortedafter10failuresapr_socket_connect():由于目标计算机积极拒绝,无法连接。(730061)Totalof1714requestscompleted

MYSQL可以跑,REDIS很快就挂掉了,下面是代码

$host='mysql:host=127.0.0.1;dbname=test';$user='root';$pass='root';$pdo=newPDO($host,$user,$pass);var_dump($pdo->query('select*fromtablewhereid=1')->fetch());die;==========================以上的MYSQL,以下是REDIS===============================$redis=newredis();$redis->connect('127.0.0.1',6379);$redis->set('test','testvalue');var_dump($redis->get('test'));$redis->delete('test');
2 个回答
  • Redis官方并不支持Windows,Windows版本Redis貌似是微软自己移植的东西,不稳定也很正常.所以说,测试还是放到Linux上来.就PHP而言,同一机器,Windows+Ubuntu双系统,同一PHP版本,Ubuntu上PHP就要比Windows上快.

    还有,Windows上Apache的winntMPM是一个多线程MPM,并发大生成的线程数也多,过多的PHP连接Redis可能也是Redis挂掉的原因.所以你可以考虑减少并固定Apache线程数(比如10个线程),ab并发时降低到100,PHP开启到Redis的持久连接.

    2022-11-28 14:18 回答
  • redis连接这么多肯定挂啊。。。要做集群的

    2022-11-28 14:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有