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