华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:Linux認(rèn)證 > 綜合輔導(dǎo) > 文章內(nèi)容
  

Linux教程:淺談UDP(數(shù)據(jù)包長度,收包能力,丟包及進(jìn)程結(jié)構(gòu)選擇)

來源:Linux社區(qū)  [ 2016年3月1日 ] 【

下面介紹一下應(yīng)用程序來不及處理而導(dǎo)致udp丟包的常見原因:

1、linux內(nèi)核socket緩沖區(qū)設(shè)的太小
# cat /proc/sys/net/core/rmem_default

# cat /proc/sys/net/core/rmem_max

可以查看socket緩沖區(qū)的缺省值和最大值。

rmem_default和rmem_max設(shè)置為多大合適呢?如果服務(wù)器的性能壓力不大,對處理時延也沒有很嚴(yán)格的要求,設(shè)置為1M左右即可。如果服務(wù)器的性能壓力較大,或者對處理時延有很嚴(yán)格的要求,則必須謹(jǐn)慎設(shè)置rmem_default 和rmem_max,如果設(shè)得過小,會導(dǎo)致丟包,如果設(shè)得過大,會出現(xiàn)滾雪球。

2、服務(wù)器負(fù)載過高,占用了大量cpu資源,無法及時處理linux內(nèi)核socket緩沖區(qū)中的udp數(shù)據(jù)包,導(dǎo)致丟包。

一般來說,服務(wù)器負(fù)載過高有兩個原因:收到的udp包過多;服務(wù)器進(jìn)程存在性能瓶頸。如果收到的udp包過多,就要考慮擴(kuò)容了。服務(wù)器進(jìn)程存在性能瓶頸屬于性能優(yōu)化的范疇,這里不作過多討論。

3、磁盤IO忙

服務(wù)器有大量IO操作,會導(dǎo)致進(jìn)程阻塞,cpu都在等待磁盤IO,不能及時處理內(nèi)核socket緩沖區(qū)中的udp數(shù)據(jù)包。如果業(yè)務(wù)本身就是IO密集型的,要考慮在架構(gòu)上進(jìn)行優(yōu)化,合理使用緩存降低磁盤IO。

這里有一個容易忽視的問題:很多服務(wù)器都有在本地磁盤記錄日志的功能,由于運維誤操作導(dǎo)致日志記錄的級別過高,或者某些錯誤突然大量出現(xiàn),使得往磁盤寫日志的IO請求量很大,磁盤IO忙,導(dǎo)致udp丟包。

對于運維誤操作,可以加強(qiáng)運營環(huán)境的管理,防止出錯。如果業(yè)務(wù)確實需要記錄大量的日志,可以使用內(nèi)存log或者遠(yuǎn)程log。

4、物理內(nèi)存不夠用,出現(xiàn)swap交換

swap交換本質(zhì)上也是一種磁盤IO忙,因為比較特殊,容易被忽視,所以單列出來。

只要規(guī)劃好物理內(nèi)存的使用,并且合理設(shè)置系統(tǒng)參數(shù),可以避免這個問題。

5)磁盤滿導(dǎo)致無法IO

沒有規(guī)劃好磁盤的使用,監(jiān)控不到位,導(dǎo)致磁盤被寫滿后服務(wù)器進(jìn)程無法IO,處于阻塞狀態(tài)。最根本的辦法是規(guī)劃好磁盤的使用,防止業(yè)務(wù)數(shù)據(jù)或日志文件把磁盤塞滿,同時加強(qiáng)監(jiān)控,例如開發(fā)一個通用的工具,當(dāng)磁盤使用率達(dá)到80%時就持續(xù)告警,留出充足的反應(yīng)時間。

UDP收包能力測試

測試環(huán)境

處理器:Intel(R) Xeon(R) CPU X3440 @ 2.53GHz,4核,8超線程,千兆以太網(wǎng)卡,8G內(nèi)存

模型1

單機(jī),單線程異步UDP服務(wù),無業(yè)務(wù)邏輯,只有收包操作,除UDP包頭外,一個字節(jié)數(shù)據(jù)。

測試結(jié)果

進(jìn)程個數(shù)

1

2

4

8

平均處理速度(包/秒)

791676.1

1016197

1395040

1491744

網(wǎng)卡流量(Mb/s)

514.361

713.786

714.375

714.036

CPU占用情況(%)

100

200

325

370

現(xiàn)象:

1、單機(jī)UDP收包處理能力可以每秒達(dá)到150w左右。

2、處理能力隨著進(jìn)程個數(shù)的增加而增強(qiáng)。

3、在處理達(dá)到峰值時,CPU資源并未耗盡。

結(jié)論:

1、UDP的處理能力還是非?捎^的。

2、對于現(xiàn)象2和現(xiàn)象3,可以看出,性能的瓶頸在網(wǎng)卡,而不在CPU,CPU的增加,處理能力的上升,來源于丟包(UDP_ERROR)個數(shù)的減少。

本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
临湘市| 乌鲁木齐县| 衡水市| 崇阳县| 云安县| 开阳县| 梅州市| 博罗县| 荥经县| 三门峡市| 乐清市| 岫岩| 韶关市| 乌拉特中旗| 寿阳县| 海阳市| 辽宁省| 延长县| 安丘市| 易门县| 克什克腾旗| 山阳县| 阿巴嘎旗| 鄱阳县| 琼海市| 昌江| 大庆市| 进贤县| 福清市| 南昌市| 濮阳县| 汕头市| 瑞金市| 湘潭县| 通州市| 浑源县| 沽源县| 丹江口市| 广河县| 商丘市| 德庆县|