GatewayWorker的部署及测试
===================================环境要求======================================
curl -Ss https://www.workerman.net/check | php
PHP Version >= 5.4.0 [OK]
Extension pcntl check [OK]
Extension posix check [OK]
正确:
yum install php-process
错误:
yum install php74-php-process
===================================手册======================================
【部署手册】
【workerman手册】
http://doc3.workerman.net/
【GatewayWorker手册】
http://doc2.workerman.net/
=======================================调试==================================
【调试】
线上地址
http://coolaf.com/tool/chattest
ws://xxx:8181/?id=1
发送
{"type":3,"data":{"token":"xxx","id":1,"fromUserName":"Suneo Honekawa","fromUserImg":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=323958783063001&height=500&width=500&ext=1642213652&hash=AeQD5mATg8V6PvcH584","content":"It's ok ","fromTime":1639625370123,"fromUserId":2}}
服务器返回
{"type":3,"data":{"token":"xxx","id":1,"fromUserName":"Suneo Honekawa","fromUserImg":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=323958783063001&height=500&width=500&ext=1642213652&hash=AeQD5mATg8V6PvcH584","content":"It's ok ","fromTime":1639625370123,"fromUserId":2}}
【启动/重启/状态】
php /pathtostart.php start
php /pathto/start.php restart
php /pathto/start.php status
【daemon守护进程启动】
php /pathto/start.php start -d
php /pathto/start.php restart -d
【日志】
======================================压力测试===================================
【压力测试】
【导语】
workerman压力测试(测试工具benchmark)
大约支撑3000并发(3000客户端同时发消息)
瓶颈在memcache连接池数量(配置可修改)
【步骤】
cd /data/temp/workerman-bench
./applications/Benchmark/benchmark -n1 -h10000 -c2800 -p8181 127.0.0.1
命令含义是2800并发线程,连接127.0.0.1:8181端口,然后每个线程并发连续发送10000个hello\n ,服务端收到hello\n后返回一个hello\n
基本无压力
./applications/Benchmark/benchmark -n1 -h10000 -c3000 -p8181 127.0.0.1
命令含义是3000并发线程,连接127.0.0.1:8181端口,然后每个线程并发连续发送10000个hello\n ,服务端收到hello\n后返回一个hello\n
出现memcache连接拥挤,报错如下
Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110)
【结果】
目前瓶颈主要在于memcache连接池的建立,不过也已经足够支持2800-3000的并发
【其他】
重新调整Memcached的启动参数,增加-c参数来提高连接数量。默认为1024,可以逐步增加以找到最佳数值。我设置为2048。
memcached -d -m 1024 -c 4096 -l 127.0.0.1 -p 11211 -u root
/usr/bin/memcached -d -m 1024 -c 4096 -u memcached -p 11211
参考 https://cloud.tencent.com/developer/article/1644184
======================================问题===================================
1. Please install posix extension. See http://doc3.workerman.net/appendices/install-extension.html
yum install php-process
2. 发生错误: undefined,websocket连接已断开!!!
检查端口开放
firewall-cmd --zone=public --add-port=1239/tcp --permanent &&
firewall-cmd --zone=public --add-port=8282/tcp --permanent &&
firewall-cmd --zone=public --add-port=3000/tcp --permanent &&
firewall-cmd --zone=public --add-port=3001/tcp --permanent &&
firewall-cmd --zone=public --add-port=3002/tcp --permanent &&
firewall-cmd --zone=public --add-port=3003/tcp --permanent
systemctl restart firewalld
3. 收发图片的问题
walkor 2015-02-07
目前没有这个接口,需要自己开发
最简单的办法是通过传统的网页upload给nginx或者apache服务器,然后返回个url,workerman转发这个url,展示时放到网页img标签里面,实现图片发送展示
https://www.workerman.net/q/231

浙公网安备 33010602011771号