用户工具

站点工具


推送服务器安装指南

linux 内核参数设置(做测试不需要设置, 只在正式环境中设置) 修改/etc/sysctl.conf, 加入以下几行:

fs.file-max = 600000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 61000
net.ipv4.tcp_rmem = 512 32768 262142
net.ipv4.tcp_wmem = 1024 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_syncookies = 1

然后执行”sysctl -p”命令,需要root权限。 需要注意的是fs.file-max,这个是全局范围内可以打开的文件句柄,视对长连接数量的需求以及服务器内存的大小而决定,样例这里是60w,通常要比维持的长连接数量要多一些,比如需要维持50w的长连接,那么这个数量最好设置为60w。 修改/etc/security/limits.conf,在最后加入:

USERNAME    -   nofile  600000

第一参数USERNAME改为你的用户名,600000与上面的fs.file-max设为相同的值。之后重新远程登录Linux或者重启,重启或者重新登录之后输入命令“ulimit -n”,如果显示为600000则表示设置生效。 如果没有设置这些参数, 当长连接超过一定数量时, 会抛出错误

ulimit: open files: cannot modify limit: Operation not permitted

或者

Too many open files in system

安装 Cobub Toaster

将 Cobub Toaster 的压缩包解压到任意目录,建议解压到 /usr/local/ 或 /opt/ 目录下 然后修改配置文件 toaster.conf,重点解释几个值

[base]
# userMaxCount: 这个参数比较关键, 这是允许最大的链接数量, 如果超过这个数量, 服务器会返回"5000 server is busy" 错误给客户端, 这个值不能比上面设置的fs.file-max大。
userMaxCount 500000
# bind: 表示推送服务tcp监听的网卡:端口, 用","分隔多个监听, 通常场景下只需要监听一个端口就足够了
tcp.bind 0.0.0.0:9000,0.0.0.0:9001

[web]
# post body 的大小限制, 默认为10M, 要表示为1g可以写成"1gb"
postlimit 10mb
# bind: 这个参数表示web service监听的网卡:端口, 注意, 这里的localhost应该要替换为自己的内网地址, 绑定内网的网卡. 如一般是192.168.xxx.xxx(不建议把web service暴露到公网)。建议使用Nginx作为反向代理,否则可能发生乱码问题。
bind 127.0.0.1:8888

[message]
feedbackTimeout 20m
# 最大的消息过期时间为720小时(30天)
maxMsgExpire 720h

[connection]
#最小心跳包间隔时间, 1分钟
min_heartbeart_timeout 1m
#最大心跳包间隔时间, 20分钟
max_heartbeat_timeout 20m

#在心跳包间隔+heartbeatDelay的时间内如果没有接收到客户端发来的心跳包, 那么server
#会认为这是死链接, 会close掉这个链接, 此处设为30s
heartbeatDelay  30s

[cobub_verify]
#这两个key来自于Cobub 用户中心
user_key 3e5f68afbb0f94xxx09bfc1730
user_secret 2d43d5dcdcb2yyyy3269dfb56b4b17

Redis 安装&配置

tar zxvf redis-2.6.16.tar.gz
cd redis-2.6.16
make
sudo make install
cd ~
mkdir redis-6379
cd redis-6379
nohup redis-server &

启动推送服务器PNS

注意启动之前请确认redis已经在运行。

nohup ./toaster -log_dir="./log" &

查看推送服务器PNS版本

./toaster -version
toaster/installation-guide-of-pns.txt · 最后更改: 2017/07/14 11:18 (外部编辑)