php高性能优化

2、压测工具的使用

yum -y install httpd-tools

ab -V

2.1、检测接口最大qps

ab -n100【访问次数】 -c 10【并发数】http://【接口】

运行结果:Request per second:101.15[#/sec](mean) 表示结果的并发数qps为101

3、限流

3.1、nginx限流配置

①按连接数限速,即并发数(ngx_http_limit_conn_module)

②按请求速率限速,按照ip限制单位时间内的请求数(ngx_http_limit_req_module)

限流配置:

①//创建规则

limit_req_zone $binary_remote_addr zone = mylimit:10m rate=1r/s;

②limit_req zone=mylimit burst=1 nodelay;//应用规则

burst:应对突发情况,当ip访问超出以上情况,会把请求缓存起来

nodelay:burst设置的非常大

nginx限流配置应用:

#nginx限流配置,限制每秒只能访问1次
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

#nginx限流配置,对某个ip限制访问速度,跟前面的创建规则相对应。limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
        localtion ~ \.php$ {
        limit_req zone = mylimit burst=1 nodelay;
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }

修改完配置后重启nginx:

Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}

查询nginx状态:ps aux | grep nginx

接着用压测工具来检测nginx限流的效果,但检测之前需要清空nginx访问日志:tail -f /home/wwwlogs/nginx_error.log

ab -n1000 -c100 http://106.13.29.83/phpinfo.php 对当前域名以100并发循环访问1000次

3.2、限流算法与cdn原理

令牌桶算法:①令牌桶 ②匀速生产令牌

漏桶算法:①请求放入队列 ②漏桶匀速流出,桶满则溢出,返回503

计数器限流算法:单位时间计数器计数即可,一般在应用程序中写的比较多

3.3、cdn介绍

①cdn,内容分发网络

②缩短访问路径,减少源站压力,提高内容响应速度

③为源站提供安全保护 ,请求先到cdn服务器,没有在回源

秒杀系统使用场景

①商城活动抢购,优惠券,定时抢购   有效写100+ 并发抢1W+

②小米商城手机抢购                            有效写1W+ 并发抢100W+

③12306的抢票                                    有效写1W+ 并发抢100W+

④天猫双十一凌晨促销秒杀                 有效写10W+ 并发抢1000W+

秒杀系统-特点

①抢购人数多于库存,读写并发巨大

②库存少,有效写少

③写需强一致性,商品不能卖超

④读强一致性要求不高

秒杀系统-读非强一致性示例

四、秒杀服务核心实现

我们应该怎么去设计?

一、满足基本需求,做到单服务极致性能

比如:创建订单,查看订单都是订单流程。秒杀的核心是查库存,减库存,排队

二、请求链路流量优化,从客户端到服务端每层优化

客户端流量进来后的衰减

三、稳定性建设

基本需求

一,扣库存

二、查库存、排队进度

三、查订单详情、创建订单、支付订单

三、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值