4核8G服务器压测问题咨询

大家好,关于压测问题:

基本信息

  • php:7.3(lumen 7.0+)
  • 系统:centos 8.2
  • nginx version: nginx/1.14.1
  • 配置:4核8G的服务器
  • 工具:Wetest
  • 人数:500人

php-fpm

  • pm:dynamic
  • pm.max_children = 500
  • pm.start_servers = 500
  • pm.min_spare_servers = 100
  • pm.max_spare_servers = 500

问题

  • 场景测试:多接口配置,实际执行80人左右就不增加了;cpu 100%;内存 2.5G;压测结果如下。

  • 单接口访问:

    • 平均 TPS 447/s;90% 响应时间:1316ms
    • 服务器php-fpm:每个php-fpm占用0.7%cpu; 0.5%MEM
      • 依据一个php-fpm占用0.7%cpu,最大同时响应请求应该是:400 / 0.7 = 571 ;也就是最多能同时处理571个请求吧;加上部分请求消耗cpu可能达到1.0%;平均算下来,这台服务器处理并发请求的极限在500次/秒;单个接口请求也验证了这个想法。
  • 感觉目前的内存使用率非常低呢。

    • 请问怎样进行优化呢?
    • 如何能达到降低cpu使用率,同时提高内存利用率呢?

4核8G服务器压测问题咨询

本作品采用《CC 协议》,转载必须注明作者和本文链接
努力是不会骗人的!
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 27

平台是什么? linux ? windows? 硬件,必要的软件写出来

2年前 评论
storefee (楼主) 2年前
kis龍 (作者) 2年前
storefee (楼主) 2年前
kis龍 (作者) 2年前
storefee (楼主) 2年前
kis龍 (作者) 2年前
lufeijun1234

开启 opcache 试试

2年前 评论
storefee (楼主) 2年前

你可以试一下php-fpm 的数量降低试一下。 composer --no-dev 。 内存利用率低可以适当降低内存。倒也没必要非得把内存全用上。(如果非要用,开启 apcu / yac 拿内存缓存一些热数据也行)。 php .env 文件可以生成 .env.php 这样就可以把这个文件也进行 opcache 缓存。 cpu 使用高的话,需要检查一下是不是运算密集。运算密集的话 php-fpm 数量过多可能就变成负优化了,如果都是一些io操作的话,php-fpm 数量多一点问题不大。

2年前 评论
storefee (楼主) 2年前
skarner

同意楼上的,建议楼主调一下 php-fpm 的数量 另外可以尝试把 pm 改成静态的,结果应该会有提升

2年前 评论
storefee (楼主) 2年前

压测的内容是啥呢,复杂的业务?瓶颈会不会是数据库

2年前 评论
storefee (楼主) 2年前
  • opcache 内存值调高、手动更新opcache
  • apcu 为了composer那里缓存的自动加载走共享内存 而不是文件
  • 接口级别做合理的内存缓存 (这个比较重要),单机的话可以直接上apcu的缓存会比redis之类快好几个数量级
  • 上PHP7.4的话 可以追加 preload文件
  • 上PHP8的话 可以开JIT
2年前 评论
storefee (楼主) 2年前
随波逐流

PHP8 + OPCACHE + JIT

2年前 评论
storefee (楼主) 2年前
pm.max_children = 200
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 120 

试下,你那个配置服务器炸了就真的炸了

2年前 评论
storefee (楼主) 2年前

差不多到极限了,算可以了

2年前 评论
storefee (楼主) 2年前
tsingyan (作者) 2年前

怎么还在用 CentOS 8

2年前 评论

这是用的什么压测工具啊

2年前 评论

大哥这是什么压测工具呀

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!