999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

排查服務(wù)器異常丟包故障

2020-05-20 00:33:30河南劉京義
網(wǎng)絡(luò)安全和信息化 2020年5期
關(guān)鍵詞:故障

■ 河南 劉京義

編者按:筆者遇到一例服務(wù)器異常丟包的問題,一般來說該故障大多是由帶寬被占滿引發(fā)的,但這次的故障卻并不是帶寬引起的,究竟是什么原因呢?

某單位數(shù)據(jù)中心的一臺服務(wù)器最近經(jīng)常出現(xiàn)異常丟包的問題。其表現(xiàn)為在訪問量不大的情況下一切正常,但是如果數(shù)據(jù)流量很大時,就會不斷出現(xiàn)丟包的問題,給正常的業(yè)務(wù)帶來的很大的影響。

該服務(wù)器安裝的是Cent OS 6.X系統(tǒng),使用的是四核的CPU和16GB的內(nèi)存。既然是丟包故障,很可能是因為帶寬占滿引發(fā)的,但是查看相關(guān)的監(jiān)控信息,發(fā)現(xiàn)其使用的千兆網(wǎng)卡上流量才幾百兆每秒,并沒有占滿帶寬,顯然并不是因為該問題引發(fā)的。

故障排查

登錄到該機上,執(zhí)行“top”命令,在返回信息中的“l(fā)oad average”欄中顯示系統(tǒng)的負(fù)荷并不大,在“Kib Mem”欄中顯示內(nèi)存使用量一般,還有大量的空閑內(nèi)存,顯然并不是因為系統(tǒng)超負(fù)荷運行導(dǎo)致的上述問題。

但 是,在“%Cpu(s):”欄中的“si”項的數(shù)值為39.1,對 于“si”(即time spent servicing software interrupts)來說,表示的是軟中斷占用CPU資源的百分比,這里的數(shù)值明顯過高,上述故障是不是因為中斷異常造成的呢?

因此,執(zhí)行“cat/proc/interrupts”命令,查看系統(tǒng)中斷情況。在返回信息中顯示所有設(shè)備的中斷分布參數(shù),其中第一列為具體的中斷 號,從“cpu0”到“cpu3”各列中顯示各CPU核心處理的中斷數(shù)量。在最后一列顯示與中斷號對應(yīng)的硬件設(shè)備名稱,不同的設(shè)備使用的中斷號是不同的。例如,時鐘的中斷號為0,鍵盤中斷號為1,硬盤中斷號為15,網(wǎng)卡中斷號為16等。并且中斷是具有優(yōu)先級的,中斷號越小其擁有的優(yōu)先級越高。

從網(wǎng)卡“eth0”對應(yīng)的中斷分布情況來看,從系統(tǒng)啟動至今CPU1處理的中斷數(shù)量最多,達(dá)到幾百萬次。但是其他幾個CPU核心處理的中斷則很少,甚至為0,這說明多核CPU對于網(wǎng)卡中斷的處理是不均衡的。

對于不同的計算機硬件來說,其和CPU進行通訊實際上是通過中斷實現(xiàn)的。例如當(dāng)網(wǎng)卡接收到數(shù)據(jù)包時,就會產(chǎn)生中斷信號給CPU,CPU就會中斷當(dāng)前的工作,通知系統(tǒng)內(nèi)核有新的數(shù)據(jù)包到來,內(nèi)核就會調(diào)用中斷處理程序加以響應(yīng),將數(shù)據(jù)包從網(wǎng)卡緩存區(qū)中復(fù)制到內(nèi)存進行處理。

如果沒有中斷機制,那么當(dāng)網(wǎng)卡緩沖區(qū)發(fā)生溢出時,就會出現(xiàn)數(shù)據(jù)包被丟棄的問題。CPU利用中斷號來區(qū)分不同的硬件,計算機中的不同硬件擁有不同的中斷號。中斷其實就是一種電信號,由硬件產(chǎn)生并發(fā)送到中斷控制器上。中斷分為硬中斷和軟中斷,前者是由硬件主動產(chǎn)生,處理速度很快,可以通過CPU屏蔽位進行屏蔽。后者是由軟件發(fā)送給系統(tǒng)內(nèi)核的中斷信號,響應(yīng)速度較慢,屬于指令方式不能屏蔽。

