关于高并发的一些笔记
?
四核八線程云主機,
如果10w要求一秒內響應,
后臺處理200ms,
且API屬于CPU密集型,
那么考慮最壞情況,
假如這其中有1w個請求發生在同一時刻點。
要在一秒內響應的話。。。需要的數量是?
?
其實稍微思考下就可以知道,如果每200ms都只能完成1w個請求的處理,那么1s結束后就只能完成5w的請求.
所以上面的問題是有毛病的,答案是至少是2500臺.
?
另外IO涉及很多方面:
mysql的IO,硬盤的IO以及網絡的IO,以及鎖的情況也會影響響應速度,比如行鎖和表鎖.
?
另外高并發的定義中,總是說"一定時間間隔內",[1]是一個很有意思的參考鏈接,他清晰地說明了高并發其實只是一個含糊的概念,要高并發其實要講清楚客觀條件,才有比較的意義.
?
來自“天使的眼睛”
單機可以做高并發測試,一般來說主要限制是在網絡上(要么是網絡速度,要么是網卡速度)
通常:
第一限制是網速(例如只有10G的對外出口頻寬)
第二限制是網卡(硬件)加入你只有20G或者40G的網卡。
第三限制是終端(Interrupt per second,其實這還是屬于硬件問題)
CPU跟內存的限制并不大
?
?
?
?
天使de眼睛?2019/10/3?1:28:11
python比較討厭的是fork的時候不能直接做affinity。
也沒法選擇CPU的scheduler。
如果你需要做“理論”高性能。
那么你直接threading部分用c來做(pthread就可以,booster也行)
然后python直接調用c模塊的threading,這樣既可以有affinity跟scheduler的支持,還不需要考慮gil的問題。甚至你可以直接給real?time?priority跟cgroup去做進一步的優化
天使de眼睛?2019/10/3?1:30:11
我們公司來說,并不去追求這種極限東西。因為是商業公司,賺錢為主。這種追求所付出的,遠遠超過了直接增加硬件所需要的成本(優化高并發,不如直接多上點機器就好了)
天使de眼睛?2019/10/3?1:32:40
紐約股票交易行業中。這種追求極限的比較多(特殊的定制網卡硬件,內核tcp?stack的by?pass,ip?stack的重新架構,硬件的直接direct?by?pass等等)這些行業,一般技術行業有所謂的“unlimited?budget”。只要錢能買到的,就做到極限
?
?
Reference:
[1]https://www.cnblogs.com/xiexj/p/10399385.html
?
總結
以上是生活随笔為你收集整理的关于高并发的一些笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知乎上砍手豪关于kaggle的观点(转载
- 下一篇: 第七章笔记(转载)