青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

昨天優化了一下服務器的網絡部分,測試了一下,在不考慮吞吐率的情況下,并發5W

昨天優化了一下服務器的網絡部分,測試了一下,在不考慮吞吐率的情況下,并發5W

下面是俺的一些經驗

1.基本結構

服務器結構如下圖
33.JPG

使用2個不同的線程池來分別來處理 網絡數據包的發送接收 以及 消息的處理.
這樣可以避免繁重的業務處理導致網絡數據包接收的阻塞.

根據服務器CPU情況創建線程. 服務器是2*4核心. 即雙CPU, 每CPU上有4個核心.
在邏輯上就有8個處理單元.

在第1個CPU上的每個核心上創建x個線程用于發送和接收.
即: 發送接收線程池有線程數 x*4個,位于第1個CPU上.

在第2個CPU上的每個核心上創建y個線程,用于業務處理
即: 業務處理線程池有線程數 y*4個,位于第2個CPU上

具體的x,y應該按照實際的系統設置.設置的原則是:
1. 盡量小的線程上下文切換開銷
2. 盡量高的CPU利用率(注意,是利用率,不是占用率)
一般來說,y>x

BOOL?WINAPI?SetProcessAffinityMask(
??__in??????????HANDLE?hProcess,
??__in??????????DWORD_PTR?dwProcessAffinityMask
);
// ?此API用于設置進程的CPU親緣屬性,第2個參數是"位或"表示.?對于2*4核系統,則設置位0xFF

DWORD_PTR?WINAPI?SetThreadAffinityMask(
??__in??????????HANDLE?hThread,
??__in??????????DWORD_PTR?dwThreadAffinityMask
);
// ?此API用于設置線程的CPU親緣屬性,第2個參數是"位或"表示.?需要注意的是,dwThreadAffinityMask必須是dwProcessAffinityMask的子集

DWORD?WINAPI?SetThreadIdealProcessor(
??__in??????????HANDLE?hThread,
??__in??????????DWORD?dwIdealProcessor
);
// ?此API用于設置線程的首選CPU,操作系統在調度線程時優先考慮首選核心,?第2個參數是以0為基數的處理器ID

上述3個API都可以用來設置線程的執行單元是哪個. 一般來說,線程調度是由操作系統負責.人為的控制有時候反而會降低效率.但針對高負荷的線程處理,完全可以指定獨立的CPU來優化.
比如,設定dwThreadAffinityMask=0xF,表示此線程在1-4核上執行,具體是哪個核還是由操作系統調度.這樣可以將不同用途的線程分配到不同的CPU上,因為每個CPU有自己獨立的L2 Cache,這樣做可以避免不同類型線程在不同CPU之間切換帶來的損失.
參考: 面向共享高速緩存多核系統的軟件技術

上面所說的這些都只是理論,到實際的系統中,必須經過反復的性能對比試驗來確定最佳方案

2. 登陸數據的接收
在IOCP中,經常使用AcceptEx來投遞前置式的accept請求. 這里有一個問題: 登陸數據如何接收?
一般來說,登陸數據包是連接后的第1個或者第2個數據包.必須先保證一個TCP連接是信任的才能進行業務處理.有下列方法

方法1:
如果登陸數據包是第一個客戶端發送的數據包,那么AcceptEx的dwReceiveDataLength 可以設置成登陸數據包大小,AcceptEx只有在收到此數據包后才投遞到完成隊列進行驗證

方法2:
AcceptEx的dwReceiveDataLength 設置成0,表示在接收到連接后立即投遞到完成隊列.在完成隊列中,投遞WSARecv獲得登陸數據包

方法3:
AcceptEx的dwReceiveDataLength 設置成0,表示在接收到連接后立即投遞到完成隊列.在Accept時,使用阻塞的recv來接收登陸數據包,如果recv超時,則踢掉連接

這3種方式沒有哪種能夠徹底的解決D.O.S的問題,只能在一定程度上緩解.
方法1:客戶端只連接不發送數據,大量的這種連接會導致拒絕服務(一般采用附加線程定時檢測超時)
方法2:客戶端只連接不發送數據,大量的這種連接會導致拒絕服務(一般采用附加線程定時檢測超時)
方法3:recv的超時時間設置很敏感,過大的超時時間同樣會因為大量連接而拒絕服務(recv超時時間設定得如果合適是能夠在一定程度上緩解)

3. 設置LINGER縮短連接關閉時間

// ?éè??SO_DONTLINGER
BOOL?bDontLinger? = ?FALSE;
::setsockopt(?lpWsaOverlappedPlus
-> hSocket
????,?SOL_SOCKET
????,?SO_DONTLINGER
????,?(
const ? char * ) & bDontLinger
????,?sizeof(BOOL)
????);