執(zhí)行“mpstat -P ALL 2”命令,按照每隔兩秒的頻率查看所有CPU核心的狀態(tài)信息,在其中的“CPU”列中顯示所有的CPU核心數(shù),在“%soft”列中顯示對應(yīng)CPU核心處理的軟中斷數(shù)量,在“%irq”列中顯示其處理的硬中斷數(shù)量。可以看到只有CPU1在忙于處理軟中斷,其余的CPU核心則處于則比較空閑。因為網(wǎng)卡的中斷號為16,因此執(zhí)行“cat/proc/irq/16/smp_affinity”命令,查看中斷親緣性配置信息。

其對應(yīng)的參數(shù)為“smp_affinity”,顯示的數(shù)值為2,其使用的是十六進制,對應(yīng)的二進制為“0010”,對應(yīng)的就是CPU1。如果顯示為1/4/8/10/20/40/80的話,對應(yīng)的是CPU0/2/4/5/6/7/8等。與“smp_affinity”參數(shù)關(guān)聯(lián)還有“smp_affinity_list”,其采用的是十進制。兩者的配置信息起著相同的作用。

例如,執(zhí)行“echo 1/proc/irq/16/smp_affinity_list”命令,可以激活CPU0核心處理軟中斷。再次執(zhí)行“mpstat -P ALL 2”命令,可以看到CPU0已經(jīng)開始處理大量的中斷信息了。

故障解決

根據(jù)以上分析,對于多核CPU來說,在處理網(wǎng)卡中斷時其實并沒有發(fā)揮真正的作用,僅僅是其中某個CPU核心在應(yīng)對大量的中斷請求。

這對于一般的應(yīng)用場景來說問題不大,但是對于高流量的服務(wù)器來說,就顯示難堪重負(fù)了。因為高性能的服務(wù)器需要將不同的網(wǎng)卡隊列綁定到不同的CPU核心上,這樣可以將網(wǎng)卡數(shù)據(jù)包產(chǎn)生的中斷負(fù)載均衡的分布到不同的CPU核心上,避免出現(xiàn)某個CPU核心忙碌,其它核心閑置的情況,來盡可能的提高多核CPU處理中斷請求的能力,提高服務(wù)器整體的數(shù)據(jù)吞吐能力。

上述故障就是因為只有某個CPU核心處理網(wǎng)卡中斷,無法有效應(yīng)對大量的網(wǎng)卡數(shù)據(jù)包所產(chǎn)生的中斷請求,數(shù)據(jù)包無法全部復(fù)制到內(nèi)存加以處理,造成網(wǎng)卡緩沖區(qū)溢出引發(fā)丟包故障。

解決的方法是,讓所有的CPU核心都參與處理網(wǎng)卡中斷請求,執(zhí)行“echo f/proc/irq/16/smp_affinity”命令,讓4個CPU核心全部都用來處理網(wǎng)卡中斷,因為“f”的二進制值為“1111”,表示啟用4個CPU核心。

注意,對于單隊列網(wǎng)卡來說,僅僅執(zhí)行上述配置其實是沒有效果的。

在CentOS6.X及其以上系統(tǒng)中,內(nèi)置了RPS(Receive Packet Steering)和RFS(Receive Flow Steering)功能,可以在軟件層面模擬硬件的多隊列網(wǎng)卡功能。RPS可以對網(wǎng)卡接收包中斷中斷進行優(yōu)化,將一個或者多個隊列中的軟中斷軟中斷分布到多個CPU核心上。RFS可以應(yīng)對應(yīng)用程序所在的CPU核心和中斷處理的CPU核心不一致的情況。

將兩者分配到同一個CPU核心上。執(zhí)行“echo f/sys/class/net/eth0/queues/rx-0/rps_cpus”命令,來配置RPS功能。

