溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下怎么調(diào)整網(wǎng)卡的工作模式

發(fā)布時(shí)間:2021-08-11 10:48:39 來源:億速云 閱讀:238 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容介紹了“Linux下怎么調(diào)整網(wǎng)卡的工作模式”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

現(xiàn)在的網(wǎng)卡一般都是10/100M自適應(yīng)工作模式,在配置網(wǎng)卡參數(shù)時(shí)我們很少考慮它的工作模式,但是在路由器、交換機(jī)、代理服務(wù)器等通信量比較大的關(guān)鍵設(shè)備上,我們應(yīng)該為它指定正確的工作模式,這樣可以提高通信效率。在Linux環(huán)境下,我們可以使用系統(tǒng)自帶的工具mii-tool(這是專門設(shè)置網(wǎng)卡工作模式的命令)來配置網(wǎng)卡工作模式。下面我們具體來談一下它的使用方法。

  1. 查看網(wǎng)卡的工作模式,輸入命令:

  #mii-tool -v

  eth0: negotiated 100baseTx-FD,link ok

  product info:Vendor 00:05:be,model 8 rev 0

  basic status: autonegotiation complete,link ok

  basic mode:autonegotiation enabled.

  Capabilities: ..............

  從以上信息中可以看出,這塊網(wǎng)卡工作在100M全雙工自適應(yīng)模式下,“100BaseTx-FD”意為100M Full Duplex。

  2. 更改網(wǎng)卡的工作模式,輸入命令:

  #mii-tool -F media [interface]

  media可選的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所選擇的網(wǎng)卡,如eth0、eth2等,默認(rèn)為eth0。

  例如,設(shè)置網(wǎng)卡工作在10M半雙工模式下,輸入命令:

  #mii-tool -F 10baseT-HD eth0

  3. 恢復(fù)網(wǎng)卡的自適應(yīng)工作模式,輸入命令:

  #mii-tool -r eth0

  更詳細(xì)的使用方法可以用mii-tool -h來獲得。

 在《調(diào)諧LINUX網(wǎng)絡(luò)性能之調(diào)試工具篇》和《調(diào)諧LINUX網(wǎng)絡(luò)性能之網(wǎng)絡(luò)配置文件詳解》兩篇文章中,我們介紹了route、netstat、tcpdump三種網(wǎng)絡(luò)調(diào)諧測(cè)試工具的使用方法及其可實(shí)現(xiàn)的功能和網(wǎng)絡(luò)配置文件的內(nèi)容,本文我們將從實(shí)戰(zhàn)的角度介紹網(wǎng)絡(luò)性能調(diào)諧的方法。
  
  下面,我們先來介紹網(wǎng)絡(luò)性能調(diào)諧的第一種方法:服務(wù)方式選擇。
  
  服務(wù)方式選擇
  
  網(wǎng)絡(luò)服務(wù)器由于要同時(shí)為多個(gè)客戶提供服務(wù),就必須使用某種方式來支持這種多任務(wù)的服務(wù)方式。一般情況下可以有三種方式來選擇,多進(jìn)程方式、多線程方式及異步方式。其中,多進(jìn)程方式中服務(wù)器對(duì)一個(gè)客戶要使用一個(gè)進(jìn)程來提供服務(wù),由于在操作系統(tǒng)中,生成一個(gè)進(jìn)程需要進(jìn)程內(nèi)存復(fù)制等額外的開銷,這樣在客戶較多時(shí)的性能就會(huì)降低。為了克服這種生成進(jìn)程的額外開銷,可以使用多線程方式或異步方式。在多線程方式中,使用進(jìn)程中的多個(gè)線程提供服務(wù),由于線程的開銷較小,性能就會(huì)提高。事實(shí)上,不需要任何額外開銷的方式還是異步方式,它使用非阻塞的方式與每個(gè)客戶通信,服務(wù)器使用一個(gè)進(jìn)程進(jìn)行輪詢就行了。異步方式下,多個(gè)任務(wù)之間的調(diào)度是由服務(wù)器程序自身來完成的,而且一旦一個(gè)地方出現(xiàn)問題則整個(gè)服務(wù)器就會(huì)出現(xiàn)問題,不在討論的范圍內(nèi)。增大系統(tǒng)線程的數(shù)量:限制線程的數(shù)量的因素很多,主要有進(jìn)程數(shù)量的限制,內(nèi)存大小的限制,mutex/semaphore/shm/ipc的限制;一般情況下先增大進(jìn)程最大數(shù),再擴(kuò)充內(nèi)存,在增大線程最大數(shù),而增大線程最大數(shù)的方法很簡(jiǎn)單,只需改變glibc中兩處即可:線程最大數(shù)和線程堆棧區(qū)的大??;線程最大數(shù)的增加是以進(jìn)程的異步 I/O性能下為代價(jià);所以需要加以平衡。
  
  絡(luò)配置文件中有用的內(nèi)容
  
  1. 對(duì)于數(shù)據(jù)庫(kù)而言,增大共享內(nèi)存段和信號(hào)量的多少,對(duì)數(shù)據(jù)傳輸效率的提高起到很重要的作用;
  
  方法:只需編輯文件linux/include/linux/sem.h和linux/include/asm-i386/shmparam.h即可。
  
  2. 先增大進(jìn)程最大數(shù),再擴(kuò)充內(nèi)存,再增大線程最大數(shù),而增大線程最大數(shù)的方法很簡(jiǎn)單,只需改變glibc中兩處即可:線程最大數(shù)和線程堆棧區(qū)的大??;
  
  3. 把"/etc/inittab"文件中的一行注釋掉可以禁止用Control-Alt-Delete關(guān)閉計(jì)算機(jī)。如果服務(wù)器不是放在一個(gè)安全的地方,這非常重要。
  
  編輯inittab文件(vi /etc/inittab)把這一行:
  
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  改為:
  
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  用下面的命令使改變生效:
  
  [root@deep]# /sbin/init q
  
  4. /etc/host.conf 文件指定如何解析主機(jī)名。Linux通過解析器庫(kù)來獲得主機(jī)名對(duì)應(yīng)的IP地址。下面是一個(gè)"/etc/host.conf"的示例:
  
  order bind,hosts :指定主機(jī)名查詢順序,這里規(guī)定先使用DNS來解析域名,然后再查詢"/etc/hosts"文件(也可以相反)。
  
  可以在該文件后加上以下兩句:
  
  multi on:指定的主機(jī)可以有多個(gè)地址,擁有多個(gè)IP地址的主機(jī)一般稱為多穴主機(jī)。
  
  ospoof on:指不允許對(duì)該服務(wù)器進(jìn)行IP地址欺騙,以提高服務(wù)器的安全性。IP欺騙是一種攻擊系統(tǒng)安全的手段,通過把IP地址偽裝成別的計(jì)算機(jī),來取得其它計(jì)算機(jī)的信任。
  
  可調(diào)諧的Linux內(nèi)核網(wǎng)絡(luò)參數(shù)
  
  ICMP相關(guān)內(nèi)核配置參數(shù)
  
  概述:通常我們使用icmp包來探測(cè)目的主機(jī)上的其它協(xié)議(如tcp和udp)是否可用。比如包含"destination unreachable"信息的icmp包就是最常見的icmp包。
  
  (1) icmp_destunreach_rate:設(shè)置內(nèi)容為"Destination Unreachable"icmp包的響應(yīng)速率。設(shè)置值應(yīng)為整數(shù)。
  
  應(yīng)用實(shí)例: 假設(shè)有A、B兩部主機(jī),首先我們?cè)谥鳈C(jī)A上執(zhí)行以下ipchains語句:
  
  ipchains -A input -p icmp -j REJECT
  
  這里的REJECT和DENY不同,DENY會(huì)丟掉符合條件的包如同沒有接收到該包一樣,而REJECT會(huì)在丟掉該包的同時(shí)給請(qǐng)求主機(jī)發(fā)回一個(gè)"Destination Unreachable"的icmp。
  
  然后在主機(jī)B上ping主機(jī)A,這時(shí)候我們會(huì)發(fā)現(xiàn)"Destination Unreachable"icmp包的響應(yīng)速度是很及時(shí)的。接著我們?cè)谥鳈C(jī)A上執(zhí)行:
  
  echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate
  
  也即每10秒鐘響應(yīng)一個(gè)"Destination Unreachable"的icmp包。
  
  這時(shí)候再?gòu)闹鳈C(jī)B上ping主機(jī)A就會(huì)發(fā)現(xiàn)"Destination Unreachable"icmp包的響應(yīng)速度已經(jīng)明顯變慢,我很好奇的測(cè)試了一下,發(fā)現(xiàn)剛好是每10秒響應(yīng)一次。
  
 ?。?)icmp_echo_ignore_broadcasts:設(shè)置是否響應(yīng)icmp echo請(qǐng)求廣播,設(shè)置值應(yīng)為布爾值,0表示響應(yīng)icmp echo請(qǐng)求廣播,1表示忽略。
  
  注意:windows系統(tǒng)是不響應(yīng)icmp echo請(qǐng)求廣播的。
  
  應(yīng)用實(shí)例:
  
  在我的RedHat6.x和RedHat7上該值缺省為0,這樣當(dāng)有個(gè)用戶ping我的服務(wù)器所在的網(wǎng)段的網(wǎng)絡(luò)地址時(shí),所有的linux服務(wù)器就會(huì)響應(yīng),從而也能讓讓該用戶得到我的服務(wù)器的ip地址,可以執(zhí)行
  
  echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  
  來關(guān)閉該功能。從而防止icmp風(fēng)暴,防止網(wǎng)絡(luò)阻塞。
  
 ?。?)icmp_echoreply_rate:設(shè)置系統(tǒng)響應(yīng)icmp echo請(qǐng)求的icmp包的響應(yīng)速度,設(shè)置值為整數(shù)。
  
  應(yīng)用實(shí)例:
  
  假設(shè)有A、B兩部主機(jī),首先我們?cè)谥鳈C(jī)B上ping主機(jī)A,可以看到響應(yīng)很正常,然后在主機(jī)A上執(zhí)行
  
  echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate
  
  也即每10秒鐘響應(yīng)一個(gè)icmp echo請(qǐng)求包。然后再ping主機(jī)A就可以看到響應(yīng)速度已經(jīng)變成10秒一次。
  
  最好合理的調(diào)整該參數(shù)的值來防止icmp風(fēng)暴。
  
 ?。?)icmp_echo_ignore_all:設(shè)置系統(tǒng)是否忽略所有的icmp echo請(qǐng)求,如果設(shè)置了一個(gè)非0值,系統(tǒng)將忽略所有的icmp echo請(qǐng)求。其實(shí)這是icmp_echoreply_rate的一種極端情況。參數(shù)值為布爾值,1:表示忽略,0:表示響應(yīng)。
  
 ?。?)icmp_paramprob_rate:當(dāng)系統(tǒng)接收到數(shù)據(jù)報(bào)的損壞的ip或tcp頭時(shí),就會(huì)向源發(fā)出一個(gè)包含有該錯(cuò)誤信息的icmp包。這個(gè)參數(shù)就是用來設(shè)置向源發(fā)送這種icmp包的速度。當(dāng)然,在通常情況下ip或tcp頭出錯(cuò)是很少見的。參數(shù)值為整數(shù)。
  
 ?。?)icmp_timeexceed_rate:數(shù)據(jù)報(bào)在網(wǎng)絡(luò)上傳輸時(shí),其生存時(shí)間(time to live)字段會(huì)不斷減少,當(dāng)生存時(shí)間為0時(shí),正在處理該數(shù)據(jù)報(bào)的路由器就會(huì)丟棄該數(shù)據(jù)報(bào),同時(shí)給源主機(jī)發(fā)送一個(gè)"time to live exceeded"的icmp包。該參數(shù)就是用來設(shè)置這種icmp包的發(fā)送的速度。當(dāng)然,這通常用于充當(dāng)路由器的linux主機(jī)。
  
  IP相關(guān)內(nèi)核配置參數(shù)
  
  linux內(nèi)核網(wǎng)絡(luò)參數(shù)中關(guān)于ip的配置參數(shù)通常是用來定義或調(diào)整ip包的一些特定的參數(shù),除此之外還定義了系統(tǒng)的一些網(wǎng)絡(luò)特性。
  
 ?。?)ip_default_ttl:設(shè)置從本機(jī)發(fā)出的ip包的生存時(shí)間,參數(shù)值為整數(shù),范圍為0~128,缺省值為64。在windows系統(tǒng)中, ip包的生存時(shí)間通常為128。如果你的系統(tǒng)經(jīng)常得到"Time to live exceeded"的icmp回應(yīng),可以適當(dāng)增大該參數(shù)的值,但是也不能過大,因?yàn)槿绻愕穆酚蓧穆返脑?,就?huì)增加系統(tǒng)報(bào)錯(cuò)的時(shí)間。
  
  (2)ip_dynaddr:該參數(shù)通常用于使用撥號(hào)連接的情況,可以使系統(tǒng)能夠立即改變ip包的源地址為該ip地址,同時(shí)中斷原有的tcp對(duì)話而用新地址重新發(fā)出一個(gè)syn請(qǐng)求包,開始新的tcp對(duì)話。在使用ip欺騙時(shí),該參數(shù)可以立即改變偽裝地址為新的ip地址。該參數(shù)的參數(shù)值可以是:
  
  1:?jiǎn)⒂迷摴δ?
  2:使用冗余模式啟用該功能
  0:禁止該功能
  
  應(yīng)用實(shí)例:在使用ipchains配置ip欺騙帶動(dòng)局域網(wǎng)共享一個(gè)ppp連接上網(wǎng)時(shí),有時(shí)會(huì)出現(xiàn)剛開時(shí)連接一個(gè)站點(diǎn)連不通,再次刷新又可以連接的情況,這時(shí)候就可以設(shè)置該參數(shù)的值為1,從而立即改變偽裝地址為新的ip地址,就可以解決這類問題。命令為:
  
  echo "1" > /proc/sys/net/ipv4/ip_dynaddr
  
  (3)ip_forward:可以通過該參數(shù)來啟用包轉(zhuǎn)發(fā)功能,從而使系統(tǒng)充當(dāng)路由器。參數(shù)值為1時(shí)啟用ip轉(zhuǎn)發(fā),為0時(shí)禁止ip轉(zhuǎn)發(fā)。注意,我們可以在單網(wǎng)卡或雙網(wǎng)卡的主機(jī)上實(shí)現(xiàn)ip轉(zhuǎn)發(fā)。
  
  應(yīng)用實(shí)例:
  
  假設(shè)我們使用一部裝有雙網(wǎng)卡的linux主機(jī)充當(dāng)防火墻,這時(shí)候我們就必須執(zhí)行以下命令來打開ip轉(zhuǎn)發(fā)功能:
  
  echo "1" > /proc/sys/net/ipv4/ip_forward
  
  (4) ip_local_port_range:設(shè)置當(dāng)本地系統(tǒng)向外發(fā)起tcp或udp連接請(qǐng)求時(shí)使用的端口范圍。設(shè)置值為兩個(gè)整數(shù),缺省為"1024 4999"。
  
  應(yīng)用實(shí)例:
  
  echo "1450 6000" > /proc/sys/net/ipv4/ip_local_port_range
  
  tcp相關(guān)內(nèi)核配置參數(shù)
  
  通過tcp配置參數(shù)可以控制tcp會(huì)話過程中的各個(gè)方面。
  
  (1) tcp_fin_timeout:在一個(gè)tcp會(huì)話過程中,在會(huì)話結(jié)束時(shí),A首先向B發(fā)送一個(gè)fin包,在獲得B的ack確認(rèn)包后,A就進(jìn)入FIN WAIT2狀態(tài)等待B的fin包然后給B發(fā)ack確認(rèn)包。這個(gè)參數(shù)就是用來設(shè)置A進(jìn)入FIN WAIT2狀態(tài)等待對(duì)方fin包的超時(shí)時(shí)間。如果時(shí)間到了仍未收到對(duì)方的fin包就主動(dòng)釋放該會(huì)話。參數(shù)值為整數(shù),單位為秒,缺省為180秒。
  
  (2) tcp_syn_retires:設(shè)置開始建立一個(gè)tcp會(huì)話時(shí),重試發(fā)送syn連接請(qǐng)求包的次數(shù)。 參數(shù)值為小于255的整數(shù),缺省值為10。假如你的連接速度很快,可以考慮降低該值來提高系統(tǒng)響應(yīng)時(shí)間,即便對(duì)連接速度很慢的用戶,缺省

“Linux下怎么調(diào)整網(wǎng)卡的工作模式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI