亚洲成a人片在线观看www_二区免费视频_免费在线观看毛片_国产精品www爽爽爽视频_国产一区av在线_区美毛片

IT之道-艾銻知道

您當(dāng)前位置: 主頁 > IT服務(wù) > 網(wǎng)絡(luò)服務(wù) >

TCP本機(jī)客戶端連接本機(jī)服務(wù)器引起的相關(guān)問題


2015-10-09 09:16 作者:admin 瀏覽量:

u=2716808243,3968434750&fm=21&gp=0.jpg


  我們的服務(wù)器上啟了一個(gè)redis服務(wù)端,偵聽0.0.0.0的1234端口,同處在本機(jī)的另外一個(gè)進(jìn)程會(huì)頻繁發(fā)起到該服務(wù)端的短連接,結(jié)果導(dǎo)致了兩個(gè)問題:

  1.大量的TIME_WAIT狀態(tài)的連接;(電腦維護(hù)外包

  2.發(fā)起連接的進(jìn)程的CPU占用率接近100%。

  這兩個(gè)結(jié)果嚴(yán)重影響了我們網(wǎng)關(guān)的性能,在分析具體原因之前,首先做一個(gè)提倡,那就是:本機(jī)連接本機(jī),首選UNIX域套接字而不是TCP!

  首先我們來看看問題1。TIME_WAIT就不多說了,只要任何一端主動(dòng)斷開連接,那么它最終可能將會(huì)進(jìn)入TIME_WAIT狀態(tài),具體是否會(huì)進(jìn)入在Linux上取決于幾個(gè)因素,第一,有沒有兩端開啟timestamps,如果開啟了,有沒有在服務(wù)端開啟recycle,如果開啟了,那么TIME_WAIT套接字就會(huì)迅速消失,也就是說,想讓recycle起作用,一定要開啟timestamps。如果沒有timestamps,那么就會(huì)有大量的TIME_WAIT狀態(tài)的套接字。

  在Linux內(nèi)核協(xié)議棧的實(shí)現(xiàn)中,所有連接本機(jī)的數(shù)據(jù)流,其路由選擇最終都會(huì)到定向到loopback,如果沒有綁定源IP地址,那么源/目標(biāo)IP地址均為127.0.0.1!如果服務(wù)端口是固定的,那么最終會(huì)接受65535-1個(gè)連接,減1的原因在于服務(wù)端已經(jīng)bind了服務(wù)端口,因此客戶端不能再次bind。這是合理的,因?yàn)榘凑账脑M唯一性考慮,一個(gè)服務(wù)只能接受一個(gè)特定IP地址的65535個(gè)連接或者65534個(gè)連接,但是問題是,如果需求巨大,這顯然不能滿足要求,你要知道,作為服務(wù)器而言,它要考慮的是總的最大并發(fā)連接數(shù),一臺(tái)機(jī)器上同時(shí)發(fā)起6萬多個(gè)連接的可能性并不大,因此TCP在大多數(shù)情況下是合理,采用16bit的端口號剛剛好,因?yàn)閰f(xié)議頭不能太大,否則載荷率就會(huì)變小,這顯然是網(wǎng)絡(luò)傳輸所要求的,然而本機(jī)連本機(jī)時(shí),并不需要網(wǎng)絡(luò)傳輸,你想當(dāng)然會(huì)認(rèn)為有多少需求就要都要滿足,不過TCP并不適合這種場合。(it外包服務(wù)公司

  本機(jī)連本機(jī),沒有網(wǎng)絡(luò)傳輸帶來的延遲,吞吐限制也僅限于本機(jī)資源利用,因此并發(fā)10萬甚至更多的需求都是合理的,可是TCP并不能滿足,原因就在于它只有16bit的端口號,目標(biāo)端口固定,同時(shí)只能有65534個(gè)連接。如何解決呢?我們知道127.0.0.0/8都是屬于loopback的,我們可以采用不同的源IP地址,如果想這么做,有兩個(gè)選擇,那就是要么客戶端bind源IP為127.x.y.z,要么SNAT成127.x.y.z,這樣就可以接受海量的連接需求了。但是這并不是最終的解決方案,為什么非要用TCP呢?TCP本來就是為網(wǎng)絡(luò)傳輸設(shè)計(jì)的,它的流控應(yīng)對不同的主機(jī),擁控應(yīng)對反復(fù)無常的網(wǎng)絡(luò),在本機(jī),這些都不是問題,所以本機(jī)連本機(jī),最好使用本機(jī)套接字,比如UNIX域套接字。

  再來看問題2,一個(gè)連接本機(jī)的TCP數(shù)據(jù)包最終到達(dá)了loopback的xmit發(fā)送函數(shù),其中簡單的調(diào)度了本CPU上的一個(gè)軟中斷處理,然后會(huì)在下一次中斷結(jié)束后調(diào)度其執(zhí)行,這有很大幾率是在當(dāng)前發(fā)送進(jìn)程的上下文中進(jìn)行的,也就是說,發(fā)送進(jìn)程在其上下文中進(jìn)行了發(fā)送操作,而此時(shí)軟中斷借用了其上下文觸發(fā)了接收操作,再然后,LOCK的開銷就很明顯,由于大量的TW套接字的insert和delete,需要頻繁LOCK哈希表,這種開銷完全記帳到了發(fā)送進(jìn)程的名下,也是不公平的。

  注意,Linux內(nèi)核中,softirq會(huì)在兩種上下文中執(zhí)行,一種是硬件中斷后的任意上下文中,一種是每CPU一個(gè)內(nèi)核線程的上下文中,后者會(huì)記帳給top命令的si百分比,前者則會(huì)記帳給任意被中斷的進(jìn)程。(網(wǎng)絡(luò)外包公司

  艾銻無限是中國領(lǐng)先IT外包服務(wù)商,專業(yè)為企業(yè)提供IT運(yùn)維外包、電腦維護(hù)網(wǎng)絡(luò)維護(hù)、網(wǎng)絡(luò)布線、辦公設(shè)備維護(hù)、服務(wù)器維護(hù)數(shù)據(jù)備份恢復(fù)、門禁監(jiān)控、網(wǎng)站建設(shè)等多項(xiàng)IT服務(wù)外包,服務(wù)熱線:400-650-7820 聯(lián)系電話:010-62684652 咨詢QQ1548853602 地址:北京市海淀區(qū)北京科技會(huì)展2號樓16D,用心服務(wù)每一天,為企業(yè)的發(fā)展提升更高的效率,創(chuàng)造更大的價(jià)值。

  更多的IT外包信息盡在艾銻無限http://www.zhengyunzhengyun.cn


相關(guān)文章

IT外包服務(wù)
二維碼 關(guān)閉
主站蜘蛛池模板: 久久亚洲Aⅴ无码精品色午夜 | 欧美+国产+日产+韩国 | av免费网站 | 欧美黄在线| 国产欧美精品区一区二区三区 | 国产精品一卡二卡三卡 | 国产精品久久久久久妇女 | 欧美生活1级 | 国产性色αv视频免费 | 精品久久久久免费影院的功能介绍 | 国产高潮流白浆喷水在线观看 | 日本免费一区二区三区高清视频 | 成人综合久久 | 日本乱人片一区二区三区 | 与丰满少妇做爽视频 | 国产乱妇乱子视频在线播放国产 | 亚洲性久久9久久爽 | 韩国中文字幕在线观看 | j8又粗又硬又大又爽又长国产 | 国产精品不卡在线观看 | 久久一区二区三区国产精品 | 国产亚洲精aa在线看 | 免费国产在线无码视频 | 日韩精品手机在线 | 性色88av老女人视频 | 亚洲成人黄色在线 | xxx.www国产| 国产精品一区2区3区 | 久久久久久亚洲综合影院 | 久热这里只精品国产8 | 中出少妇 | 人妻无码中文专区久久综合 | 99久久久久久国产精品 | 欧美交 | 中文字幕视频在线观看免费 | 国产乱码一区二区三区四区 | 日韩淫视频 | av资源网在线观看 | 日产精品一线二线三线区 | 欧美日韩精品码免费专区 | 草草久|