// ?éè??SO_LINGER
linger?stLinger;
stLinger.l_onoff?
= ? 1 ;
stLinger.l_linger?
= ? 0 ;
::setsockopt(?lpWsaOverlappedPlus
-> hSocket
????,?SOL_SOCKET
????,?SO_LINGER
????,?(CHAR
* ) & stLinger
????,?sizeof(linger)
????);

4. 修改注冊表,修改TCP參數,具體的含義可以查閱MSDN
Windows?Registry?Editor?Version? 5.00

[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Performance ]
" MaxUserPort " = dword:0000fffe

[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ]
" TCPFinWait2Delay? " = dword:0000001e
" SynAttackProtect " = dword: 1 ?
" TcpMaxPortsExhausted " = dword: 5 ?
" TcpMaxHalfOpen " = dword: 500 ?
" TcpMaxHalfOpenRetried " = dword: 400 ?
" TcpMaxConnectResponseRetransmissions " = dword: 2 ?
" TcpMaxDataRetransmissions " = dword: 2 ?
" EnablePMTUDiscovery " = dword: 0 ?
" KeepAliveTime " = dword: 300000 ?
" NoNameReleaseOnDemand " = dword: 1 ?
" DefaultTTL " = dword: 256 ?
" EnableDeadGWDetect " = dword: 0 ?
" DisableIPSourceRouting " = dword: 1 ?
" EnableFragmentChecking " = dword: 1 ?
" EnableMulticastForwarding " = dword: 0 ?
" IPEnableRouter " = dword: 0 ?
" EnableAddrMaskReply " = dword: 0 ?
" TcpTimedWaitDelay " = dword:0000001e

[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters ] ?
" EnableICMPRedirect " = dword: 0 ?
" EnableDynamicBacklog " = dword: 1 ?
" MinimumDynamicBacklog " = dword: 20 ?
" MaximumDynamicBacklog " = dword: 20000 ?
" DynamicBacklogGrowthDelta " = dword: 10 ?

Feedback

# re: 昨天優化了一下服務器的網絡部分,測試了一下,在不考慮吞吐率的情況下,并發5W   回復  更多評論   

2009-01-16 11:16 by true
一個很關鍵的問題:
對于一個客戶端的收包及發包順序是怎么判斷的呢,舉例:客戶端給服務器傳輸文件,肯定是多次發包,同時服務器給客戶端多次確認,這種情況,請問是怎么實現的同步的呢?或者是怎么解決的文件傳輸的呢

# re: 昨天優化了一下服務器的網絡部分,測試了一下,在不考慮吞吐率的情況下,并發5W   回復  更多評論   

