workerman http 服务 访问没有服务刚开启时那么快响应 变得很卡

xb

问题描述

workerman 写的 http 服务 接口 服务刚启动的 时候 前几次请求很快 , 访问的人多了 就变的很卡了

服务刚开启 访问 接口 非常快 快到模糊

大量用户访问后 或者 几天后 即使服务器很宽松 也会很卡 没有服务刚开启时那么快了 除非重启服务
截图

程序代码或配置

workerman http 服务配置:
<?php

use ba\Filesystem;

$logFile = Filesystem::fsFit(runtime_path() . 'worker/log/' . date('Y-m-d') . '.log');
if (!is_dir(dirname($logFile))) {
    mkdir(dirname($logFile), 0755, true);
}

return [
    // Worker的参数(支持所有配置项)
    'option'       => [
        'protocol' => 'http', // 协议,支持 tcp udp unix http websocket text
        'ip'       => '0.0.0.0', // 监听地址
        'port'     => env('WORKER.PORT', '8002'), // 监听端口
        'name'     => 'baHttpWorker', // Worker实例名称
        'count'    => 4, // 进程数
        'pidFile'  => Filesystem::fsFit(runtime_path() . 'worker/http.pid'), // 进程ID存储位置
        'logFile'  => $logFile, // 日志存储位置
    ],

    // socket 上下文选项,可配置SSL证书等
    'context'      => [],

    // 回调类命名空间
    'eventHandler' => 'app\\worker\\events\\Http',
    // 需要注册的回调方法
    'events'       => [
        'onWorkerStart',
        'onWorkerReload',
        'onConnect',
        'onMessage',
        'onClose',
        'onBufferFull',
        'onBufferDrain',
        'onError',
    ],

    // 静态服务器配置
    'staticServer' => [
        // 禁止访问的文件类型
        'deny'       => ['php', 'bat', 'lock', 'ini'],
        // 要求浏览器下载而不是直接打开的文件类型(比如 pdf 文件内可能含有 xss 攻击代码)
        'attachment' => ['pdf'],
    ],
];

重现问题的步骤

大量用户访问过后单独调试的 重启服务又变快了

操作系统环境及workerman/webman等具体版本

linux 8核 16g 带宽 10m
workerman 3.1

227 3 1
3个回答

不败少龙

加大宽带

  • 暂无评论
故人重来

大哥你的数据都是 29kb了。1MB带宽128kb。你自己计算下呢。你提供接口我建议你还是用webman吧。

  • xb 6天前

    没有我在 服务器很空闲的 时候 调用的 很慢

  • xb 6天前

    因为是老项目 用的thinkphp 直接转 webman 的话太麻烦了

  • 故人重来 6天前

    你这个要自己找原因,第一就是你这个热点接口数据包都 29kb。你的10M转成数据包也是1280kb。高并发这个接口 44次频率访问;这还是理想情况下;多看看优化方案。php没那么拉胯。webman下数据库设计合理,多级缓存合理;达到高并发很简单的。
    建议:去看云商的出入网带宽率。
    去看tcp连接数,就知道你当前系统并发数了。

smile1

有没有可能 重启服务的时候 就只有你一个人占着带宽

  • 暂无评论
×
🔝