什麼樣的伺服器才能叫做大併發

2021-06-14 21:54:32 字數 1379 閱讀 1203

我覺得伺服器在成為大併發前,首先要能承受住大併發的壓力,無論能否正常返回,首先不能崩潰。

apache和nginx是兩個出名的伺服器,先來分析一下它們。

大量使用者訪問的時候,apache會建立大量的程序數,吃掉大量的記憶體,而nginx記憶體這塊做得很好,不過這也是nginx的瓶頸所在。

所謂有記憶體就是給你花的,你不花怎麼對得起伺服器呢,何況現在的伺服器一般都是高配。

快速響應與記憶體大小其實是兩個極端,apache與nginx正好在這兩個極端上。

apache  為每乙個connection 分配乙個程序,當connection 井噴時,程序數也隨之井噴。

nginx 的程序由使用者設定,單個worker程序就可以處理使用者所有的事件,epoll_wait 返回大量事件(a,b,c,d,e)時,伺服器會順序執行的所有的事件,事件a沒有處理完,

e是不能執行的,也不用同時分配記憶體,這樣就避免記憶體井噴的現象,當事件處理粒度大的時候,效能就出現瓶頸了。

apache 的優點在於程序數的可伸縮性,隨著連線數的變化而變化,缺點在於連線數大時會吃掉太多記憶體。

nginx優點在於所用記憶體很少,但是事件需要順序執行,伸縮性上不如apache.

所以大併發伺服器在響應速度與記憶體上必須要兼顧,當然還要是響應速度的重點,因為一切都是為了qps。

如果記憶體寶貴,可以採用nginx的epoll 方式,事件按順序執行,並且不建長連線。

如果記憶體寬裕,可以採用apache方式,伸縮性會好一些。

也許你會問我,為什麼不說說cpu的占用情況呢,其實大家要明白乙個道理,cpu占用低不一定就是好事,有事情做的時候就得趕緊做,cpu占用當然就高一點,

不占用cpu意味著就不做事,怎麼著,事件來了,你還不幹了?

qps達到什麼量級才能稱做大併發呢?

以日訪問量(pv)為2千萬來算,即 pv=2*10^7

這樣大的訪問量,如果用一台伺服器來完成(這麼大的訪問量才用一台伺服器,公司肯定扣)

每天80%的工作都是在20%的時間裡完成,按照這個理論,伺服器集中訪問時間 pt=24/4=6小時(中午2小時,傍晚2小時,晚上2小時,正常)

=18000秒,即 pt = 2*10^4

qps=pv/pt=10^3

才一千就可以達到2千萬的量級,不可思議吧。

qps=pv/pt=5*10^5

如果採用5臺伺服器(還是太扣),單台qps只需要10^5。

你在家裡試驗時,可能發現10萬的qps是不可能的,但是對於高配的伺服器其實不算什麼,而如果用50臺機子,則qps則只要1萬,家裡的pc也能達到吧,嘿嘿。

這樣大的併發量,不知從何想起。

其實人普遍都有對大東西的敬畏感,感覺那麼大的東西背後一定有高深莫測的技術,但如果這個東西是你做的,你一定不會覺得它有什麼

有機會再專門寫寫p2p流**的體會。

搭建遊戲選擇什麼樣的伺服器

伺服器需要什麼配置,需要看具體的遊戲以及玩家的數量。一般前期都會選擇乙個基礎的配置,後期不夠用的話,可以隨時公升級。還要根據遊戲運營者自身特點進行選擇。1 如果有遊戲運營牌照假如擁有國內的電腦遊戲運營牌照,可以選擇國內的伺服器,建議使用多線伺服器,因為需要考慮南北互訪的網路障礙問題,頻寬最好100m...

是什麼軟體 什麼樣的軟體才能算BIM軟體?

在比較常見的bim軟體清單裡,基本上不會看到3dmax的身影,而又會把跟3dmax建模方式類似的sketchup rhino歸為bim軟體,這是為何?如果必須有乙個簡單粗暴的分類方法的話,那就是ifc,支援ifc的就是bim軟體,反之就不是。ifc又是什麼呢?ifc全稱為industry found...

什麼叫做羅列式 高效的工作計畫應該是什麼樣的?

新的一年工作開始,可能我們大多數的職場人都在做自己的工作計畫,像年度營銷計畫 運營計畫 活動計畫等等都是高頻型別。每年過年前後都會有二波做年度計畫的高潮。但是不知道有多少人在做自己的目標,目標和工作計畫之間,有著怎樣的關係?那麼工作計畫應該如何制定,制定工作計畫的依據是什麼?計畫不是對方向和願望的羅...