webman 并发测试 用postjson 压力测试工具跟ab,都是秒响应 2k或者8

laozhou

webman 并发测试 用postjson 压力测试工具跟ab,都是秒响应 2k或者8k
比方说
写了一个 index() 方法 ,里面只输出 helloworld, 压力测试的时候可以直接秒响应2k
另外写一个test方法 curlpost 去请求 (上面这个index方法) ip:8787/index 的时候
这个时候 压力测试 响应才2个 或者几十个 ,不会秒响应,但是他会在我的超时时间内 慢慢请求,而且请求会超时,不懂了,希望有大哥能指点一下

676 7 0
7个回答

tanhongbin

你这 别人也看不懂呀,你截个图 啥的

  • laozhou 2023-10-11

    我理一下啊 就是
    两台服务器 A B 都部署了webman
    压力测试 2000个请求直接到 A 然后 由 A 在转向B

    我直接压力测试B 是没有问题的 ,2000个请求全部响应,

    然后压力测试 2000个请求 A A 用curl post方式 去请求B 这个时候 压力测试的结果就响应超时了,可能就几个十几个响应

  • laozhou 2023-10-11

    还会请求超时, 请问这是哪里的原因

latin

进程自己请求自己死锁了

  • tanhongbin 2023-10-11

    你居然能听懂他说的啥,我是完全听不懂呀

  • nitron 2023-10-11

    后半段看懂了,就是左手掰右手去给左手捉痒
    前半段2K8K看不懂

软饭工程师

像极了精神病患者的自我拉扯

  • laozhou 2023-10-11

    我的基础不够,希望大哥们指点一下

释永战

死循环了啊,都在等待对方响应····

  • laozhou 2023-10-11

    没有死循环把 ,因为单个请求是可以响应的

  • latin 2023-10-11

    比如A B公用10个进程对外服务,A发起curl请求B,如果同时发来10个A请求,这时每个进程都同时发起一个curl阻塞请求B接口,那么这10个进程就都进入阻塞状态不能响应任何其他请求。因为10个进程都被A接口占用完了,那么没有进程可以处理B请求,导致死锁。

    单个没问题是因为始终有空闲进程能提供curl响应

  • laozhou 2023-10-11

    所以 是curl的问题吗

  • laozhou 2023-10-11

    还有一个问题,我需要发送很多个请求 给别人 现在用的 redis 队列,但是这个好像是排队进行了的,如果我一次性要处理很多个是要用多个队列来消耗吗

  • latin 2023-10-11

    最简单的A网络调用B改成A内部函数调用B就好了。
    redis队列一个队列可以启动多个消费者消费,不一定要创建多队列。

  • laozhou 2023-10-12

    可是AB 是两台服务器,不可以内部调用呢 只能通过请求 B ,,redis 我再去看下文档

  • laozhou 2023-10-12

    哥哥这个redis多个消费者消费 是 改哪个参数 吗,文档我没找到

  • laozhou 2023-10-12

    <?php
    return [
    ...这里省略了其它配置...

    'redis_consumer'  => [
        'handler'     => Webman\RedisQueue\Process\Consumer::class,
        'count'       => 8, // 可以设置多进程
        'constructor' => [
            // 消费者类目录
            'consumer_dir' => app_path() . '/queue/redis'
        ]
    ]

    ]; 是这个么 , 只有8个

胡桃
  • 暂无评论
meows

你的意思是:

class IndexController {
public function index(){ return "hello world";}
public function test(){return curl index();}
}

// curl index() 返回很快,test() 很慢?

  • laozhou 2023-10-12

    index 很快 ,curl index 很慢

  • meows 2023-10-12

    我想问你,你的代码是不是我写的这个样子。

  • laozhou 2023-10-12

    不是 ,实际上 有 两台服务器

JackDx

用 AsyncTcpConnection 同步等待请求可能超时。

🔝