千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 線上集群中某臺(tái)服務(wù)器頻繁重啟的問(wèn)題排查分析過(guò)程

線上集群中某臺(tái)服務(wù)器頻繁重啟的問(wèn)題排查分析過(guò)程

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2023-03-02 16:10:00 1677744600

  一. 問(wèn)題描述

  我們?nèi)ッ嬖嚂r(shí),有些面試官會(huì)經(jīng)常問(wèn)我們:你都遇到過(guò)哪些線上的故障?是解決這些線上故障的?今天千鋒就給大家講解一個(gè)比較奇葩的線上故障,問(wèn)題如下所示:

  線上集群中,某一臺(tái)服務(wù)器頻繁重啟是怎么回事?如何解決?

  下面是千鋒的線上服務(wù)器架構(gòu)圖:

線上集群中某臺(tái)服務(wù)器頻繁重啟的問(wèn)題排查分析過(guò)程149

  二. 問(wèn)題排查

  為什么會(huì)出現(xiàn)線上某臺(tái)服務(wù)器頻繁重啟呢?為了搞清楚問(wèn)題所在,我們可以按照如下思路來(lái)進(jìn)行問(wèn)題排查。

  首先我給大家說(shuō)明一下,千鋒的線上服務(wù)器,請(qǐng)求負(fù)載均衡策略是采用的是輪詢(xún)機(jī)制,請(qǐng)求數(shù)量平均分配。

  接下來(lái)我們可以定位一下故障發(fā)生的時(shí)間點(diǎn)。在本案例中,我的線上服務(wù)器重啟的時(shí)間段基本是固定的,所以我就可以在那個(gè)特定的時(shí)間段內(nèi)進(jìn)行監(jiān)控。

  然后我們?cè)賮?lái)分析一下,服務(wù)器重啟可能有哪些常見(jiàn)的原因:

  硬件風(fēng)扇散熱不好,造成服務(wù)器過(guò)熱,服務(wù)器會(huì)重啟---->我的服務(wù)器風(fēng)扇沒(méi)有問(wèn)題,排除掉;

  檢查內(nèi)存空間是否充足。可以在那個(gè)時(shí)間段通過(guò)top命令監(jiān)控CPU和內(nèi)存的利用率,看看是否在那個(gè)時(shí)間段內(nèi)硬件資源消耗殆盡了;

  軟件原因。服務(wù)器內(nèi)部是否有什么任務(wù)代碼,在那個(gè)時(shí)間段會(huì)將硬件資源耗盡,造成重啟。

  通過(guò)以上排查方法,我既沒(méi)有發(fā)現(xiàn)風(fēng)扇有問(wèn)題,也沒(méi)有發(fā)現(xiàn)在服務(wù)器中除了當(dāng)前自己的應(yīng)用外,還有其他大型應(yīng)用在占用硬件資源。但通過(guò)top命令,我卻在服務(wù)器經(jīng)常重啟的時(shí)間段內(nèi),發(fā)現(xiàn)硬件CPU和內(nèi)存資源在某一個(gè)時(shí)間段內(nèi)提升地特別快,進(jìn)而造成硬件資源耗盡,服務(wù)器重啟。

  那么如果在沒(méi)有外部軟件占用資源的情況下,CPU和內(nèi)存資源的消耗更多地是由自己的軟件耗盡的。所以現(xiàn)在我們可以初步診斷出,是當(dāng)前自己的應(yīng)用在處理請(qǐng)求能力上較差,造成大量請(qǐng)求累積。

  為了驗(yàn)證結(jié)論是否正確,千鋒使用了jmeter壓力測(cè)試工具,對(duì)集群中幾臺(tái)沒(méi)有問(wèn)題的服務(wù)器和當(dāng)前服務(wù)器進(jìn)行測(cè)試對(duì)比,結(jié)果發(fā)現(xiàn)當(dāng)前出現(xiàn)問(wèn)題的服務(wù)器在處理請(qǐng)求能力上與其他服務(wù)器相比速度較慢。

  最終,千鋒通過(guò)以上經(jīng)驗(yàn)推測(cè)和測(cè)試方法得出結(jié)果,之所以會(huì)出現(xiàn)線上服務(wù)器經(jīng)常重啟,此處主要是因?yàn)槟撑_(tái)服務(wù)器硬件性能較差,在輪詢(xún)策略分配請(qǐng)求時(shí),平均分配造成當(dāng)前機(jī)器請(qǐng)求的積壓過(guò)多,承載不了,從而產(chǎn)生系統(tǒng)重啟。

  三. 解決方案

  針對(duì)這個(gè)問(wèn)題,解決方案如下:

  修改分布式請(qǐng)求策略。雖然輪詢(xún)策略平均分配了請(qǐng)求數(shù),但由于不同配置的機(jī)器對(duì)相同請(qǐng)求的處理能力不同,有可能會(huì)出現(xiàn)個(gè)別服務(wù)器無(wú)法承載過(guò)多壓力而崩潰的情況;

  給請(qǐng)求的機(jī)器地址添加權(quán)重。我們也可以給出現(xiàn)問(wèn)題的機(jī)器分配較少的權(quán)重,在請(qǐng)求分配時(shí),給配置較低的服務(wù)器少分配一些權(quán)重,避免造成請(qǐng)求積壓。

  現(xiàn)在你知道如何排查線上服務(wù)器的類(lèi)似故障了嗎?如果你還有其他問(wèn)題,可以在評(píng)論區(qū)留言哦。關(guān)注Java架構(gòu)棧,干貨天天都不斷哦。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見(jiàn)的數(shù)據(jù)類(lèi)型,它可以用來(lái)表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實(shí)現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R?jiàn)的一種社交方式。Python語(yǔ)言的Socket模塊是實(shí)現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實(shí)現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計(jì)算機(jī)編程中,循環(huán)語(yǔ)句是非常重要的一部分。而while語(yǔ)句是其中最基本也是最常用的一種。它的作用是在滿(mǎn)足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個(gè)集合?

在Python中,集合是一種無(wú)序且不重復(fù)的數(shù)據(jù)類(lèi)型,可以用于存儲(chǔ)一組元素。創(chuàng)建一個(gè)集合非常簡(jiǎn)單,只需要使用大括號(hào){}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見(jiàn)的命令了。使用cat命令會(huì)打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15