成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

WebSocket服務(wù)掛掉問(wèn)題記錄

CloudwiseAPM / 3484人閱讀

摘要:一背景之前使用服務(wù)為頁(yè)面進(jìn)行實(shí)時(shí)數(shù)據(jù)推送,突然有一天產(chǎn)品給我反饋,說(shuō)該頁(yè)面的實(shí)時(shí)刷新功能失效了,于是開(kāi)始進(jìn)行排查和處理,并將過(guò)程記錄下來(lái)。這個(gè)服務(wù)是有監(jiān)控程序的,每分鐘檢查一次是否正常,不正常的話會(huì)將進(jìn)程全部殺掉進(jìn)行重啟。

一、背景

之前使用websocket服務(wù)為H5頁(yè)面進(jìn)行實(shí)時(shí)數(shù)據(jù)推送,突然有一天產(chǎn)品給我反饋,說(shuō)該頁(yè)面的實(shí)時(shí)刷新功能失效了,于是開(kāi)始進(jìn)行排查和處理,并將過(guò)程記錄下來(lái)。

這個(gè)服務(wù)是有監(jiān)控程序的,每分鐘檢查一次websocket是否正常,不正常的話會(huì)將進(jìn)程全部殺掉進(jìn)行重啟。

當(dāng)天接到反饋后,我看了下服務(wù),監(jiān)控程序是正常的,會(huì)對(duì)websocket進(jìn)行重啟,但每次重啟過(guò)后不超過(guò)30s,websocket的master節(jié)點(diǎn)就又掛了。

情況就是這樣的,下面進(jìn)入排查流程。

二、master節(jié)點(diǎn)為什么會(huì)掛掉?

在官網(wǎng)上有列舉以下三種情況會(huì)導(dǎo)致無(wú)法提供服務(wù):

(1)系統(tǒng)負(fù)載過(guò)大swoole無(wú)法申請(qǐng)到內(nèi)存而掛掉
(2)swoole底層發(fā)生段錯(cuò)誤
(3)Server占用內(nèi)存過(guò)大被內(nèi)核Kill,或者被某些程序誤殺

但是根據(jù)當(dāng)前環(huán)境,并不符合上述情況,所以這個(gè)問(wèn)題暫時(shí)還沒(méi)有找到具體的原因。

三、根據(jù)日志報(bào)錯(cuò)解決

(1)首先看了下nginx的error.log,發(fā)現(xiàn)大量報(bào)錯(cuò):

13247#0: *176909901 connect() failed (111: Connection refused) while connecting to upstream,

看了下nginx配置,可以看出一開(kāi)始的配置是很小的,所以對(duì)幾個(gè)配置進(jìn)行增大

worker_processes  1;  //worker角色的進(jìn)程個(gè)數(shù)
worker_rlimit_nofile 1024;// 更改worker進(jìn)程的最大打開(kāi)文件數(shù)限制。
worker_connections  1024;//每一個(gè)worker進(jìn)程能并發(fā)處理(發(fā)起)的最大連接數(shù)(包含所有連接數(shù))

(2)swoole自帶的log日志中也有很多報(bào)錯(cuò):

ERROR   swServer_master_onAccept (ERROR 502): accept() failed. Error: Too many open files[24]

(3)還有在程序啟動(dòng)會(huì)輸出:

WARN    swServer_start_check: serv->max_conn is exceed the maximum value[1024].

官方解釋為啥會(huì)出現(xiàn)這個(gè)報(bào)錯(cuò),所以說(shuō)明當(dāng)前的問(wèn)題就是因?yàn)閡limit -n設(shè)置的過(guò)低導(dǎo)致的問(wèn)題:

max_connection最大不得超過(guò)操作系統(tǒng)ulimit -n的值,否則會(huì)報(bào)一條警告信息,并重置為ulimit -n的值

綜合(2)(3)可以得出結(jié)論就出在這個(gè)ulimit -n上面了,之前也修改過(guò)這個(gè)值但實(shí)際上并沒(méi)有生效。

ulimit -n 指定同一時(shí)間最多可打開(kāi)的文件數(shù)
vim /etc/security/limits.conf  -------永久修改
ulimit -n 1024 -----------------------即時(shí)修改,但重啟后就無(wú)效了
四、后續(xù)問(wèn)題

(1)訪問(wèn)量上來(lái)后,發(fā)現(xiàn)會(huì)出現(xiàn)redis偶爾鏈接失敗的報(bào)錯(cuò),查找原因是因?yàn)榇罅拷㈡溄訉?dǎo)致機(jī)器上的端口都在使用中,通過(guò)調(diào)整內(nèi)核參數(shù)解決。

vim /etc/sysctl.conf

編輯文件,加入以下內(nèi)容:
net.ipv4.tcp_tw_reuse = 1 //表示開(kāi)啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_tw_recycle = 1 //表示開(kāi)啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。

然后執(zhí)行/sbin/sysctl -p讓參數(shù)生效。