2009-01-16 18:07 by tzhang
可以提供個代碼下載么?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲在线播放| 国产精品私拍pans大尺度在线 | 亚洲视频在线观看免费| 一区二区欧美精品| 亚洲欧美国产精品桃花| 欧美一区二区三区免费大片| 久久久久久久高潮| 欧美激情一区二区三区成人| 国产精品高潮呻吟久久av无限| 国产日本精品| 亚洲国产欧美国产综合一区| 亚洲欧洲一级| 亚洲伊人第一页| 美女日韩欧美| av成人免费在线观看| 亚洲欧美视频| 亚洲国产另类 国产精品国产免费| 欧美韩国日本综合| 中文久久乱码一区二区| 久久精品国产亚洲aⅴ| 欧美经典一区二区| 国产一区二区剧情av在线| 亚洲精品免费在线| 欧美在线一级va免费观看| 亚洲成色www久久网站| 亚洲综合色婷婷| 欧美激情亚洲国产| 国产一区二区看久久| 制服丝袜亚洲播放| 欧美成人免费网站| 性色av一区二区三区在线观看| 免费国产一区二区| 国产主播一区| 亚洲午夜三级在线| 亚洲黄一区二区三区| 久久国产精品72免费观看| 国产精品扒开腿爽爽爽视频| 亚洲人在线视频| 久久亚洲精品网站| 午夜精品久久久久久99热软件| 欧美韩国一区| 91久久久一线二线三线品牌| 久久婷婷国产综合精品青草| 亚洲性av在线| 欧美先锋影音| 国产精品99久久久久久白浆小说| 欧美福利在线| 美脚丝袜一区二区三区在线观看 | 精品va天堂亚洲国产| 亚洲欧美日韩综合aⅴ视频| 亚洲国产专区校园欧美| 久久久久五月天| 国产亚洲精品自拍| 久久岛国电影| 久久av老司机精品网站导航| 国产欧美一区二区精品秋霞影院| 亚洲欧美区自拍先锋| 日韩一级片网址| 欧美日韩国产不卡| 在线视频欧美日韩| 夜夜嗨av色综合久久久综合网| 欧美精品久久99| 日韩亚洲在线| 日韩图片一区| 欧美性做爰毛片| 欧美在线精品免播放器视频| 亚洲欧美国产精品va在线观看 | 中文国产亚洲喷潮| 99精品视频网| 国产视频欧美| 欧美国产视频一区二区| 欧美国产一区二区三区激情无套| 亚洲精品女人| 国产精品国产三级国产| 欧美片在线观看| 日韩一区二区精品| 日韩亚洲欧美成人一区| 欧美性大战久久久久| 欧美一激情一区二区三区| 先锋影音久久久| 1204国产成人精品视频| 亚洲黑丝在线| 国产精品丝袜91| 免费观看欧美在线视频的网站| 欧美成人激情视频免费观看| 亚洲午夜精品国产| 欧美一区二区三区另类| 最新国产拍偷乱拍精品| 日韩午夜精品视频| 国产一区二区av| 亚洲欧洲午夜| 国产一区二区三区在线观看视频| 欧美激情国产日韩| 国产精品爽黄69| 欧美高清视频在线播放| 国产精品美女在线| 亚洲黄色一区| 国产日韩一区二区三区在线播放 | 日韩视频免费| 国产精品午夜电影| 欧美成人一区在线| 国产精品日本一区二区| 亚洲福利在线看| 国产日产欧美一区| 亚洲国产精品一区二区第四页av| 国产精品视频精品| 亚洲国产毛片完整版| 国产主播一区二区| 亚洲一区精品电影| 99热免费精品在线观看| 亚洲一区二区三区在线视频| 亚洲美女区一区| 久久久久久日产精品| 午夜精彩国产免费不卡不顿大片| 欧美激情一二三区| 欧美激情网友自拍| 在线观看视频日韩| 欧美在线观看视频一区二区| 亚洲主播在线| 欧美精品亚洲一区二区在线播放| 久久免费高清视频| 国产精品推荐精品| 中文国产一区| 亚洲午夜女主播在线直播| 欧美激情按摩在线| 欧美激情四色 | 欧美精品不卡| 欧美搞黄网站| 亚洲第一页中文字幕| 久久蜜臀精品av| 另类酷文…触手系列精品集v1小说| 国产精品日韩在线一区| 亚洲视频一区二区在线观看| 亚洲欧洲在线观看| 亚洲视频欧美视频| 欧美mv日韩mv亚洲| 欧美激情精品久久久| 一区二区在线观看视频| 久久成人亚洲| 久久婷婷人人澡人人喊人人爽| 韩国成人精品a∨在线观看| 久久精品成人| 欧美99久久| 亚洲靠逼com| 欧美日韩免费高清| 一区二区高清在线| 欧美一区二区三区在线观看视频| 国产日韩欧美成人| 久久影音先锋| 亚洲免费成人| 久久福利精品| 亚洲国产导航| 欧美日韩在线播放| 午夜精品久久久久影视| 美国十次了思思久久精品导航| 亚洲国产精品va在线观看黑人| 欧美精品综合| 午夜一级久久| 亚洲大胆人体在线| 亚洲综合三区| 亚洲二区在线| 国产精品久久久久久久一区探花| 先锋亚洲精品| 91久久国产综合久久91精品网站| 亚洲午夜国产一区99re久久| 国产性做久久久久久| 免费成人高清| 亚洲女性裸体视频| 欧美成熟视频| 性高湖久久久久久久久| 亚洲国产精品va在线看黑人 | 欧美在线1区| 亚洲国产cao| 国产精品美女视频网站| 蜜臀91精品一区二区三区| 一区二区高清| 欧美国产乱视频| 欧美一区二区三区免费视频| 亚洲精品国产精品国自产观看浪潮| 国产精品高清免费在线观看| 毛片一区二区三区| 欧美亚洲免费在线| 亚洲最新视频在线播放| 欧美电影在线| 久久久天天操| 欧美亚洲综合久久| 亚洲视频国产视频| 亚洲国产日韩欧美在线动漫| 国产一区二区黄| 国产精品久久一级| 欧美日韩视频专区在线播放| 麻豆av一区二区三区久久| 欧美一区免费视频| 亚洲一区二区三区在线看| 亚洲精品社区| 亚洲欧洲日夜超级视频| 欧美大尺度在线观看| 久久尤物电影视频在线观看| 欧美一区国产在线| 亚洲欧美一区二区三区极速播放|