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'],
],
];
大量用户访问过后单独调试的 重启服务又变快了
linux 8核 16g 带宽 10m
workerman 3.1
加大宽带
大哥你的数据都是 29kb了。1MB带宽128kb。你自己计算下呢。你提供接口我建议你还是用webman吧。
没有我在 服务器很空闲的 时候 调用的 很慢
因为是老项目 用的thinkphp 直接转 webman 的话太麻烦了
你这个要自己找原因,第一就是你这个热点接口数据包都 29kb。你的10M转成数据包也是1280kb。高并发这个接口 44次频率访问;这还是理想情况下;多看看优化方案。php没那么拉胯。webman下数据库设计合理,多级缓存合理;达到高并发很简单的。
建议:去看云商的出入网带宽率。
去看tcp连接数,就知道你当前系统并发数了。
有没有可能 重启服务的时候 就只有你一个人占着带宽