您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman系列之再談socket5代理s5優化
发布时间:2022-01-15 22:20:48编辑:雪饮阅读()
前幾天有用workerman搭建了socket5代理,但是在實際使用中會發現還是有點不太好的地方,這socket5代理對服務器配置要求其實也挺高的,一核1G的服務器基本是我們放課後業餘的玩物,畢竟便宜。
但是這東西平時負載就挺高的,那麽使用上socket5后你會發現慢慢的服務器越來越卡,負載飆升。出現大量close_wait狀態的tcp端口占用。可以參考如下命令執行結果,當然也有可能沒有太多,
具體看你s5代理客戶端使用情況了,一旦close_wait過多,則socket5請求幾乎就沒有什麽反應了。
[root@izj6c2jeancylo0ppo4vz5z workerman]#netstat -anpt | grep -i workerman | grep -i close_wait | wc -l
那麽解決辦法呢是有至少我這裏認爲是兩種,一種是在該s5代理源碼中進行優化,比如連接數達到某個數之後就重啓自身。
還有一種就是通過上面這個命令來判斷,然後以計劃任務方式定時去檢查並重啓s5服務端(定時器workerman也是支持的,但是這裏我就個人感覺shell更好點。)
那麽假定我可以編寫一個如test.sh的脚本:
#!/bin/bash
workermans=`netstat -anpt | grep -i workerman | grep -i close_wait | wc -l`
if [ $workermans -gt 16000 ];
then
echo `/www/server/php/70/bin/php -c /www/server/php/70/etc/php.ini /www/wwwroot/workerman/start.php restart -d`
fi
然後計劃任務中去執行該test.sh,另外也可以直接複製該脚本内容放在寶塔計劃任務中,感覺上其實差不多的,就和支付寶有密鑰模式和證書模式是一個道理,殊途同歸罷了。
关键字词:workerman,socket5,代理,優化
相关文章
- workerman服務治理優化系列之連接數管理-根据连接数重
- workerman服務治理系列之workerman服务(脚本)自启动(开机
- workerman16进制与2进制字符串的转换(局限有点狭隘,應該
- http反向代理環境下获取真实ip(基於workerman)
- https在反向代理環境下获取真实ip(基於workerman實現)
- 基於workerman實現ws获取真實客戶端ip(反向代理環境下)
- workerman系列之nginx配置反向代理于workerman時候實
- workerman系列之tp5(thinkphp5)日志结合workerman使用
- workerman常见问题-php的几种回调写法-类的静态方法作
- workerman常见问题-php的几种回调写法-类方法作为回调