遇到一个棘手的问题,求大神指点一二。
我这边有一个基于laravel的实时抢拍商品的程序,抢拍过程主要分为两块:一是商品每隔n秒会自动减少一点价格,二是用户点击也会使商品减少一点价格。
基本的思路是,使用redis缓存相关数据以此提高查询操作速度,使用laravel的队列延迟功能实现每隔n秒后商品价格减少(使用supervisor守护),使用workerman对在同个抢拍房间的用户进行消息推送(该过程为了向各个用户推送信息还循环建立多个curl post提交请求)。但是架设好以后发现大概五六个人同时多次点击抢拍,cpu占比就会飙到30,40,并且经常在十多个人的时候达到90%,导致网站很卡。
一开始判断是程序问题,但是反复检查并无存在哪些会死循环的地方,并且在用户停止点击后cpu占用会立刻降下来。网站使用lnmp架构,服务器为阿里云ECS CPU:1核 内存2G。现在不知道是程序的问题还是服务器配置不足的问题,麻烦有人可以指点一下可能存在的情况吗?
附上cpu占比飙高时候的截图问题链接:链接
使用workerman对在同个抢拍房间的用户进行消息推送(该过程为了向各个用户推送信息还循环建立多个curl post提交请求)
这里不是很清楚为什么还要建立curl连接 建立连接会比较耗时啊