Cobub Razor
Cobub Toaster
其它鏈接
Cobub Razor
Cobub Toaster
其它鏈接
這是本文檔舊的修訂版!
linux 內(nèi)核參數(shù)設(shè)置(做測(cè)試不需要設(shè)置, 只在正式環(huán)境中設(shè)置) 修改/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
然后執(zhí)行”sysctl -p”命令,需要root權(quán)限。 需要注意的是fs.file-max,這個(gè)是全局范圍內(nèi)可以打開的文件句柄,視對(duì)長(zhǎng)連接數(shù)量的需求以及服務(wù)器內(nèi)存的大小而決定,樣例這里是60w,通常要比維持的長(zhǎng)連接數(shù)量要多一些,比如需要維持50w的長(zhǎng)連接,那么這個(gè)數(shù)量最好設(shè)置為60w。 修改/etc/security/limits.conf,在最后加入:
USERNAME - nofile 600000
第一參數(shù)USERNAME改為你的用戶名,600000與上面的fs.file-max設(shè)為相同的值。之后重新遠(yuǎn)程登錄Linux或者重啟,重啟或者重新登錄之后輸入命令“ulimit -n”,如果顯示為600000則表示設(shè)置生效。 如果沒(méi)有設(shè)置這些參數(shù), 當(dāng)長(zhǎng)連接超過(guò)一定數(shù)量時(shí), 會(huì)拋出錯(cuò)誤
ulimit: open files: cannot modify limit: Operation not permitted
或者
Too many open files in system
將 Cobub Toaster 的壓縮包解壓到任意目錄,建議解壓到 /usr/local/ 或 /opt/ 目錄下 然后修改配置文件 toaster.conf,重點(diǎn)解釋幾個(gè)值
[base] # userMaxCount: 這個(gè)參數(shù)比較關(guān)鍵, 這是允許最大的鏈接數(shù)量, 如果超過(guò)這個(gè)數(shù)量, 服務(wù)器會(huì)返回"5000 server is busy" 錯(cuò)誤給客戶端, 這個(gè)值不能比上面設(shè)置的fs.file-max大。 userMaxCount 500000 # bind: 表示推送服務(wù)tcp監(jiān)聽(tīng)的網(wǎng)卡:端口, 用","分隔多個(gè)監(jiān)聽(tīng), 通常場(chǎng)景下只需要監(jiān)聽(tīng)一個(gè)端口就足夠了 tcp.bind 0.0.0.0:9000,0.0.0.0:9001 [web] # post body 的大小限制, 默認(rèn)為10M, 要表示為1g可以寫成"1gb" postlimit 10mb # bind: 這個(gè)參數(shù)表示web service監(jiān)聽(tīng)的網(wǎng)卡:端口, 注意, 這里的localhost應(yīng)該要替換為自己的內(nèi)網(wǎng)地址, 綁定內(nèi)網(wǎng)的網(wǎng)卡. 如一般是192.168.xxx.xxx(不建議把web service暴露到公網(wǎng))。建議使用Nginx作為反向代理,否則可能發(fā)生亂碼問(wèn)題。 bind 127.0.0.1:8888 [message] feedbackTimeout 20m # 最大的消息過(guò)期時(shí)間為720小時(shí)(30天) maxMsgExpire 720h [connection] #最小心跳包間隔時(shí)間, 1分鐘 min_heartbeart_timeout 1m #最大心跳包間隔時(shí)間, 20分鐘 max_heartbeat_timeout 20m #在心跳包間隔+heartbeatDelay的時(shí)間內(nèi)如果沒(méi)有接收到客戶端發(fā)來(lái)的心跳包, 那么server #會(huì)認(rèn)為這是死鏈接, 會(huì)close掉這個(gè)鏈接, 此處設(shè)為30s heartbeatDelay 30s [cobub_verify] #這兩個(gè)key來(lái)自于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 &
注意啟動(dòng)之前請(qǐng)確認(rèn)redis已經(jīng)在運(yùn)行。
nohup ./toaster -log_dir="./log" &
./toaster -version