1、前言

  昨天總結(jié)了一下Linux下網(wǎng)絡(luò)編程“驚群”現(xiàn)象,給出Nginx處理驚群的方法,使用互斥鎖。為例發(fā)揮多核的優(yōu)勢,目前常見的網(wǎng)絡(luò)編程模型就是多進(jìn)程或多線程,根據(jù)accpet的位置,分為如下場景:

  (1)單進(jìn)程或線程創(chuàng)建socket,并進(jìn)行l(wèi)isten和accept,接收到連接后創(chuàng)建進(jìn)程和線程處理連接

 ?。?)單進(jìn)程或線程創(chuàng)建socket,并進(jìn)行l(wèi)isten,預(yù)先創(chuàng)建好多個(gè)工作進(jìn)程或線程accept()在同一個(gè)服務(wù)器套接字、

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)                      大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

這兩種模型解充分發(fā)揮了多核CPU的優(yōu)勢,雖然可以做到線程和CPU核綁定,但都會(huì)存在:

  • 單一listener工作進(jìn)程胡線程在高速的連接接入處理時(shí)會(huì)成為瓶頸

  • 多個(gè)線程之間競爭獲取服務(wù)套接字

  • 緩存行跳躍

  • 很難做到CPU之間的負(fù)載均衡

  • 隨著核數(shù)的擴(kuò)展,性能并沒有隨著提升

參考:

網(wǎng)友評論