session是不是非常影响并发性能,如果重写session存储到redis中,该如何重写?
GatewayWorker业务代码可以发出来看看么?
代码已贴,请帮忙看一下
$resultmsg=; //校验提交参数 $ParamArray = array('org_code', 'uid', 'user_role'); $postcheck = self::checkparam($message_data, $ParamArray); if ($postcheck=='False') { $resultmsg='False'; $resultmsg = $postcheck; return $resultmsg; } $resultmsg=$client_id; $resultmsg=date('Y-m-d H:i:s'); $userid=$message_data; //绑定用户UID与client_id,后面所有交互都要验证isUidOnline; $bindrt = Gateway::bindUid($client_id, $userid); //加入默认聊天群组与org_code组 Gateway::joinGroup($client_id, $message_data.'_'.$message_data); //存储用户信息至session $mysession = array( 'default_group'=>$message_data.'_'.$message_data, 'uid' => $message_data, 'org_code' => $message_data, 'user_role' => $message_data, 'logindate' => date('Y-m-d H:i:s'), 'bindclient' => 'True', 'client_ip'=> $_SERVER ); Gateway::setSession($client_id, array( 'default_group'=>$message_data.'_'.$message_data, 'uid' => $message_data, 'org_code' => $message_data, 'user_role' => $message_data, 'logindate' => date('Y-m-d H:i:s'), 'bindclient' => 'True', 'client_ip'=> $_SERVER ));
Gateway::setSession内部会产生短连接请求,压测过程中如果内核没有优化好可能造成大量time_wait连接,导致本地端口被占用光,导致请求便忙。 操作session的话最好用$_SESSION变量来操作,这样是长连接,不会有上述问题。 我笔记本压测没加sessionQPS 4w,加了session随机读写仍然是4wQPS,基本没变化。
下面是压测的代码
class Events { public static function onMessage($client_id, $message) { $_SESSION = time(); Gateway::sendToClient($client_id, "HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nServer: workerman\r\nContent-Length: 5\r\n\r\nhello"); } }
怎么压测一下websocket啊
GatewayWorker业务代码可以发出来看看么?
代码已贴,请帮忙看一下
Gateway::setSession内部会产生短连接请求,压测过程中如果内核没有优化好可能造成大量time_wait连接,导致本地端口被占用光,导致请求便忙。
操作session的话最好用$_SESSION变量来操作,这样是长连接,不会有上述问题。
我笔记本压测没加sessionQPS 4w,加了session随机读写仍然是4wQPS,基本没变化。
下面是压测的代码
怎么压测一下websocket啊