執(zhí)行“sysctl net.core.rps_sock_flow_entries=32768”和“echo 32768/sys/class/net/eth0/queues/rx-0/rps_flow_cnt”命令。配置系統(tǒng)相關(guān)核心參數(shù),這里采用的是默認(rèn)值。當(dāng)然,網(wǎng)卡的名稱需要根據(jù)實際情況更改。再次執(zhí)行“mpstat -P ALL 2”命令,可以看到所有的CPU核心都開始處理網(wǎng)卡中斷請求了。當(dāng)然,也可以使用Irqbalance服務(wù),來將中斷平均分布到雖有的CPU核心上,可以有效提升系統(tǒng)性能。

執(zhí)行“rpm -qa | grep irqbalance”命令,來 查看該服務(wù)安裝情況。如果沒有安裝,可以執(zhí)行“yum search irqbalance”和“yum install irqbalance”命令,來安裝該服務(wù)。執(zhí)行“service irqbalance start”命令,啟動該服務(wù)。執(zhí)行“ps -ef|grep irqbalance”命令,查看其運行情況。該服務(wù)可以自動將中斷分布到所有的CPU核心上,來有效均衡中斷的處理操作。

如果使用的是多隊列網(wǎng)卡的話,那么就擁有了硬件 的RSS(Receive Side Scaling)功能。它可以根據(jù)網(wǎng)卡的硬件隊列數(shù)量信息,將各隊列的中斷分布到多個CPU核心上。

注意,多隊列網(wǎng)卡需要對應(yīng)的驅(qū)動支持。執(zhí)行“l(fā)spci-vvv”命令,如果返回信息中的“Ethernet controller”欄中存在“MSI-X,Enable+”之類的信息,在其后的“Count=”中數(shù)量大于1的話,就說明網(wǎng)卡支持多隊列功能。

之后執(zhí)行“grep eth0/proc/interrupts |awk'{print $NF}'”命 令,可顯示網(wǎng)卡網(wǎng)卡支持的隊列信息,例如從“eth0-TxRx-0”,“eth0-TxRx-1”到“eth0-TxRx-7”等。執(zhí)行“grep eth0-TxRx/proc/interrupts |awk '{print$1,$NF}'”命 令,顯示 各隊列對應(yīng)的中斷號,例如從161到169等。除了使用irqbalance服務(wù)將對應(yīng)的隊列綁定到目標(biāo)CPU核心外,還可以執(zhí)行以下命令,將不同的隊列綁定到CPU0到CPU4等核心上:

當(dāng)然,如果是8核甚至更多的CPU的話,只需增加對應(yīng)的的數(shù)量即可。

例如,可以執(zhí)行“echo 80/proc/irq/169/smp_affinity”命令,將第8個隊列綁定到CPU8核心上。如果已經(jīng)啟用了irqbalance服務(wù),那么手動分配是無效的。

如果網(wǎng)卡隊列和CPU核心數(shù)量不匹配,例如CPU是16核的,網(wǎng)卡隊列數(shù)量為8,將隊列分別綁定CPU0到7核心,雖然實現(xiàn)了對網(wǎng)卡中斷的均衡處理,但是其余的CPU核心依然處于閑置狀態(tài)。為此可以采用軟件方式加以處理。

執(zhí)行:

并以此類推直到執(zhí)行“echo ffff/sys/class/net/eth0/queues/rx-7/rps_cpus”命令,將8個網(wǎng)卡隊列全部綁定到所有的CPU核心上,其中的“ffff”表示16核CPU,命令執(zhí)行8次,對應(yīng)的接收隊列名稱從“rx-0”到“rx-7”。

執(zhí) 行“sysctl net.core.rps_sock_flow_entries=32768”命令,配置RFS參數(shù),來增加CPU緩存命中率,減少網(wǎng)絡(luò)延遲。執(zhí)行“l(fā)s/sys/class/net/eth0/queues/rx-*|grep queues|wc -l”命令,顯示接收隊列的數(shù)量。系統(tǒng)系統(tǒng)默認(rèn)的“rps_sock_flow_entries”參數(shù)表示系統(tǒng)期望的同一時間的活躍連接數(shù),默認(rèn)值為“32768”。一般來說,它需要除以網(wǎng)卡接收隊列數(shù),來得到“rps_flow_cnt”參數(shù)的值,該參數(shù)和RFS密切相關(guān)。這里假設(shè)為8個接收隊列,所以其值為4096。

