在centos7部署了個(gè)webman的項(xiàng)目,在windwos環(huán)境使用apiPost進(jìn)行壓力測(cè)試時(shí)會(huì)出現(xiàn)部分dial tcp 127.0.0.1: connectex: Only one usage of each socket address (protocol/network address/port) is normally permitted.
的報(bào)錯(cuò),大概占總請(qǐng)求的不到1%。
cs_id 是1到10W,并發(fā)數(shù)100個(gè),時(shí)長(zhǎng)180S。
$params = $request->all();
if (empty($params['cs_id'])) {
return json(['code' => 20000, 'msg' => 'id不能為空']);
}
$key = 'CS_ID_' . $params['cs_id'];
$cached_data = Redis::hGetAll($key);
if (!empty($cached_data)) {
return json_encode(['code' => 200, 'msg' => 'success', 'data' => $cached_data]);
}
$data = DB::table('conference')
->select('*')
->where('CS_ID', $params['cs_id'])
->first();
if ($data) {
Redis::hMSet($key, (array)$data);
Redis::expire($key, 600);
return json_encode(['code' => 200, 'msg' => 'success', 'data' => (array)$data]);
} else {
return json_encode(['code' => 200, 'msg' => 'success', 'data' => null]);
}
dial tcp 127.0.0.1: connectex: Only one usage of each socket address (protocol/network address/port) is normally permitted.
"workerman/webman-framework": "^1.6.8"
使用keepalive壓測(cè),不然windows壓力機(jī)的操作系統(tǒng)端口不夠用。
壓力測(cè)試相關(guān)參考手冊(cè) http://www.wtbis.cn/doc/webman/others/benchmarks.html
另外 apipost有bug,不建議用它壓測(cè),手冊(cè)里有說(shuō)