(2)訂閱redis后,一段時(shí)間后會(huì)無(wú)法收到信息。原因暫時(shí)不明,通過(guò)增加鏈接超時(shí)捕獲異常后重新建立訂閱請(qǐng)求解決。

ini_set("default_socket_timeout", 10);
五、后記

整理文檔的同時(shí)就是將解決問(wèn)題的過(guò)程重新復(fù)盤(pán)一遍,以后解決這種問(wèn)題的思路就會(huì)比較清晰了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/6897.html

相關(guān)文章

  • 聊聊微服務(wù)集群當(dāng)中的自動(dòng)化工具

    摘要:本篇博客主要介紹了自動(dòng)化工具這個(gè)概念,在微服務(wù)集群當(dāng)中的作用,算拋磚引玉,歡迎大家提出自己的見(jiàn)解。而在微服務(wù)中,單個(gè)服務(wù)重新部署的代價(jià)明顯要小的多。 本篇博客主要介紹了自動(dòng)化工具這個(gè)概念,在微服務(wù)集群當(dāng)中的作用,算拋磚引玉,歡迎大家提出自己的見(jiàn)解。 寫(xiě)在前面 在了解自動(dòng)化工具的概念之前,我們先了解一下微服務(wù)和集群的概念。 什么是微服務(wù) 這個(gè)概念其實(shí)有些廣泛,而我的知識(shí)廣度也有限,我會(huì)盡...

    Hancock_Xu 評(píng)論0 收藏0
  • 考拉定時(shí)任務(wù)框架kSchedule

    摘要:考拉訂單流推送申報(bào)單推送物流信息等供應(yīng)鏈相關(guān)業(yè)務(wù)已接入分片任務(wù),極大提高了業(yè)務(wù)吞吐量降低壓力,提升了通關(guān)效率。支撐雙十一黑五雙十二等大促,高峰期統(tǒng)一暫停非關(guān)鍵定時(shí)任務(wù),讓出系統(tǒng)資源,提高業(yè)務(wù)系統(tǒng)穩(wěn)定性。 此文已由作者楊凱明授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問(wèn)網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)。 1.背景 目前項(xiàng)目中使用的定時(shí)任務(wù)框架存在下面這些問(wèn)題 沒(méi)有統(tǒng)一的定時(shí)任務(wù)管理平臺(tái) 目前項(xiàng)目...

    AlexTuan 評(píng)論0 收藏0
  • Golang 在十二贊的深度應(yīng)用

    摘要:在十二贊的深度應(yīng)用我們是十二贊,一個(gè)致力于幫助電商賣家進(jìn)入小程序的小團(tuán)隊(duì),我們的主頁(yè)是。我們的整個(gè)業(yè)務(wù)構(gòu)建于阿里云之上,有臺(tái)每一對(duì)都有獨(dú)立的外網(wǎng)同時(shí)也在同一個(gè)內(nèi)網(wǎng)之中。,我們把所有的文件都挪到阿里云的服務(wù)上。當(dāng)然,也是可執(zhí)行文件發(fā)布的。 Golang 在十二贊的深度應(yīng)用 我們是十二贊,一個(gè)致力于幫助電商賣家進(jìn)入小程序的小團(tuán)隊(duì),我們的主頁(yè)是http://www.12zan.cn/。在實(shí)際...

    Honwhy 評(píng)論0 收藏0
  • Canvas + WebSocket + Redis 實(shí)現(xiàn)一個(gè)視頻彈幕

    摘要:創(chuàng)建彈幕功能的類及基本參數(shù)處理布局時(shí)需要注意的默認(rèn)寬為,高為,我們要保證完全覆蓋整個(gè)視頻,需要讓與寬高相等。因?yàn)槲覀儾淮_定每一個(gè)使用該功能的視頻的寬高都是一樣的,所以畫(huà)布的寬高并沒(méi)有通過(guò)來(lái)設(shè)置,而是通過(guò)在類創(chuàng)建實(shí)例初始化屬性的時(shí)候動(dòng)態(tài)設(shè)置。 showImg(https://segmentfault.com/img/remote/1460000018998386); 閱讀原文 頁(yè)面布...

    WelliJhon 評(píng)論0 收藏0
  • Canvas + WebSocket + Redis 實(shí)現(xiàn)一個(gè)視頻彈幕

    摘要:創(chuàng)建彈幕功能的類及基本參數(shù)處理布局時(shí)需要注意的默認(rèn)寬為,高為,我們要保證完全覆蓋整個(gè)視頻,需要讓與寬高相等。因?yàn)槲覀儾淮_定每一個(gè)使用該功能的視頻的寬高都是一樣的,所以畫(huà)布的寬高并沒(méi)有通過(guò)來(lái)設(shè)置,而是通過(guò)在類創(chuàng)建實(shí)例初始化屬性的時(shí)候動(dòng)態(tài)設(shè)置。 showImg(https://segmentfault.com/img/remote/1460000018998386); 閱讀原文 頁(yè)面布...

    gekylin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<