workerman 寫的 http 服務(wù) 接口 服務(wù)剛啟動的 時候 前幾次請求很快 , 訪問的人多了 就變的很卡了
服務(wù)剛開啟 訪問 接口 非常快 快到模糊
大量用戶訪問后 或者 幾天后 即使服務(wù)器很寬松 也會很卡 沒有服務(wù)剛開啟時那么快了 除非重啟服務(wù)
workerman http 服務(wù)配置:
<?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的參數(shù)(支持所有配置項)
'option' => [
'protocol' => 'http', // 協(xié)議,支持 tcp udp unix http websocket text
'ip' => '0.0.0.0', // 監(jiān)聽地址
'port' => env('WORKER.PORT', '8002'), // 監(jiān)聽端口
'name' => 'baHttpWorker', // Worker實例名稱
'count' => 4, // 進程數(shù)
'pidFile' => Filesystem::fsFit(runtime_path() . 'worker/http.pid'), // 進程ID存儲位置
'logFile' => $logFile, // 日志存儲位置
],
// socket 上下文選項,可配置SSL證書等
'context' => [],
// 回調(diào)類命名空間
'eventHandler' => 'app\\worker\\events\\Http',
// 需要注冊的回調(diào)方法
'events' => [
'onWorkerStart',
'onWorkerReload',
'onConnect',
'onMessage',
'onClose',
'onBufferFull',
'onBufferDrain',
'onError',
],
// 靜態(tài)服務(wù)器配置
'staticServer' => [
// 禁止訪問的文件類型
'deny' => ['php', 'bat', 'lock', 'ini'],
// 要求瀏覽器下載而不是直接打開的文件類型(比如 pdf 文件內(nèi)可能含有 xss 攻擊代碼)
'attachment' => ['pdf'],
],
];
大量用戶訪問過后單獨調(diào)試的 重啟服務(wù)又變快了
linux 8核 16g 帶寬 10m
workerman 3.1
大哥你的數(shù)據(jù)都是 29kb了。1MB帶寬128kb。你自己計算下呢。你提供接口我建議你還是用webman吧。
你這個要自己找原因,第一就是你這個熱點接口數(shù)據(jù)包都 29kb。你的10M轉(zhuǎn)成數(shù)據(jù)包也是1280kb。高并發(fā)這個接口 44次頻率訪問;這還是理想情況下;多看看優(yōu)化方案。php沒那么拉胯。webman下數(shù)據(jù)庫設(shè)計合理,多級緩存合理;達到高并發(fā)很簡單的。
建議:去看云商的出入網(wǎng)帶寬率。
去看tcp連接數(shù),就知道你當(dāng)前系統(tǒng)并發(fā)數(shù)了。