執(zhí)行以下命令:

并以此類推,直到執(zhí)行“echo 4096/sys/class/net/eth0/queues/rx-7/rps_flow_cnt”命令,分別設(shè)置所有接收隊列中“rps_flow_cnt”參數(shù)的值。這樣,就可以將網(wǎng)卡所有接收隊列綁定到16個CPU核心上,讓所有的CPU核心都可以處理網(wǎng)卡中斷。

當(dāng)然,這里僅僅是舉例說明,具體的網(wǎng)卡名稱和隊列名稱需要根據(jù)實際情況來定。

猜你喜歡
故障
故障一點通
奔馳R320車ABS、ESP故障燈異常點亮
WKT型可控停車器及其故障處理
基于OpenMP的電力系統(tǒng)并行故障計算實現(xiàn)
電測與儀表(2016年5期)2016-04-22 01:13:50
故障一點通
故障一點通
故障一點通
故障一點通
故障一點通
江淮車故障3例
主站蜘蛛池模板: 中文字幕天无码久久精品视频免费 | 久久精品66| a国产精品| 国产一区在线视频观看| 国产成人一区| 日韩精品无码不卡无码| 亚洲a级在线观看| 国产高清精品在线91| 国产鲁鲁视频在线观看| 亚洲无码A视频在线| 日本亚洲成高清一区二区三区| 51国产偷自视频区视频手机观看| 免费jizz在线播放| 91偷拍一区| 成人一级黄色毛片| 国产精品久久自在自2021| 久久精品国产免费观看频道| 亚洲天堂首页| 国产玖玖玖精品视频| 久久国产亚洲欧美日韩精品| 91无码视频在线观看| 熟妇丰满人妻av无码区| 综合色亚洲| 亚洲成人福利网站| 在线观看国产网址你懂的| 免费国产无遮挡又黄又爽| 亚洲高清在线天堂精品| 免费无码AV片在线观看国产| 亚洲色精品国产一区二区三区| 国产久操视频| 在线免费观看AV| 国产乱论视频| 久久香蕉欧美精品| 国产在线一区视频| 超碰色了色| 国产成人夜色91| 亚洲AV无码一区二区三区牲色| 五月婷婷欧美| 久久永久视频| 亚洲精品图区| 精品伊人久久久久7777人| 美女裸体18禁网站| 亚洲久悠悠色悠在线播放| 五月丁香伊人啪啪手机免费观看| 97久久人人超碰国产精品| 东京热一区二区三区无码视频| 在线毛片网站| 国产精品视频免费网站| 亚洲欧洲日韩综合色天使| 在线观看热码亚洲av每日更新| 精品無碼一區在線觀看 | 久久先锋资源| 久久国产精品电影| 国产香蕉97碰碰视频VA碰碰看 | 久久久精品国产SM调教网站| 免费无遮挡AV| 国产高清在线观看| 又爽又大又光又色的午夜视频| 亚洲国模精品一区| 在线另类稀缺国产呦| 久久久久国产一级毛片高清板| 国产黄在线观看| 看av免费毛片手机播放| 中国黄色一级视频| 综合久久五月天| 一级毛片不卡片免费观看| 亚洲日韩精品无码专区97| 四虎影院国产| 四虎永久免费在线| 欧美日韩理论| 国产av剧情无码精品色午夜| 狼友av永久网站免费观看| 国产精品青青| 免费aa毛片| 国内精自视频品线一二区| 久久综合国产乱子免费| 日韩色图区| 国产97视频在线| 欧美人与牲动交a欧美精品| 国产精品太粉嫩高中在线观看| 色婷婷色丁香| 日本午夜网站|