在資料量大的時候,硬中斷和軟中斷會形成瓶頸。
網絡卡接收資料報,從網絡卡產生中斷訊號,cpu將網路資料報拷貝到核心,然後進行協議棧的處理,最後將資料部分傳遞給使用者空間,但硬體中斷處理僅僅做從網絡卡拷貝資料的工作,而協議棧的處理的工作就交給軟中斷處理。所以當硬中斷和軟中斷集中在cpu0的時候,會給排程帶來負擔(集中在其他cpu也會造成效能瓶頸,這裡舉cpu0的例子,是因為集中在cpu0影響最大)。
關閉irqbalance服務,service irqbalance stop,irqbalance在負載不高的時候是不錯的服務,但負載太高,就顯得力不從心,關閉irqbalance服務,我們自己手動繫結中斷號到cpu。
然後確定使用的是哪個網絡卡,先lshw -c network –short看看都有哪些網絡卡。
可知有eth0 eth1 eth2 eth3四個網絡卡
然後ifconfig看下各網絡卡的流量,跑壓測,再ifconfig,對比前後流量,可知是哪個網絡卡在跑。
壓測前
壓測後
對比前後流量,可知用的是eth2
獲取網絡卡的中斷號
可知中斷號是72-80
2.繫結
echo 9 > /proc/irq/72/smp_affinity_list
echo 10 > /proc/irq/73/smp_affinity_list
echo 11 > /proc/irq/74/smp_affinity_list
echo 12 > /proc/irq/75/smp_affinity_list
echo 13 > /proc/irq/76/smp_affinity_list
echo 14 > /proc/irq/77/smp_affinity_list
echo 15> /proc/irq/78/smp_affinity_list
echo 16 > /proc/irq/79/smp_affinity_list
echo 17 > /proc/irq/80/smp_affinity_list
網絡卡中斷號的繫結可以分散硬中斷,不過這樣還不夠徹底,因為硬中斷集中在上述配置的幾個核上,且軟中斷在硬中斷結束後工作,也在同乙個核上,乙個核同時跑硬中斷和軟中斷,這樣會大大降低硬中斷和軟中斷的處理速度,會對效能造成極大的瓶頸,因為如果中斷沒處理完,就無法分發請求到haproxy的各程序。
可通過rps和rfs,將軟中斷均衡到各個核上。
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus 24核,所以設定fffff,分散到各核
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo ffffff > /sys/class/net/eth2/queues/rx-0/rps_cpus
echo 4096 > /sys/class/net/eth2/queues/rx-0/rps_flow_cnt 32768/n,n為網絡卡多佇列的佇列數
echo 4096 > /sys/class/net/eth2/queues/rx-1/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-2/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-3/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-4/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-5/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-6/rps_flow_cnt
echo 4096 > /sys/class/net/eth2/queues/rx-7/rps_flow_cnt
echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
網絡卡中斷負載均衡
現實中的問題 隨著硬體成本的降低,我們伺服器配置也越來越 上流 了,可是單台伺服器的包處理能力還是很有限,經常看到cpu負載很高,linux核心自從2.4版本之後就引入了netfilter框架,網路資料報的處理能力很大程度上是以併發連線數來衡量的,每乙個連線在核心中實際上是做了很多處理的。特別是有大...
樣本不均衡
在分類中,訓練資料不均衡是指不同類別下的樣本數目相差巨大。舉兩個例子 在乙個二分類問題中,訓練集中class 1的樣本數比上class 2的樣本數的比值為60 1。使用邏輯回歸進行分類,最後結果是其忽略了class 2,將所有的訓練樣本都分類為class 1。在三分類問題中,三個類別分別為a,b,c...
類別不均衡問題
機器學習建模分類問題裡,各個類別樣本量差異較大時,就會出現類別不均衡問題。e.g.如果有99999個無症狀病例,1個有症狀病例,即使訓練的學習器將所有樣本識別成無症狀病例,準確率也高達99.9 但是這樣的學習器沒有任何價值,無任何鑑別有症狀病例的價值。以下假設正例樣本數遠小於負例樣本數 1 欠取樣 ...