eth0流量不停的增長
❶ 如果中斷是共享的,內核會決定具體調用哪一個驅動的中斷服務常式
先說說環境
1.硬體:DELL R410
2.網卡:板載1000M BCM5709
2.OS: RHEL 5.5 x86_64
3.KERNEL: 2.6.18-194.el5
所出現的問題
1.網卡毫無徵兆的down掉,而且沒有任何log信息
2.當流量增大時,不到理論上限的1/3時機器出現網路延遲嚴重,伴隨大量的丟包
3.機器的cpu軟中斷不均衡,只有1個cpu處理軟中斷,並且該cpu的軟中斷周期性的達到100%
4.內外網網卡做nat丟包數據量不一致,差別很大,不在同一個數量級
想必第一個問題,大部分使用bcm網卡,rhel 5.3以後得機器都會遇到這種情況,網上的資料比較的多,我也不多啰嗦了,直接升級網卡驅動就可以解決了。第二,三,四其實是同一個問題都是由於網卡中斷過多,cpu處理不過來(准確的說,cpu分配不均衡,導致只有一個cpu處理,處理不過來),引起丟包,那麼為什麼兩個網卡丟包的數量級不一樣呢,下面從原理上進行解釋,既然是做nat多出口,那麼就有大量的路由信息,是一個網路應用,當一個數據包請求nat時,數據包先被網卡驅動的數據接收,網卡收到數據時,觸發中斷。在中斷執行常式中,把skb掛入輸入隊列,並觸發軟中斷。稍後的某個時刻,當軟中斷執行時,再從該隊列中把skb取下來,投遞給上層協議。
如果在這個過程當中cpu沒有及時處理完這個隊列導致網卡的buffer滿了,網卡將直接丟棄該數據包。這里牽涉到2個隊列,一個是tx,一個是rx,它的隊列的大小默認都是255,可以通過ethtool -g eth0(你指定的網卡),為了防止丟包,當時我通過ethtool -G eth0 rx xxx 把它調大了,但是調大以後,還是杯水車薪啊,通過ethtool -S eth0 |grep rx_fw_discards,發現數值還是不停的在增長,也就是說還在不停的丟包,cpu處理不過來,這時候找到網上有人在利用lvs時也遇到這個問題,cpu軟中斷分配不均衡,只有一個cpu處理軟中斷的問題,網上的資料五花八門,有建議使用修改設備中斷方式。即通過修改設置中斷/proc/irq/${網卡中斷號}/smp_affinit這時候,我也修改過,沒有什麼實質的效果,
從官方的bug報告,,其中提到rhel5.6已經修復了這個bug,這其中也提到目前我們的版本可以升級內核到kernel-2.6.18-194.3.1.el5可以解決這個問題。
紅帽子官方修復報告中的說明如下:,我們升級了這個內核算是解決單核處理軟中斷的問題,升級後各個cpu已經能夠平均的分配這個軟中斷,也不丟包了,那麼為什麼cpu處理不過來這個軟中斷呢,數據量並不是特別的大啊,上層應用接到這個數據包後,通過路由協議,找到某個出口給nat出去,找nat出口是需要查找路由表,查詢路由表是一件很耗時的工作,而每一個不同源地址,不同目的地址的數據包都得重新查找一次路由表,導致cpu處理不過來,為了提高路由查詢的效率。Linux內核引用了路由緩存,用於減少對路由表的查詢。Linux的路由緩存是被設計來與協議無關的獨立子系統,查看路由緩存可以通過命令route -Cn,由於路由緩存當中是採用hash演算法進行才找,它的查找速度非常之快,既然是cache就有超時這一概念。系統默認為10分鍾,可以通過這個文件進行查看和修改/proc/sys/net/ipv4/route/secret_interval。而當路由緩存當中未找到或者已經超時的路由信息才開始查找路由表,查詢到的結果保存在路由緩存中。如果路由表越大,那麼查詢的時間就越長,一個新的連接進來後或者是老連接cache超時後,佔用大量的cpu查詢時間,導致cpu周期性的軟中斷出現100%,而兩個網卡丟包的情況來看不均衡也是因為用戶的數據包是經過其中一個網卡進來後查詢路由表耗時過長,cpu處理不過來,導致那塊網卡的隊列滿了,丟包嚴重。當然在路由表變動不大的情況下可以加大cache的時間,修改上述內容後,從我監測的情況來看,扛流量能力得到了大大的提升。
❷ 如何看待以太坊ETH2.0
我個人不是特別看好以太坊2.0。
以目前以太坊的發展情況來看,以太坊已經成為了世界上最大的一條公鏈,這點毫無疑問。伴隨著以太坊得進一步發展,我們會發現區塊鏈行業也取得了長足的進步。
一、我先講一下關於目前以太坊的現狀。
以太坊在這一次牛市中非常亮眼,換而言之,這一次的牛市就是因為以太坊上面的應用而拉起的。目前的以太坊有幾個困境:第1個困境是交易費率太高,嚇跑了很多人。第2個困境是交易速度太慢,網路擁堵問題非常嚴重。第3個困境是交易相對繁瑣,其他公鏈顯然要優於以太坊。這正是以太坊需要破局的地方,當以太坊升級到2.0以後,這些問題都會相應解決。
❸ ubuntu上網問題啊!!各位高手幫幫忙!在線等!
我不知道你為什麼不行,但我可以告訴你另一個方法。
右擊網路管理器(就是面板上的那兩台小電腦),選編輯連接,打開網路連接後選DSL選項卡,點添加,然後在跳出的對話框中輸入你寬頻的用戶名和密碼就行了確定後,單擊網路管理器,選擇DSL connection1,就能adsl寬頻上網了。
❹ 伺服器雙網卡:設置eth0入向的流量從eth0出,eth1入向的流量從eth1出,linux路由策略如何寫
路由,是確定訪問路徑的。
當eth0和eth1不在同一網段的時候
eth0訪問eth1就和你說的一樣。但是eth0訪問eth0是不經過eth1的
這個時候伺服器設置了路由,相當於路由器功能。。
需要做轉發設置。默認是不轉發的。(總結就是伺服器默認不能當路由器來用)
打這么多字這個累
❺ 運營商背後的套路,4G 無限流量真的是無限嗎
是無限,只不過用到一定的流量後就限速
❻ 在區塊鏈中以太坊(eth)目前有哪些問題
在區塊鏈中以太坊(eth)目前有哪些問題?
以太坊區塊鏈目前暴露出三大問題,長時間以來其創始人Vitalik
Buterin一直無力解讀。第一是以太坊區塊鏈整體很低的性能和TPS;第二是資源不隔離,CryptoKitties虛擬貓咪的事件,一度占據了整個以太坊
20%
的流量,直接造成以太坊網路用戶無法展開及時的交易,就是資源不隔離最大的痛點;第三個問題在於以太坊治理結構的體現,區塊鏈作為去中心化的分布式賬本,以太坊過去以來,創始人團隊主導了其網路發展,過於中心化的治理模式,讓目前的以太坊出現了ETH、ETC、ETF等分叉,以太坊社區目前進入四分五裂的治理狀態。而以太坊網路目前出現的各種弊病,在「aelf」創始人與CEO馬昊伯看來,這是無法接受的。於是,「aelf」定位,就是為對標以太坊的下一代去中心化底層計算平台,重點解決目前以太坊存在的性能不足、資源不隔離、治理結構三方面的問題而誕生的。
❼ linux 內核軟中斷 是在中斷狀態嗎
先說說環境
1.硬體:DELL R410
2.網卡:板載1000M BCM5709
2.OS: RHEL 5.5 x86_64
3.KERNEL: 2.6.18-194.el5
所出現的問題
1.網卡毫無徵兆的down掉,而且沒有任何log信息
2.當流量增大時,不到理論上限的1/3時機器出現網路延遲嚴重,伴隨大量的丟包
3.機器的cpu軟中斷不均衡,只有1個cpu處理軟中斷,並且該cpu的軟中斷周期性的達到100%
4.內外網網卡做nat丟包數據量不一致,差別很大,不在同一個數量級
想必第一個問題,大部分使用bcm網卡,rhel 5.3以後得機器都會遇到這種情況,網上的資料比較的多,我也不多啰嗦了,直接升級網卡驅動就可以解決了。第二,三,四其實是同一個問題都是由於網卡中斷過多,cpu處理不過來(准確的說,cpu分配不均衡,導致只有一個cpu處理,處理不過來),引起丟包,那麼為什麼兩個網卡丟包的數量級不一樣呢,下面從原理上進行解釋,既然是做nat多出口,那麼就有大量的路由信息,是一個網路應用,當一個數據包請求nat時,數據包先被網卡驅動的數據接收,網卡收到數據時,觸發中斷。在中斷執行常式中,把skb掛入輸入隊列,並觸發軟中斷。稍後的某個時刻,當軟中斷執行時,再從該隊列中把skb取下來,投遞給上層協議。
如果在這個過程當中cpu沒有及時處理完這個隊列導致網卡的buffer滿了,網卡將直接丟棄該數據包。這里牽涉到2個隊列,一個是tx,一個是rx,它的隊列的大小默認都是255,可以通過ethtool -g eth0(你指定的網卡),為了防止丟包,當時我通過ethtool -G eth0 rx xxx 把它調大了,但是調大以後,還是杯水車薪啊,通過ethtool -S eth0 |grep rx_fw_discards,發現數值還是不停的在增長,也就是說還在不停的丟包,cpu處理不過來,這時候找到網上有人在利用lvs時也遇到這個問題,cpu軟中斷分配不均衡,只有一個cpu處理軟中斷的問題,網上的資料五花八門,有建議使用修改設備中斷方式。即通過修改設置中斷/proc/irq/${網卡中斷號}/smp_affinit這時候,我也修改過,沒有什麼實質的效果,
從官方的bug報告,https://bugzilla.redhat.com/show_bug.cgi?id=520888,其中提到rhel5.6已經修復了這個bug,這其中也提到目前我們的版本可以升級內核到kernel-2.6.18-194.3.1.el5可以解決這個問題。
紅帽子官方修復報告中的說明如下:http://rhn.redhat.com/errata/RHSA-2010-0398.html,我們升級了這個內核算是解決單核處理軟中斷的問題,升級後各個cpu已經能夠平均的分配這個軟中斷,也不丟包了,那麼為什麼cpu處理不過來這個軟中斷呢,數據量並不是特別的大啊,上層應用接到這個數據包後,通過路由協議,找到某個出口給nat出去,找nat出口是需要查找路由表,查詢路由表是一件很耗時的工作,而每一個不同源地址,不同目的地址的數據包都得重新查找一次路由表,導致cpu處理不過來,為了提高路由查詢的效率。Linux內核引用了路由緩存,用於減少對路由表的查詢。Linux的路由緩存是被設計來與協議無關的獨立子系統,查看路由緩存可以通過命令route -Cn,由於路由緩存當中是採用hash演算法進行才找,它的查找速度非常之快,既然是cache就有超時這一概念。系統默認為10分鍾,可以通過這個文件進行查看和修改/proc/sys/net/ipv4/route/secret_interval。而當路由緩存當中未找到或者已經超時的路由信息才開始查找路由表,查詢到的結果保存在路由緩存中。如果路由表越大,那麼查詢的時間就越長,一個新的連接進來後或者是老連接cache超時後,佔用大量的cpu查詢時間,導致cpu周期性的軟中斷出現100%,而兩個網卡丟包的情況來看不均衡也是因為用戶的數據包是經過其中一個網卡進來後查詢路由表耗時過長,cpu處理不過來,導致那塊網卡的隊列滿了,丟包嚴重。當然在路由表變動不大的情況下可以加大cache的時間,修改上述內容後,從我監測的情況來看,扛流量能力得到了大大的提升。
❽ 伺服器流量流出很大請教怎麼回事
不是木馬,是設置問題,下面是流量的控制方法 一、Linux 流量控制過程分二種: 1、隊列控制 即 QOS, 瓶頸處的發送隊列的規則控制,常見的有 SFQ PRIO 2、流量控制 即帶寬控制 , 隊列的排隊整形, 一般為 TBF HTB 二、Linux 流量控制演算法分二種: 1、無類演算法 用於樹葉級無分支的隊列,例如:SFQ 2、分類演算法 用於多分支的隊列,例如:PRIO TBF HTB 三、具體實現: 1. 在網卡上建立 以SFQ演算法的限流 #tc qdisc add dev eth0 root handle 1: sfq SFQ 參數有 perturb( 重新調整演算法間隔 ) quantum 基本上不需要手工調整 : handle 1: 規定演算法編號 .. 可以不用設置由系統指定 .. #tc qdisc sh dev eth0 顯示演算法 #tc qd del dev eth0 root 刪除 注 : 默認 eht0 支持 TOS 2. 在網卡建立以 TBF演算法的限流 #tc qd add dev eth1 root handle 1: tbf rate 256kbit burst 10000 latency 50ms 速率 256kbit 突發傳輸 10k 最大延遲 50ms #tc -s qd sh dev eth1 統計 #tc qd del dev eth1 root 刪除 3. 在網卡建立 PRIO #tc qdisc add dev eth0 root handle 1: prio # 此命令立即創建了類 : 1:1, 1:2, 1:3 ( 預設三個子類 ) #tc qdisc add dev eth0 parent 1:1 handle 10: sfq #tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000 注 : 此為 TBF 限速的另一寫法 , 前文有講解 . #tc qdisc add dev eth0 parent 1:3 handle 30: sfq 4. WEB 伺服器的流量控制為 5Mbps,SMTP 流量控制在 3Mbps 上 . 而且二者一共不得超過 6Mbps, 互相之間允許借用帶寬 #tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8 #tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight 0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded 這部分按慣例設置了根為 1:0, 並且綁定了類 1:1. 也就是說整個帶寬不能超過 6Mbps. #tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight 0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 #tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight 0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 建立了 2 個類 . 注意我們如何根據帶寬來調整 weight 參數的 . 兩個類都沒有配置成"bounded", 但它們都連 接到了類 1:1 上 , 而 1:1 設置了"bounded". 所以兩個類的總帶寬不會超過 6Mbps. 別忘了 , 同一個 CBQ 下面的子 類的主號碼都必須與 CBQ 自己的號碼相一致 ! #tc qdisc add dev eth0 parent 1:3 handle 30: sfq #tc qdisc add dev eth0 parent 1:4 handle 40: sfq 預設情況下 , 兩個類都有一個 FIFO 隊列規定 . 但是我們把它換成 SFQ 隊列 , 以保證每個數據流都公平對待 . #tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid 1:3 #tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid 1:4 6. 過濾器過濾示例 #tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1 在 10: 節點添加一個過濾規則 , 優先權 1: 凡是去往 22 口 ( 精確匹配 ) 的 IP 數據包 , 發送到頻道 10:1.. #tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1 在 10: 節點添加一個過濾規則 , 優先權 1: 凡是來自 80 口 ( 精確匹配 ) 的 IP 數據包 , 發送到頻道 10:1.. #tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2 在 eth0 上的 10: 節點添加一個過濾規則 , 它的優先權是 2: 凡是上二句未匹配的 IP 數據包 , 發送到頻道 10:2.. #tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip dst 4.3.2.1/32 flowid 10:1 去往 4.3.2.1 的包發送到頻道 10:1 其它參數同上例 #tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 1.2.3.4/32 flowid 10:1 來自 1.2.3.4 的包發到頻道 10:1 #tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2 凡上二句未匹配的包送往 10:2 #tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 4.3.2.1/32 match ip sport 80 0xffff flowid 10:1 可連續使用 match, 匹配來自 1.2.3.4 的 80 口的數據包
❾ ETH介面是什麼
ETH介面指的是介面,是目前應用最廣泛的區域網通訊方式,同時也是一種協議。而乙太網介面就是網路數據連接的埠。
乙太網的每個版本都有電纜的最大長度限制(即無須放大的長度),這個范圍內的信號可以正常傳播,超過這個范圍信號將無法傳播。
為了允許建設更大的網路,可以用中繼器把多條電纜連接起來。中繼器是一個物理層設備,它能接收、放大並在兩個方向上重發信號。
(9)eth0流量不停的增長擴展閱讀
幾種常見的乙太網介面類型。
1、SC光纖介面
SC光纖介面在100Base-TX乙太網時代就已經得到了應用,因此當時稱為100Base-FX(F是光纖單詞fiber的縮寫),不過當時由於性能並不比雙絞線突出但是成本卻較高,因此沒有得到普及,現在業界大力推廣千兆網路,SC光纖介面則重新受到重視。
2、RJ-45介面
這種介面就是我們現在最常見的網路設備介面,俗稱「水晶頭」,專業術語為RJ-45連接器,屬於雙絞線乙太網介面類型。RJ-45插頭只能沿固定方向插入,設有一個塑料彈片與RJ-45插槽卡住以防止脫落。
3、FDDI介面
FDDI是目前成熟的LAN技術中傳輸速率最高的一種,具有定時令牌協議的特性,支持多種拓撲結構,傳輸媒體為光纖。光纖分布式數據介面(FDDI)是由美國國家標准化組織(ANSI)制定的在光纜上發送數字信號的一組協議。
參考資料來源:網路-乙太網介面
❿ linux 雙網卡綁定 流量怎麼走
linux的雙網卡bond,共有7種模式,可參閱網路文章。
第一種模式:mod=0 ,即:(balance-rr)Round-robin
policy(平衡掄循環策略)
特點:傳輸數據包順序是依次傳輸(即:第1個包走eth0,下一個包就走eth1….一直循環下去,直到最後一個傳輸完畢),此模式提供負載平衡和容錯能力;但是我們知道如果一個連接或者會話的數據包從不同的介面發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現數據包無序到達的問題,而無序到達的數據包需要重新要求被發送,這樣網路的吞吐量就會下降
第二種模式:mod=1,即: (active-backup)Active-backup
policy(主-備份策略)
特點:只有一個設備處於活動狀態,當一個宕掉另一個馬上由備份轉換為主設備。mac地址是外部可見得,從外面看來,bond的MAC地址是唯一的,以避免switch(交換機)發生混亂。此模式只提供了容錯能力;由此可見此演算法的優點是可以提供高網路連接的可用性,但是它的資源利用率較低,只有一個介面處於工作狀態,在有 N 個網路介面的情況下,資源利用率為1/N
第三種模式:mod=2,即:(balance-xor)XOR policy(平衡策略)
特點:基於指定的傳輸HASH策略傳輸數據包。預設的策略是:(源MAC地址 XOR 目標MAC地址)%
slave數量。其他的傳輸策略可以通過xmit_hash_policy選項指定,此模式提供負載平衡和容錯能力
第四種模式:mod=3,即:broadcast(廣播策略)
特點:在每個slave介面上傳輸每個數據包,此模式提供了容錯能力
第五種模式:mod=4,即:(802.3ad)IEEE 802.3ad
Dynamic link aggregation(IEEE802.3ad 動態鏈接聚合)
特點:創建一個聚合組,它們共享同樣的速率和雙工設定。根據802.3ad規范將多個slave工作在同一個激活的聚合體下。外出流量的slave選舉是基於傳輸hash策略,該策略可以通過xmit_hash_policy選項從預設的XOR策略改變到其他策略。需要注意的 是,並不是所有的傳輸策略都是802.3ad適應的,尤其考慮到在802.3ad標准43.2.4章節提及的包亂序問題。不同的實現可能會有不同的適應 性。
必要條件:
條件1:ethtool支持獲取每個slave的速率和雙工設定
條件2:switch(交換機)支持IEEE802.3ad
Dynamic link aggregation
條件3:大多數switch(交換機)需要經過特定配置才能支持802.3ad模式
第六種模式:mod=5,即:(balance-tlb)Adaptive
transmit load balancing(適配器傳輸負載均衡)
特點:不需要任何特別的switch(交換機)支持的通道bonding。在每個slave上根據當前的負載(根據速度計算)分配外出流量。如果正在接受數據的slave出故障了,另一個slave接管失敗的slave的MAC地址。
該模式的必要條件:ethtool支持獲取每個slave的速率
第七種模式:mod=6,即:(balance-alb)Adaptive
load balancing(適配器適應性負載均衡)
特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receiveload
balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬體地址改寫為bond中某個slave的唯一硬體地址,從而使得不同的對端使用不同的硬體地址進行通信。
來自伺服器端的接收流量也會被均衡。當本機發送ARP請求時,bonding驅動把對端的IP信息從ARP包中復制並保存下來。當ARP應答從對端到達時,bonding驅動把它的硬體地址提取出來,並發起一個ARP應答給bond中的某個slave。使用ARP協商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬體地址,因此對端學習到這個硬體地址後,接收流量將會全部流向當前的slave。這個問題可以通過給所有的對端發送更新(ARP應答)來解決,應答中包含他們獨一無二的硬體地址,從而導致流量重新分布。當新的slave加入到bond中時,或者某個未激活的slave重新 激活時,接收流量也要重新分布。接收的負載被順序地分布(roundrobin)在bond中最高速的slave上當某個鏈路被重新接上,或者一個新的slave加入到bond中,接收流量在所有當前激活的slave中全部重新分配,通過使用指定的MAC地址給每個 client發起ARP應答。下面介紹的updelay參數必須被設置為某個大於等於switch(交換機)轉發延時的值,從而保證發往對端的ARP應答 不會被switch(交換機)阻截。
必要條件:
條件1:ethtool支持獲取每個slave的速率;
條件2:底層驅動支持設置某個設備的硬體地址,從而使得總是有個slave(curr_active_slave)使用bond的硬體地址,同時保證每個 bond 中的slave都有一個唯一的硬體地址。如果curr_active_slave出故障,它的硬體地址將會被新選出來的 curr_active_slave接管其實mod=6與mod=0的區別:mod=6,先把eth0流量占滿,再佔eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬。而mod=6,會發現第一個口流量很高,第2個口只佔了小部分流量