Intel LogoIntel ® Ethernet 700 Serisi
Linux Performans Ayarlama Kılavuzu
NEX Bulut Ağ Grubu (NCNG)
Rev. 1.2
Aralık 2024

Revizyon Geçmişi

Revizyon Tarih Yorumlar
1.2 Aralık 2024 · Ek Güç Yönetimi Kılavuzu eklendi.
· Intel* Turbo Boost eklendi.
· Ağ Aygıtı Geri Bildirimi eklendi.
· Platforma Özel Yapılandırmalar ve Ayarlar Eklendi.
· 4. Nesil Intel* %eon* Ölçeklenebilir İşlemciler eklendi.
· AMD EPYC eklendi.
· Kontrol Sistemi Donanım Yetenekleri Güncellendi.
· iPerf2 güncellendi.
· iPerf3 güncellendi.
· Tx/Rx Kuyrukları güncellendi.
· Kesinti Denetimi güncellendi.
· Yüzük Ölçüsü Güncellendi.
· Güncellenmiş Platform Ayarı (i40e'ye Özel Olmayan).
· BIOS Ayarları güncellendi.
· C-Devlet Kontrolü güncellendi.
· CPU Frekans Ölçeklemesi güncellendi.
· Uygulama Ayarları güncellendi.
· İşletim Sistemi/Çekirdek Ayarları güncellendi.
· IP Yönlendirme güncellendi.
· Düşük Gecikme Güncellendi.
Ağustos 2023 Bu belgede yapılan değişiklikler şunlardır:
· İlgili Referanslar Eklendi.
· DDP Paketinin Düzgün Yüklendiğinden Emin Olma özelliği eklendi.
· iPerf2 eklendi.
· iPerf3 eklendi.
· Netperf eklendi.
· IRQ Affinity güncellendi.
· Tx/Rx Kuyrukları eklendi.
· Yüzük Ölçüsü Güncellendi.
· Jumbo Çerçeveler eklendi.
· Adaptör Bağlantısı eklendi.
· Intel svr-info Aracı eklendi.
1.0 Mart 2016 İlk Sürüm (Intel Public).

giriiş

Bu kılavuz, Linux ortamlarında Intel ® Ethernet 700 Serisi NIC'leri kullanarak optimum ağ performansı için ortamları ayarlama konusunda rehberlik sağlamayı amaçlamaktadır. Ağ performansını iyileştirebilecek donanım, sürücü ve işletim sistemi koşullarına ve ayarlarına odaklanır. Ağ performansının çok sayıda dış etkenden etkilenebileceği unutulmamalıdır, bu kılavuzda yalnızca en yaygın ve dramatik olanlar ele alınmıştır.
1.1 İlgili Referanslar

İlk Kontrol Listesi

2.1 Sürücü/Donanım Sürümlerini Güncelleyin
Sürücü/donanım yazılımı sürümlerini ethtool -i ethx komutunu kullanarak kontrol edin.
Gerektiğinde aşağıdakileri güncelleyin:

2.2 README'yi okuyun
Bilinen sorunları kontrol edin ve README'den en son yapılandırma talimatlarını alın file i40e kaynak paketine dahildir.
2.3 PCI Express (PCIe) Yuvanızın x8 Olduğunu Kontrol Edin
Bazı PCIe x8 yuvaları aslında x4 yuvaları olarak yapılandırılmıştır. Bu yuvalar, çift portlu ve dört portlu aygıtlarla tam hat hızı için yeterli bant genişliğine sahip değildir. Ayrıca, PCIe v3.0 uyumlu bir adaptörü bir PCIe v2.x yuvasına yerleştirirseniz, tam bant genişliği elde edemezsiniz. Yazılım aygıt sürücüsü bu durumu algılar ve sistem günlüğüne şu mesajı yazar:
Bu kart için mevcut PCI-Express bant genişliği optimum performans için yeterli değil. Optimum performans için x8 PCI-Express yuvası gereklidir.
Bu hata oluşursa, sorunu çözmek için bağdaştırıcınızı gerçek bir PCIe v3.0 x8 yuvasına taşıyın.
2.4 Sistem Donanım Yeteneklerini Kontrol Edin
10 Gbps, 25 Gbps ve 40 Gbps Ethernet'te bazı minimum CPU ve sistem gereksinimleri vardır. Genel olarak, modern bir sunucu sınıfı işlemci ve platformunuz için en uygun bellek yapılandırması yeterli olmalıdır, ancak ihtiyaçlar iş yükünüze bağlı olarak değişir. Tüm bellek kanalları doldurulmalı ve BIOS'ta bellek performans modu etkinleştirilmelidir. CPU ve bellek yapılandırmanızın iş yükünüz için ihtiyaç duyduğunuz ağ performansı düzeyini destekleyebildiğini doğrulayın.
NOT
XL710 bir 40 GbE denetleyicisidir. Bu denetleyiciyi kullanan 2 x 40 GbE adaptörünün 2 x 40 GbE olması değil, etkin bir yedek bağlantı noktasına sahip 1 x 40 GbE olması amaçlanmıştır. Her iki bağlantı noktasını da içeren hat hızı trafiğini kullanmaya çalışırken, dahili anahtar doygun hale gelir ve iki bağlantı noktası arasındaki birleşik bant genişliği toplam SO Gbps ile sınırlıdır.
2.4.1 Çekirdek Önyükleme Parametreleri
BIOS'ta Intel® Yönlendirilmiş G/Ç için Sanallaştırma Teknolojisi (Intel® VT-d) etkinleştirilmişse, Intel, en iyi ana bilgisayar ağ performansı için IOMMU'nun geçiş modunda olmasını önerir. Bu, ana bilgisayar trafiğindeki DMA yükünü ortadan kaldırırken Sanal Makinelerin (VM'ler) Intel® VT-d'nin avantajlarından yararlanmaya devam etmesini sağlar. Bu, çekirdek önyükleme parametrelerine şu satır eklenerek gerçekleştirilir: fommu-pt.
2.5 DDP Paketinin Düzgün Yüklendiğinden Emin Olun
140ea ve 140eb temel sürücülerin Dinamik Aygıt Kişiselleştirmesi (DDP) için doğrudan desteği yoktur. DDP'yi 700 Serisi aygıtlarla kullanmak için bir DDP profile testpmd uygulaması ile uygulanabilir.
DDP pro hakkında ayrıntılar içinfiles ve DDP sertifikasının nasıl uygulanacağıfile 700 Serisi aygıtlarda testpmd ile ilgili olarak Intel® Ethernet 700 Serisi Dinamik Aygıt Kişiselleştirme (DDP) Teknolojisi Kılavuzuna bakın.
Bir DDP uzmanının doğruluğunu doğrulamak içinfile başarıyla yüklendi:
testpmd> ddp get list 0 Profile sayı: 1
NOT
profesyonel isefile sayı 0, hiçbir DDP paketi yüklenmedi. Bir DDP paketi yükleme hatası durumunda, cihaz varsayılan olarak güvenli moda geçer ve birçok performans özelliği kullanılamaz. DDP paketinin yüklenmesiyle ilgili hatalar varsa, performans sorunlarına neden olur. Sorun giderme adımları için Inte/* Ethernet 700 Serisi Dinamik Cihaz Kişiselleştirme (DDP) Teknolojisi Kılavuzuna bakın.

Temel Performans Ölçümleri ve Ayarlama Metodolojisi

3.1 Ağ Performansı Ölçütleri
Bir ayarlama egzersizine başlamadan önce, ağ performansınızın iyi bir temel ölçümüne sahip olmak önemlidir. Genellikle, belirli uygulamanızın/iş yükünüzün performansının ilk ölçümünü elde etmenin yanı sıra, ağ cihazınızın iyi durumda olduğunu doğrulamak için standart bir ağ performans kıyaslaması kullanmak da iyi bir fikirdir.
Tek sistem optimizasyonu için netperf veya iperf ve NetPIPE, bir bağlantıyı zorlamanıza ve performans sorunlarını teşhis etmenize olanak tanıyan sağlam, açık kaynaklı ve ücretsiz araçlardır.
Netperf hem verim hem de gecikme testi için güçlüdür. NetPIPE gecikmeye özgü bir araçtır ancak her türlü ortam için derlenebilir.
NOT
Netperf'teki TCP_RR testi, işlem/sn değerinde gecikmeyi döndürür. Bu bir gidiş-dönüş sayısıdır. Tek yönlü gecikme, aşağıdaki denklem kullanılarak hesaplanabilir:
Gecikme(usen) = (1⁄2) / [İşlem/sn] * 1,000,000
3.1.1 iPerf2
Intel, tek bir uygulama örneğinde kullanım kolaylığı ve birden fazla iş parçacığının desteği nedeniyle çoğu kıyaslama durumu için iperf2 yerine iperf3'yi önerir. Intel, 2G bağlantılar için 4-25 iş parçacığı ve 4G bağlantılar için yaklaşık 6-40 iş parçacığıyla -P seçeneğiyle çalıştırılmasını önerir.

  • İstemciden sunucuya tek yönlü trafiği çalıştırmak için: Sunucu komutu example: iperf2 -s
    İstemci komutu eskiample: iperf2 -c -P
  • İstemciden sunucuya (ve tersi) çift yönlü trafiği çalıştırmak için: Server komutu exampTürkçe: iperf2 –s –p
    İstemci komutu eskiamptarih:
    iperf2 -c -P -P -–tam çift yönlü VEYA
    iperf2 -c -P -P -D

NOT
iperf2'deki hem –full-duplex hem de -d seçenekleri kullanıcının çift yönlü test yapmasına izin verir. Ancak, –full-duplex seçeneği özellikle tam dupleks testine odaklanır.
NOT
iperf2'yi birden fazla sunucu portu üzerinden test ederken, tüm sunucu oturumlarını aynı terminal penceresinden arka planda çalıştırmak için sunucu komutuna -d bayrağı eklenebilir. -d bayrağı, sunucu komutu bir betikteki for döngüsünün içine yerleştirildiğinde de kullanılabilir.
NOT
Ağ verimi testini tek bir akış/iş parçacığıyla (örn.ample: P1), AMD işlemciler beklenen verimi sağlayamayabilir, özellikle daha yüksek bant genişliğine sahip NIC'ler (eğer hız >= 25G bant genişliği ise). Sonuç olarak, daha yüksek verim elde etmek için belirli çekirdeklere uygulama sabitlemesi gerekir. Bkz. sayfa 22'deki Uygulama Ayarları.
3.1.2 iPerf3
Eğer iperf3 kullanılırsa, uygulamanın birden fazla örneğinin avantaj sağlaması gerekir.tagÇoklu iş parçacıkları, RSS ve donanım kuyruklarının e'si. Intel, 2G bağlantıları için 4-25 uygulama oturumu ve 4G bağlantıları için yaklaşık 6-40 oturumla çalıştırmayı önerir. Her oturum, -p seçeneğini kullanarak benzersiz bir TCP bağlantı noktası değeri belirtmelidir.

  • İstemciden sunucuya tek yönlü trafik çalıştırmak için:
    Sunucu komutu eskiamptarih:
    iperf3 -s -p
    İstemci komutu eskiamptarih:
    iperf3 -c -P
  • İstemciden sunucuya (ve tersi) çift yönlü trafik çalıştırmak için:
    Sunucu komutu eskiamptarih:
    iperf3 –s –p
    İstemci komutu eskiample: iperf3 -c -P -P –-bidir
  • İperf3'ün birden fazla örneğini (iş parçacığını) başlatmak için, iş parçacıklarını TCP portlarına eşlemek için bir for döngüsü kullanılması ve & kullanarak arka planda iperf3'ün çalıştırılarak paralel olarak birden fazla işlem oluşturulması önerilir.
    Sunucu komutu eskiample, 4 iş parçacığını başlat: port=””; for i in {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; done; İstemci komutu example, 4 iş parçacığı başlat – Test port=””; i in {0..3} için; port=520$i yap; bash -c “iperf3 -c $serverIP -p $port &”; tamamlandı; İstemci komutu example, 4 iş parçacığı başlat – Test port=””; i in {0..3} için; port=520$i yapın; bash -c “iperf3 -R -c $serverIP -p $port &”; tamamlandı; 40G bağlantılar için, 6 adede kadar örnek/iş parçacığı oluşturmak üzere for döngüsünü artırın.

NOT
Ağ verimi testini tek bir akış/iş parçacığıyla (örn.ample: P1), AMD işlemciler beklenen verimi, özellikle daha yüksek bant genişliğini sağlayamayabilir
NIC'ler (hız >= 25G bant genişliği ise). Sonuç olarak, daha yüksek verim elde etmek için uygulamanın belirli çekirdeklere sabitlenmesi gerekir. Bkz. sayfa 22'deki Uygulama Ayarları ve sayfa 26'daki AMD EPYC.
3.1.3 netperf
Netperf aracı hem verim hem de gecikme testleri için güçlü bir seçimdir.

  • Netperf'teki TCP_STREAM testi, cihazın verim yeteneklerini ölçer. Sunucu komutu exampdosya: netserver İstemci komutu eskiample: netperf -t TCP_STREAM -l 30 -H
  • Netperf'teki TCP_RR testi, işlem/saniye değerinde gecikme döndürür. Bu bir gidiş-dönüş sayısıdır. -T x,x seçeneğinin kullanılması önerilir, burada x, cihaza yerel CPU'dur. Tek yönlü gecikme, şunu kullanarak hesaplanabilir: Gecikme(usec)=(1⁄2)/ [İşlem/sn]*1,000,\ Sunucu komutu örneğiampTürkçe: netserver
    İstemci komutu eskiample: netperf -t TCP_RR -l 30 -H -Tx,x
  • Netperf'in birden fazla örneğini (iş parçacığını) başlatmak için, iş parçacıklarını TCP portlarına eşlemek için bir for döngüsü kullanılması ve netperf'in & kullanarak arka planda çalıştırılarak paralel olarak birden fazla işlem oluşturulması önerilir.
    Sunucu komutu eskiample, 8 konu başlat:
    port=””; i in {0..7} için; port=520$i yapın; bash -c “netserver -L $serverIP -p $port &”; tamamlandı;
    İstemci komutu eskiample, 8 iş parçacığı başlat: port=””; i in {0..7} için; port=520$i yapın; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; tamamlandı;

3.2 Ayarlama Metodolojisi
Her seferinde bir ayarlama değişikliğine odaklanın, böylece her değişikliğin testinizde nasıl bir etki yarattığını bilirsiniz. Ayarlama sürecinde ne kadar metodik olursanız, performans darboğazlarının nedenlerini belirlemek ve ele almak o kadar kolay olur.

i40e Sürücü Ayarlarının Ayarlanması

4.1 IRQ Yakınlığı
Farklı ağ kuyruklarına ait kesmelerin farklı CPU çekirdeklerine afinite edilmesi için IRQ afinitesinin yapılandırılması, özellikle çoklu iş parçacıklı verim testlerinde performans üzerinde büyük bir etkiye sahip olabilir.
IRQ affinity'yi yapılandırmak için irqbalance'ı durdurun ve ardından i40e kaynak paketinden set_irq_affinity betiğini kullanın veya kuyrukları manuel olarak sabitleyin. Kuyruk sabitlemeyi etkinleştirmek için kullanıcı alanı IRQ dengeleyicisini devre dışı bırakın:

  • systemctl irqbalance'ı devre dışı bırak
  • systemctl irqbalance'ı durdur
    i40e kaynak paketindeki set_irq_affinity betiğini kullanma (önerilen):
  • Tüm çekirdekleri kullanmak için:
    [i40epackage'e-giden-yol]/scripts/set_irq_affinity -X tüm ethX
  • Yalnızca yerel NUMA soketindeki çekirdekleri kullanmak için: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Ayrıca bir çekirdek aralığı da seçebilirsiniz. Zamanlayıcı görevlerini çalıştırdığı için cpu0 kullanmaktan kaçının. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

NOT
Affinity betiği, -x seçeneği belirtildiğinde sabitleme işleminin bir parçası olarak Transmit Packet Steering'i (XPS) etkinleştirir. XPS etkinleştirildiğinde Intel, XPS'li çekirdek dengeleyicinin öngörülemeyen performansa neden olabileceği için irqbalance'ı devre dışı bırakmanızı önerir. Affinity betiği, -X seçeneği belirtildiğinde XPS'i devre dışı bırakır. XPS'i devre dışı bırakmak ve simetrik kuyrukları etkinleştirmek, Tx ve Rx trafiğinin aynı kuyruk çifti(leri) üzerinde hizmet aldığında en iyi performansın elde edildiği iş yükleri için faydalıdır.
Linux'ta simetrik kuyrukları yapılandırmak, desteklenen ağ bağdaştırıcıları için simetrik alım kuyruklarını (Rx) ve simetrik iletim kuyruklarını (Tx) etkinleştirmek üzere ağ arabirimi sürücü parametrelerinin ayarlanmasını içerir.
NOT

  • Simetrik kuyruklar gelişmiş bir ağ özelliğidir ve tüm 700 serisi ağ bağdaştırıcıları veya sürücüleri bunları desteklemez.
  • Simetrik kuyrukları yapılandırmaya başlamadan önce gerekli sürücü ve donanım desteğine sahip olduğunuzdan emin olun.

Simetrik kuyrukları yapılandırmak için şu genel adımları izleyin:

  1. Ağ Arayüzü Yapılandırmasını Düzenle File: Bir metin düzenleyici kullanın (örneğinampAğ arayüzü yapılandırmasını düzenlemek için (le, vi, nano veya gedit) file. file genellikle /etc/sysconfig/network-scripts/ dizini altında bulunur ve ifcfg-ethX gibi bir adı vardır; burada ethX ağ arayüzünüzün adıdır.
  2. Simetrik Kuyruk Parametreleri ekleyin. Ağ arayüzü yapılandırmasına aşağıdaki satırları ekleyin file: ETHTOOL_OPTS=”rx-kuyrukları 8 tx-kuyrukları 8″
  3. Ağ Hizmetini yeniden başlatın.
    Değişiklikleri yaptıktan sonra yeni yapılandırmayı uygulamak için ağ hizmetini yeniden başlatın. sudo systemctl restart network

Manuel olarak:

  • Her düğüme bağlı işlemcileri bulmak için şunu kullanın: numactl –hardware lscpu
  • Her işlemci için bit maskelerini bulun:
  • Düğüm 0 için 11-0 çekirdek varsayıldığında: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Atanan porta atanan IRQ'ları bulun: grep ethX /proc/interrupts ve IRQ değerlerini not edin. Örneğinample, yüklenen 181 vektör için 192-12.
  • SMP yakınlık değerini karşılık gelen IRQ girişine yansıtın. Bunun her IRQ girişi için yapılması gerektiğini unutmayın: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity IRQ yakınlığını göster:
  • Tüm çekirdekler için IRQ yakınlığını göstermek için: /scripts/set_irq_affinity -s ethX
  • Yalnızca yerel NUMA soketindeki çekirdekleri göstermek için: /scripts/set_irq_affinity -s yerel ethX
  • Ayrıca bir çekirdek aralığı da seçebilirsiniz: /scripts/set_irq_affinity -s 40-0-8,16 ethX

NOT
set_irq_affinity betiği i40e sürücü sürümü 2.16.11 ve sonrasında -s bayrağını destekler.
4.2 Tx/Rx Kuyrukları
Başlatma sırasında sürücü tarafından her Ethernet portu için etkinleştirilen varsayılan kuyruk sayısı, platformda mevcut toplam CPU sayısına eşittir. Bu, birçok platform ve iş yükü yapılandırması için iyi çalışır. Ancak, yüksek çekirdek sayısına ve/veya yüksek Ethernet portu yoğunluğuna sahip platformlarda, bu yapılandırma kaynak çekişmesine neden olabilir. Bu nedenle, bazı durumlarda sistemdeki her port için varsayılanı değiştirmek gerekebilir.
Varsayılan Tx/Rx kuyruk sayısı belirli modele ve sürücü sürümüne bağlı olarak değişebilir. Kuyruk sayısı aşağıda listelenen ethtool -L komutu kullanılarak ayarlanabilir.
NOT
Bu durumlarda Intel, her port için varsayılan kuyruk sayısını, adaptör portuna yerel NUMA düğümünde bulunan CPU sayısından daha fazla olmayacak şekilde azaltmanızı önerir. Bazı durumlarda, yüksek port sayılı uygulamalarda kaynakları dengelemeye çalışırken, bu sayıyı daha da azaltmak gerekebilir.
Kuyruk yapılandırmasını değiştirmek için:
Aşağıdaki örnekample portu 32 Tx/Rx kuyruğuna ayarlar: ethtool -L ethX combined 32
Exampçıktı:
ethtool -l ethX
ethX için kanal parametreleri: Önceden ayarlanmış maksimumlar:
Alım: 96
Teksas: 96
Diğer: 1
Kombine: 96
Mevcut donanım ayarları:
Alım: 0
Teksas: 0
Diğer: 1
Kombine: 32
4.3 Kesinti Denetimi
Uyarlanabilir kesinti denetimi varsayılan olarak açıktır ve düşük CPU kullanımı ile yüksek performans arasında dengeli bir yaklaşım sağlamak üzere tasarlanmıştır. Ancak, kullanım durumunuza uyması için kesinti ayarlarını manuel olarak ayarlamayı deneyebilirsiniz.
0-235 mikrosaniye aralığı saniyede 4,310 ila 250,000 kesintinin etkili aralığını sağlar. rx-μsecs-high değeri aynı ethtool komutunda rx-μsecs ve tx-μsecs'den bağımsız olarak ayarlanabilir ve ayrıca adaptif kesinti moderasyon algoritmasından da bağımsızdır. Altta yatan donanım 2 mikrosaniyelik aralıklarla granülariteyi destekler, bu nedenle bitişik değerler aynı kesinti oranıyla sonuçlanabilir.

  • Uyarlamalı kesinti denetimini kapatmak için: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Uyarlamalı kesinti denetimini açmak için: ethtool -C ethX adaptive-rx on adaptive-tx on

Genel ayarlama için başlamak için iyi bir yer 84 μs veya ~12000 kesinti/s'dir. Trafik sırasında rx_dropped sayaçlarının çalıştığını görürseniz (ethtool -S ethX kullanarak) muhtemelen çok yavaş bir CPU'nuz, 84 μs için paketleri tutmak için adaptörün halka boyutundan (ethtool -G) yeterli arabelleğiniz yoktur veya çok düşük bir kesinti oranınız vardır.

  • Kesinti moderasyonunu kesintiler arasında sabit 84 μs'lik bir kesinti oranına ayarlamak için (12000 kesinti/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 CPU kullanımında maksimuma ulaşmadıysanız deneyeceğiniz bir sonraki değer 62 μs'dir. Bu daha fazla CPU kullanır, ancak arabellekleri daha hızlı işler ve daha az tanımlayıcı gerektirir (halka boyutu, ethtool -G).
  • Kesinti moderasyonunun, kesintiler arasında sabit 62 usecs kesinti oranına (16000 kesinti/s) ayarlanması. ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Trafik sırasında rx_dropped sayaçları artarsa ​​(ethtool -S ethX kullanarak), muhtemelen çok yavaş bir CPU'nuz, adaptörün halka boyutundan (ethtool -G) yeterli arabelleğiniz yoktur veya çok düşük bir kesme oranınız vardır. CPU kullanımında maksimuma ulaşmadıysanız, ITR değerini düşürerek kesme oranını artırabilirsiniz. Bu daha fazla CPU kullanır, ancak arabellekleri daha hızlı işler ve daha az tanımlayıcı gerektirir (halka boyutu, ethtool -G).
    CPU'nuz %100'deyse, kesme oranını artırmanız önerilmez. CPU'ya bağlı bir iş yükü gibi belirli durumlarda, diğer uygulamalar için daha fazla CPU süresi sağlamak amacıyla μs değerini artırmak isteyebilirsiniz.
    Düşük gecikme performansına ihtiyacınız varsa ve/veya ağ işlemlerine ayırabileceğiniz bol miktarda CPU'nuz varsa, kesme denetimini tamamen devre dışı bırakabilirsiniz; bu, kesmelerin mümkün olduğunca hızlı çalışmasını sağlar.
  • Kesinti denetimini devre dışı bırakmak için ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

NOT
Kesme denetimi devre dışı bırakılarak çalıştırıldığında, her kuyruktaki kesme oranı çok yüksek olabilir. Kesme oranına bir üst sınır koymak için rx-usec-high parametresini eklemeyi düşünün. Aşağıdaki komut, uyarlanabilir kesme denetimini devre dışı bırakır ve bir alma veya iletmenin tamamlandığını belirtmeden önce en fazla 5 mikrosaniye geçmesine izin verir. Saniyede 200,000'e kadar kesmeye neden olmak yerine, rx-usec-high parametresi aracılığıyla saniyedeki toplam kesmeyi 50,000 ile sınırlar. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 İş yükü için en uygun değeri bulmak üzere, iletim/alım/yüksek öncelikli birleştirme zamanlayıcısını daha yüksek (80/100/150/200) veya daha düşük (25/20/10/5) ayarlamayı deneyin.
4.4 Yüzük Boyutu
ethtool -S ethX (rx_dropped, rx_dropped.nic) içinde rx_dropped sayaçlarını görüyorsanız veya birden fazla etkin kuyrukla önbellek baskısından şüpheleniyorsanız, halka boyutunu varsayılan değerden ayarlamayı deneyebilirsiniz. Varsayılan değer 512'dir, maksimum değer 4096'dır.

  • Mevcut değerleri kontrol etmek için: ethtool -g ethX
    Mevcut kesme oranında düşüşlere neden olan şeyin arabelleğe alma eksikliği olduğundan şüpheleniyorsanız, önce maksimumu, sonra minimumu deneyebilir ve en iyi performansı görene kadar ikili aramada devam edebilirsiniz.
    Önbellek baskısı şüphesi varsa (birçok kuyruk etkinse) varsayılan tamponları azaltmak Intel ® Data Direct G/Ç'nin (Intel ® DDIO) daha verimli çalışmasına yardımcı olabilir. Intel, rx_dropped'da bir artıştan kaçınmak için ethtool -C aracılığıyla kesinti oranında bir artışın gerekli olabileceğinin farkında olarak, kuyruk başına 128 veya 256 denemeyi önerir.
  • Yüzük boyutunu sabit bir değere ayarlamak için: ethtool -G eth12 rx 256 tx 256

NOT
ethtool -S ethX|grep drop ile bulunan Rx paket düşüşlerini düzeltmek için halka boyutunu 4096'ya çıkarmayı düşünün. İş yükü için en iyi ayarı bulmak için denemeler yapın ancak daha yüksek değerlerde aşırı bellek kullanımına dikkat edin.
4.5 Akış Kontrolü
Katman 2 akış denetimi TCP performansını önemli ölçüde etkileyebilir ve çoğu iş yükü için devre dışı bırakılması önerilir. Olası bir istisna, patlamaların uzun sürmediği patlamalı trafiktir.
Akış kontrolü varsayılan olarak devre dışıdır.

  • Akış denetimini etkinleştirmek için: ethtool -A ethX rx on tx on
  • Akış kontrolünü devre dışı bırakmak için: ethtool -A ethX rx off tx off

NOT
Akış kontrolünü başarıyla etkinleştirmek için akış kontrolü yeteneğine sahip bir bağlantı ortağınız olmalıdır.
4.6 Jumbo Çerçeveler
Beklenen trafik ortamı, aktarılan büyük veri bloklarından oluşuyorsa, jumbo çerçeve özelliğini etkinleştirmek faydalı olabilir. Jumbo Çerçeveler desteği, Maksimum İletim Birimi'ni (MTU) varsayılan 1500 değerinden daha büyük bir değere değiştirerek etkinleştirilir. Bu, cihazın ağ ortamında daha büyük paketler halinde veri aktarmasına olanak tanır. Bu ayar, büyük G/Ç iş yükleri için verimi iyileştirebilir ve CPU kullanımını azaltabilir. Ancak, küçük paket veya gecikmeye duyarlı iş yüklerini etkileyebilir.
NOT
Jumbo çerçeveler veya daha büyük MTU ayarları ağ ortamınız genelinde düzgün şekilde yapılandırılmalıdır.
MTU boyutunu artırmak için ifconfig komutunu kullanın. Örneğinample, aşağıdakileri girin, burada arayüz numarası: ifconfig mtu 9000 yukarı
Alternatif olarak, ip komutunu şu şekilde kullanabilirsiniz: ip link set mtu 9000 dev ip link kurulumu dev

Platform Ayarı (i40e'ye Özel Olmayan)

5.1 BIOS Ayarları

  • Sanallaştırma iş yükleri için Intel® VT-d'yi etkinleştirin.
  • Hyper-threading (mantıksal işlemciler) performansı etkileyebilir. İş yükünüz için açık veya kapalı olarak deneyin.
  • Intel® Turbo Boost, CPU çekirdeklerinin CPU'nun temel frekansından daha yüksek bir frekansta çalışmasını sağlar. Intel® Turbo Boost'u etkinleştirmek birçok iş yükü için performansı iyileştirebilir ancak çekirdekleri daha yüksek frekansta tutmak için daha fazla güç tüketir. İş yükünüz için Turbo Boost'u açık/kapalı deneyin.

NOT
Platform genel olarak yüksek CPU kullanımı yaşıyorsa turbo frekansları garanti edilmez. Genel CPU kullanımı arttıkça daha yüksek çekirdek turbo frekansları azalır.
5.2 Güç Yönetimi
Güç yönetimi, özellikle düşük gecikmeli iş yüklerinde performansı etkileyebilir. Performans, güç tüketimini düşürmekten daha yüksek bir öncelikse, Intel güç yönetiminin etkilerini sınırlamayı denemenizi önerir. Güç yönetimini, işletim sistemi araçları, BIOS ayarları ve çekirdek önyükleme parametreleri aracılığıyla sınırlamanın birçok farklı yolu vardır. Ortamınıza uygun en iyi yöntemi ve düzeyi seçin.
5.2.1 C-Devlet Kontrolü
C-durumu girişinin CO veya C1 ile sınırlandırılması performansı iyileştirir ve güç kullanımını artırır.
CPU Paketi C6 durum girişinin devre dışı bırakılması ağ performansını iyileştirebilir. Ancak bu güç kullanımını artırır.
Aşağıdaki seçenekler mevcuttur:

  • C-durum girişini dinamik olarak kontrol edin:
    Açık
    /dev/cpu_dma_latency ve buna izin verilen maksimum gecikmeyi yazın.

NOT
Bunu yapmak için açık kaynak topluluğundan indirilebilen, derlenebilen ve komut satırından çalıştırılabilen cpudmalatency.c adında küçük bir program var.
Aşağıdaki örnekample beş μs'lik uyanma süresine izin verir ve böylece C1 girişine izin verir: cpudmalatency 5 &

  • Çekirdek önyükleme ayarlarında maksimum C durumunu sınırlayın:
    Intel CPU'lar için: intel_idle.max_cstates=1
    Intel dışı CPU'lar için: processor.max_cstates=1
  • CPU C6 durumunu kontrol etmek ve devre dışı bırakmak için cpupower komutunu kullanın: Kontrol edin: cpupower monitor veya cpupower idle-info
    C6'yı devre dışı bırakın: cpupower idle-set -d3 veya
    C-Durumlarını devre dışı bırak: cpupower idle-set -D0

Notlar:

  1. Sunucuda Intel® 4. Nesil Intel® Xeon® Ölçeklenebilir İşlemci(ler) varsa CPU'daki C durumlarını devre dışı bırakın. Hyper Threading etkinleştirildiğinde veya devre dışı bırakıldığında, boşta kalma durumlarını (-D0) devre dışı bırakmak, çekirdeklerin boşta kalma dönemlerinde düşük güç durumlarına girmesini önler ve CPU'nun boşta kalma ve etkin durumlar arasında geçiş yapması için gereken gecikmeyi azaltır.
  2. Intel® 4. Nesil Intel® Xeon® Ölçeklenebilir İşlemcinin güç yönetimi son derece agresiftir. Çekirdeklerin düşük güç durumlarına girmesini önlemek için, daha uzun süre uyanık kalmalarını sağlamak için kullanımda olan çekirdek sayısını azaltmayı deneyin (ethtool -L birleştirilmiş ). Ayrıca, kesmeleri belirli çekirdeklere irq affinity (çoğunlukla -x local veya CPU çekirdekleri listesi) kullanarak bağlayın ve iş yükünün bu çekirdeklerde taskset veya numactl ile çalıştığından emin olun. Bu, çekirdekleri aktif tutarak ve kesme işlemeyi optimize ederek performansı artırır.

C6'yı etkinleştirin:
cpupower boşta-ayar -d3
C-Durumlarını Etkinleştir:
cpupower boşta-ayar -E

  • Başka bir yöntem, performans artışını ayarlamak için ayarlanmış aracı (birçok Linux dağıtımına dahildir) kullanmaktır.file. Bunlar profesyonelfileBirçok uygulamada performansı etkileyebilecek çeşitli işletim sistemi ayarlarını değiştirin. Ağ veriminin profile Çoğu iş yükünde iyileştirme sağlar.
    Kontrol etmek:
    ayarlı-adm aktif
    Ayarlamak:
    ayarlanmış-adm profile ağ verimi
    NOT
    Yukarıdaki komutlar için ayarlanmış hizmet çalışıyor olmalıdır. Kontrol etmek/yeniden başlatmak için, tuned: systemctl status tuned systemctl restart tuned
    Aşağıdakini çekirdek önyükleme satırına ekleyerek herhangi bir C-durum girişini de devre dışı bırakabilirsiniz:
    boşta=anket
  • Sistemin BIOS güç yönetimi ayarları aracılığıyla C durumunu sınırlayın, bu performans açısından bir avantaj sağlayabilirfile mevcut.
    Turbostat veya x86_energy_perf_policy gibi araçlar güç yönetimi ayarlarını kontrol etmek veya ayarlamak için kullanılabilir.

5.2.2 PCIe Güç Yönetimi
Etkin Durum Güç Yönetimi (ASPM), PCIe bağlantıları etkin kullanımda olmadığında daha düşük bir güç durumu sağlar. Bu, PCIe ağ aygıtlarında daha yüksek gecikmeye neden olabilir, bu nedenle Intel gecikmeye duyarlı iş yükleri için ASPM'yi devre dışı bırakmanızı önerir. Çekirdek önyükleme satırına aşağıdakileri ekleyerek ASPM'yi devre dışı bırakın: pcie_aspm=off
5.2.3 CPU Frekans Ölçeklemesi
CPU frekans ölçekleme (veya CPU hız ölçekleme), güç ve ısı tasarrufu için sistem saat hızının anında ayarlandığı bir Linux güç yönetimi tekniğidir. C-durumları gibi, bu da ağ bağlantılarında istenmeyen gecikmelere neden olabilir.
CPUpower aracı ayrıca CPU performans varsayılanlarını ve sınırlarını kontrol etmek ve değiştirmek için de kullanılabilir:

  • Kontrol edin: cpupower monitor veya
  • CPU'ları performans moduna ayarlayın: cpupower frequency-set -g performance

NOT
CPU frekans sınırlarında yapılan değişiklikler birçok iş yükünü etkileyebilir ve CPU turbo modu gibi diğer özellikleri devre dışı bırakabilir.
CPU frekans ölçeklemesini devre dışı bırakmak için aşağıdaki komutları kullanarak CPU güç hizmetini devre dışı bırakın:
systemctl cpupower.service'i durdur
systemctl cpupower.service'i devre dışı bırak
5.2.4 Ek Güç Yönetimi Kılavuzu
Bu üst düzey bilgilendirmede ek ayrıntılar sağlanmaktadırview 3. Nesil Intel® Xeon® Ölçeklenebilir işlemcilerdeki güç yönetimi özelliklerinin birçoğunun yanı sıra bu özelliklerin platform düzeyinde nasıl entegre edilebileceğine ilişkin rehberlik: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost, gerektiğinde işlemciyi daha hızlı hale getirir ancak ek güç tüketebilir. Turbo Boost'u kapatmak, işlemciyi sabit bir hızda tutarak belirli iş yükleri için tutarlı bir performans düzeyi sağlar.
5.4 Güvenlik Duvarları
Güvenlik duvarları performansı, özellikle gecikme performansını etkileyebilir.
Gerekmiyorsa iptables/firewalld'ı devre dışı bırakın.
5.5 Uygulama Ayarları
Genellikle tek bir iş parçacığı (tek bir ağ kuyruğuna karşılık gelir) maksimum bant genişliğine ulaşmak için yeterli değildir. AMD gibi bazı platform mimarileri, Intel tabanlı işlemcilere sahip platformlara kıyasla tek bir iş parçacığıyla daha fazla Rx paketi düşürme eğilimindedir.
Uygulamaları ağ aygıtına yerel NUMA düğümüne veya CPU çekirdeklerine sabitlemek için taskset veya numactl gibi araçları kullanmayı düşünün. Depolama G/Ç gibi bazı iş yükleri için uygulamayı yerel olmayan bir düğüme taşımak fayda sağlar.
Mümkünse uygulamanız tarafından kullanılan iş parçacığı sayısını artırmayı deneyin.
5.6 Çekirdek Sürümü
Çoğu modern kutu içi çekirdek performans için makul derecede iyi optimize edilmiştir ancak kullanım durumunuza bağlı olarak çekirdeği güncellemek gelişmiş performans sağlayabilir. Kaynağı indirmek ayrıca çekirdeği oluşturmadan önce belirli özellikleri etkinleştirmenizi/devre dışı bırakmanızı sağlar.
5.7 İşletim Sistemi/Çekirdek Ayarları
Genel işletim sistemi ayarlamaları hakkında daha fazla bilgi edinmek için Red Hat Enterprise Linux Ağ Performans Ayarlama Kılavuzu gibi işletim sistemi ayarlama kılavuzlarına başvurun.
Ayarlamak için bazı genel parametreler aşağıdaki tabloda listelenmiştir. Bunların yalnızca önerilen başlangıç ​​noktaları olduğunu ve varsayılanlardan değiştirilmelerinin sistemde kullanılan kaynakları artırabileceğini unutmayın. Değerleri artırmak performansı iyileştirmeye yardımcı olsa da, belirli bir sistem, iş yükü ve trafik türü için en iyi neyin işe yaradığını belirlemek için farklı değerlerle denemeler yapmak gerekir.
Çekirdek parametreleri Linux'ta sysctl yardımcı programını kullanarak aşağıda belirtildiği gibi yapılandırılabilir.
İle view Sistemdeki rmem ve wmem için varsayılan değerler:
sysctl net.core.rmem_varsayılan
sysctl net.core.wmem_varsayılan
Değerleri maksimuma (16 MB) ayarlayın:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Soket arabellek boyutları, alma arabelleği (rmem) ve iletim arabelleği (wmem) olarak da bilinir, gelen ve giden ağ trafiği için ayrılmış bellek miktarını belirten sistem parametreleridir.
Sysctl'yi -w argümanı olmadan çalıştırmak, parametreyi geçerli ayarıyla listeler.

Yığın Ayarı Tanım
net.core.rmem_varsayılan Varsayılan Alma Penceresi Boyutu
net.core.wmem_varsayılan Varsayılan İletim Penceresi Boyutu
net.core.rmem_max Maksimum Alma Penceresi Boyutu
net.core.wmem_max Maksimum İletim Penceresi Boyutu
net.core.optmem_max Maksimum Seçenek Bellek Arabellekleri
net.core.netdev_max_backlog Çekirdek düşmeye başlamadan önce işlenmemiş paketlerin birikmesi
net.ipv4.tcp_rmem TCP okuma tamponları için bellek rezervi
net.ipv4.tcp_wmem TCP gönderme tamponları için bellek rezervi

Çekirdek, ağ yığını, bellek işleyicisi, CPU hızı ve güç yönetimi parametreleri ağ performansı üzerinde büyük bir etkiye sahip olabilir. Yaygın bir öneri, ağ verimi pro'ya uygulamaktırfile tuned komutunu kullanarak. Bu, ağ uygulamalarına öncelik sağlamak için birkaç işletim sistemi ayarını değiştirir.
Kontrol etmek:
ayarlı-adm aktif
Ayarlamak:
ayarlanmış-adm profile ağ verimi
5.8 Ağ Aygıtı Geri Birikim
Bu özellik, gelen trafiği etkili bir şekilde yöneterek, paket kaybını azaltarak, gecikmeyi düşürerek ve verimi artırarak ağ performansını iyileştirmeye yardımcı olur. Bu, daha iyi bir kullanıcı deneyimine ve daha hızlı sistem yanıtına yol açar.
Varsayılan olarak, çoğu Linux işletim sisteminde etkindir. Varsayılan değeri kontrol etmek için:
sysctl net.core.netdev_max_backlog
netdev_max_backlog için maksimum değer, çekirdek sürümü, donanım, bellek ve iş yükü gibi faktörlere bağlı olarak değişebilir. Birçok durumda, 8192 iyi bir değer olarak görülür. sysctl -w net.core.netdev_max_backlog=8192
5.9 Platforma Özel Yapılandırmalar ve Ayarlama
5.9.1 4. Nesil Intel® Xeon® Ölçeklenebilir İşlemciler

Intel® 4. Nesil Intel® Xeon® Ölçeklenebilir işlemcinin güç yönetimi, 3. Nesil Intel® Xeon® Ölçeklenebilir işlemcilere kıyasla son derece agresiftir. Çekirdeklerin düşük güç durumlarına girmesini önlemek için, kullanımda olan çekirdek sayısını azaltarak daha uzun süre uyanık kalmalarını sağlamayı deneyin.
En Yüksek Performans İçin Önerilen Bios Ayarları

  1. CPU'da Hyper-threading'i etkinleştirme/devre dışı bırakma (iş yükü gereksinimi ve performans hedeflerine göre).
  2. Sistem pro'yu ayarlayınfile Maksimum performans için Performansa.
    NOT
    Bu, daha yüksek güç tüketimine neden olur
  3. Güç verimliliği yerine maksimum CPU performansına öncelik vermek için CPU güç yönetimini Maksimum Performans olarak ayarlayın.
  4. Turbo Boost'u etkinleştirin. Turbo Boost'u sistem BIOS ayarlarında devre dışı bırakmak, genellikle CPU'nun saat hızını temel frekansının ötesine dinamik olarak artırmasını önler.
  5. NOT
    Turbo Boost'u devre dışı bırakmak, tutarlı performansın, güç verimliliğinin veya termal yönetimin maksimum performanstan daha öncelikli olduğu belirli kullanım durumları için uygun olabilir.
  6. Sistem sanallaştırma teknolojilerini kullanmıyorsa Tek Kök G/Ç Sanallaştırma (SR-IOV) özelliğini kapatın.
  7. CPU'nun aktif kalmasını ve daha derin boşta kalma durumlarına girmesini önlemek için C durumlarını devre dışı bırakın.
  8. CPU'nun etkin kalmasını ve C1E boşta durumuna girmemesini sağlamak için C1E'yi devre dışı bırakın.
  9. Sistemin mümkün olan en yüksek frekansta çalışması talimatını vermek için çekirdek dışı frekansı maksimuma ayarlayın.
  10. Dell platformlarında, CPU çekirdeklerinin net ve öngörülebilir bir eşlemesini sağlamak için Çoklu APIC Açıklama Tablosu (MADT) çekirdek emülasyonunu Doğrusal (veya BIOS'a bağlı olarak Round-Robin) olarak ayarlayın.

Optimize Edilmiş Performans için Önerilen İşletim Sistemi Düzeyi Ayarları

  1. CPU frekans ölçekleme düzenleyicisini performansa ayarlayın. cpupower frequency-set -g performance cpupower frequency-info
  2. C-Durumlarını devre dışı bırakın. cpupower idle-set -D0
  3. Çekirdek Rx (rmem) ve Tx (wmem) tamponlarını maksimum değere ayarlayın. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Ağ aygıtı birikimini ayarlayın. sysctl -w net.core.netdev_max_backlog=8192
  5. Ayarlanmış profile (Verim/gecikme iş yüküne bağlıdır).
    ayarlanmış-adm profile ağ verimi

Optimize Edilmiş Performans için Önerilen Adaptör Seviyesi Ayarları

  1. Uygulama trafiği için kullanılacak kuyruk sayısını sınırlayın. İlişkili CPU çekirdeklerini etkin tutmak için gereken minimum kuyruk sayısını kullanın ve daha derin boşta kalma durumlarına girmelerini önleyin (iş yüküne göre ayarlayın): ethtool -L kombine 32
  2. Kesinti denetleme oranlarını ayarlayın. ethtool -C adaptif-rx kapalı adaptif-tx kapalı rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    İş yükü için en uygun değeri bulmak amacıyla, iletim/alım/yüksek öncelikli birleştirme zamanlayıcısını daha yüksek (80/100/150/200) veya daha düşük (25/20/10/5) bir değere ayarlamayı deneyin.
  3. Rx/Tx halka boyutlarını ayarlayın. ethtool -G rx4096 tx4096
    NOT
    ethtool -S| grep drop ile Rx paket düşüşleri görüyorsanız, halka boyutunu <4096'ya düşürmeyi deneyin. Paketlerin düşmediği iş yükü için en uygun değeri bulmaya çalışın.
  4. IRQ Affinity'yi ayarlayın. NIC'ye yerel çekirdekleri veya belirli çekirdek eşlemesini kullanın (burada # çekirdek sayısı, sayfa 1'da 26'de ayarlanan kuyruk sayısına eşittir). systemctl stop irqbalance set_irq_affinity -X local VEYA set_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC işlemciler, AMD'nin Zen mimarisi üzerine inşa edilmiş, sunucular ve veri merkezleri için yapılmış güçlü CPU'lardır. Aşağıdaki ayarlar AMD'nin 4. nesil EPYC serisindendir.
En Yüksek Performans İçin Önerilen BIOS Ayarları

  1. Kullanıcıların CPU performansını, güç tüketimini ve diğer ayarları ayarlamasına izin vermek için özel modu etkinleştirin. Bu, performans ve enerji verimliliği arasında en iyi dengeyi sağlamak için sistemin ince ayarını yapmaya yardımcı olur.
  2. Daha yoğun görevleri halletmek için CPU'nun hızını otomatik olarak artırmasına olanak tanımak amacıyla çekirdek performans artışını etkinleştirin ve genel performansı artırın.
  3. CPU'nun tepki süresini koruyabilen C-durumları olarak bilinen daha derin güç tasarrufu durumlarına girmesini önlemek için genel C-durum denetimini devre dışı bırakın.
    NOT
    C durumlarını devre dışı bırakmak ek güç tüketimine ve termal sıcaklıkların artmasına neden olabilir. Her ikisini de iş yükü açısından izleyin.
  4. İş yükü gereksinimi ve performans hedeflerine bağlı olarak CPU'da Eşzamanlı Çoklu İş Parçacığı (SMT) özelliğini etkinleştirin/devre dışı bırakın. SMT, Intel CPU'lardaki Hyper Threading'e eşdeğerdir.
    NOT
    Optimize edilmiş performans için, önerilen işletim sistemi ve adaptör düzeyi ayarlamaları için sayfa 40'teki i13e Sürücü Ayarlarını Ayarlama ve sayfa 40'daki Platform Ayarlama (i19e Belirli Olmayan) konularına bakın.

Adaptör Bağlantısı

Linux bağlama, sunucu ortamlarında ağ performansını, yedekliliği ve hata toleransını önemli ölçüde iyileştirebilen güçlü bir özelliktir. Ancak, düzgün çalışması için hem sunucuda hem de anahtarda uyumlu ağ donanımı ve uygun yapılandırma gerektirdiğini belirtmek önemlidir.
Linux'taki bağlama sürücüsü, birden fazla fiziksel ağ arayüzünü bağlı bir arayüzde toplamanıza olanak tanır. Bu bağlı arayüz, işletim sistemine ve uygulamalara tek bir sanal ağ arayüzü olarak görünür.
NOT
Bağ mantıksal bir arayüzdür, bu nedenle CPU yakınlığını doğrudan bağ arayüzünde (örneğin) ayarlamak mümkün değildir.ample, bond0). Yani, kesme işleme veya CPU yakınlığı üzerinde doğrudan bir kontrolü yoktur. CPU yakınlığı, bağın parçası olan temel arabirimler için yapılandırılmalıdır.
Bağlama, her biri kendine özgü özelliklere sahip çeşitli çalışma modları sağlar.

Mod  Tip
0 Yuvarlak Robin
1 Aktif Yedekleme
2 XOR
3 Yayın
4 LACP
5 Yük Dengesini Aktar
6 Uyarlanabilir Yük Dengesi

Linux'ta bir bağ oluşturmanın farklı yöntemleri vardır. En yaygın yöntemlerden biri ağ yapılandırmasını kullanmaktır files (örneğinample, /etc/network/ arayüzleri veya /etc/sysconfig/network-scripts/ifcfg-bondX).
Ağ Yapılandırmasını Kullanarak Yapılandırma Files
Aşağıdaki adımlar ağ yapılandırması aracılığıyla bağlanmayı oluşturur files.

  1. Bağlama için iki veya daha fazla NIC portu seçin (örneğinample, ethX ve ethY)
  2. Açık NIC Yapılandırması File/etc/sysconfig/network-scripts/ altındaki gerekli NIC Arayüzü için (örneğinamp(le, vi ifcfg-ethX ve vi ifcfg-ethY) ve aşağıdaki metni ekleyin:
    MASTER=bondN [Not: N, bağ numarasını belirtmek için bir tam sayıdır.] SLAVE=yes
  3. Bir bağ ağı betiği oluşturun file vi /etc/sysconfig/networkscripts/ifcfg-bondN'yi kullanarak aşağıdaki metni girin:
    DEVICE=bondN [Not: N, bağ numarasını belirtmek için bir tam sayıdır] ONBOOT=yes USERCTL=no BOOTPROTO=dhcp (veya) none
    IPADDR=200.20.2.4 [BOOTPROTO=none ise gereklidir] NETMASK=255.255.255.0 [BOOTPROTO=none ise gereklidir] NETWORK=200.20.2.0 [BOOTPROTO=none ise gereklidir] BROADCAST=200.20.2.255 [BOOTPROTO=none ise gereklidir] BONDING_OPTS=”mode=1 miimon=100″
    NOT
    Mod, gereksinime bağlı olarak 0 ile 6 arasında herhangi bir tam sayı olabilir.
  4. Ağ hizmetlerini service network restart veya systemctl restart NetworkManager.service kullanarak yeniden başlatın

Performans Sorun Giderme

7.1 CPU Kullanımı
İş yükü çalışırken çekirdek başına CPU kullanımını kontrol edin.
Çekirdek başına kullanımın, ağ kuyruğu başına CPU kullanımı hakkında bir fikir verdiği için genel CPU kullanımından daha çok performansla ilgili olduğunu unutmayın. Ağ trafiğini çalıştıran yalnızca birkaç iş parçacığınız varsa, yalnızca birkaç çekirdeğiniz kullanılıyor olabilir. Ancak, bu çekirdekler %100'deyse, ağ veriminiz muhtemelen CPU kullanımıyla sınırlıdır ve aşağıdakileri gerçekleştirmenin zamanı gelmiştir:

  1. Kesinti Denetimi'nde ayrıntılı olarak açıklandığı gibi IRQ denetimini/zil boyutunu ayarlayın.
  2. CPU yükünü daha fazla çekirdeğe dağıtmak için uygulama iş parçacığı sayısını artırın. Tüm çekirdekler %100'de çalışıyorsa uygulamanız ağ bağlantılı olmaktan ziyade CPU bağlantılı olabilir.

Yaygın olarak bulunan araçlar:

  • tepe
    — CPU listesini genişletmek ve hangilerinin kullanıldığını kontrol etmek için 1'e basın.
    — Kullanım düzeyine dikkat edin.
    — Hangi süreçlerin en aktif (listenin en üstünde) olarak listelendiğine dikkat edin.
  • mpstat
    Aşağıdaki örnekampKomut satırı Red Hat Enterprise Linux 7.x üzerinde test edildi.
    Çekirdek başına CPU kullanımını görüntüler (toplam boşta kalma yüzdesini bularak ve 100'den çıkararak) ve %80'in üzerindeki değerleri kırmızıyla vurgular. mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column
  • perf top Döngülerin nerede harcandığına bakın.

7.2 i40e Sayaçları
i40e sürücüsü, ethtool -S ethX komutu aracılığıyla arayüz hata ayıklama ve izleme için uzun bir sayaç listesi sağlar. Bir iş yükü çalışırken çıktıyı izlemek ve/veya bir iş yükü çalıştırılmadan önce ve sonra sayaç değerlerini karşılaştırmak faydalı olabilir.

  • i40e sayaçlarının tam dökümünü almak için: ethtool -S ethX
  • Sadece sıfır olmayan sayaçları izlemek için: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
    Dikkat etmeniz gereken bazı şeyler:
  • rx_dropped, CPU'nun tamponları yeterince hızlı servis etmediği anlamına gelir.
  • port.rx_dropped, yuvada/bellekte/sistemde bir şeyin yeterince hızlı olmadığı anlamına gelir.

7.3 Ağ Sayaçları
İş yükü çalıştırmadan önce/sonra netstat -s'yi kontrol edin.
Netstat, sistemdeki tüm ağ aygıtlarından ağ bilgilerini toplar. Bu nedenle, sonuçlar test edilen ağ dışındaki ağlardan etkilenebilir. netstat -s çıktısı, Linux işletim sistemi veya çekirdeğindeki performans sorunlarının iyi bir göstergesi olabilir. Genel işletim sistemi ayarlaması hakkında daha fazla bilgi için Red Hat Enterprise Linux Network Performance Tuning Guide gibi işletim sistemi ayarlama kılavuzlarına bakın.
7.4 Sistem Günlükleri
Hatalar ve uyarılar için sistem günlüklerini kontrol edin (/var/log/messages, dmesg).
7.5 Intel svr-info Aracı
Intel bir svr-info aracı sağlar (bkz. https://github.com/intel/svr-info) Linux için bir sunucudan ilgili donanım ve yazılım ayrıntılarını yakalar. svr-info çıktısı, iş yükü için optimize edilmemiş sistem darboğazlarını veya ayarları/ayarları belirlemek için son derece yararlı olabilir. Intel ile Ethernet ile ilgili performans sorunları için bir destek vakası açarken, svr-info çıktısını (metin) eklediğinizden emin olun file) test yapılandırmasındaki her Linux sunucusu için.

  1. Svr-info'yu indirin ve kurun:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-bilgisi
    ./svr-bilgisi
    > ana bilgisayar adı.txt
  2. Çıktıyı topla:
    ./svr-info > anabilgisayar_adı.txt
  3. Bir metin ekleyin (.txt) file Her sunucu için Intel destek durumunuza analiz için başvurun.

Ortak Performans Senaryoları için Öneriler

8.1 IP Yönlendirme

  • Çekirdeği güncelleyin.
    Bazı yeni dağıtım içi çekirdekler, güvenlik nedeniyle yönlendirme önbelleğinin kaldırılmasıyla başlayarak yönlendirme kodundaki çekirdek değişiklikleri nedeniyle yönlendirme performansını düşürdü. Son dağıtım dışı çekirdekler, bu değişikliklerin performans etkisini hafifleten ve gelişmiş performans sağlayabilecek yamalara sahip olmalıdır.
  • Hyper-threading'i (mantıksal çekirdekleri) devre dışı bırakın.
  • Çekirdek önyükleme parametrelerini düzenleyin.
    — Sanallaştırma için gerekmediği sürece çekirdek önyükleme satırından iommu'yu zorla kapatın (intel_iommu=off veya iommu=off)
    — Güç yönetimini kapatın: işlemci.max_cstates=1 idle=poll pcie_aspm=off
  • Kuyruk sayısını yerel soket üzerindeki çekirdek sayısına eşit olacak şekilde sınırlayın (bu örnekte 12)ample). ethtool -L ethX kombine 12
  • Pin kesintileri yalnızca yerel sokete gider. set_irq_affinity -X yerel ethX VEYA set_irq_affinity -X yerel ethX
    NOT
    İş yüküne göre -X veya -x kullanılabilir.
  • Gerektiğinde Tx ve Rx halka boyutlarını değiştirin. Daha büyük bir değer daha fazla kaynak alır ancak daha iyi yönlendirme oranları sağlayabilir. ethtool -G ethX rx 4096 tx 4096
  • Yönlendirme sırasında GRO'yu devre dışı bırakın.
    Bilinen bir çekirdek sorunu nedeniyle, yönlendirme/iletim sırasında GRO kapatılmalıdır. ethtool -K ethX gro off Burada ethX, değiştirilecek Ethernet arabirimidir.
  • Uyarlamalı kesinti denetimini devre dışı bırakın ve statik bir değer ayarlayın. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

NOT
İşlemcinin türüne ve iş yüküne bağlı olarak, RX ve TX için birleştirme parametreleri, gelişmiş performans (veya daha az kare kaybı) için ayarlanabilir.

  • Güvenlik duvarını devre dışı bırakın. sudo systemctl disable firewalld sudo systemctl stop firewalld
  • IP yönlendirmeyi etkinleştirin. sysctl -w net.ipv4.ip_forward=1
  • Alma ve gönderme soket arabellek boyutları için maksimum değerleri yapılandırın. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

NOT
İş yüküne veya gereksinime göre bu değerler varsayılan değerlerden değiştirilebilir.
8.2 Düşük Gecikme

  • Hyper-threading'i (mantıksal çekirdekler) KAPATIN.
  • Ağ aygıtının numa core 0'a yerel olduğundan emin olun.
  • taskset -c 0 komutunu kullanarak kıyaslama değerini çekirdek 0'a sabitleyin.
  • systemctl stop irqbalance veya systemctl disable irqbalance kullanarak irqbalance'ı kapatın
  • Çekirdekler arasında yayılmak için affinity betiğini çalıştırın. Yerel veya hepsini deneyin.
  • Kesinti denetimini kapatın. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Kuyruk sayısını yerel soket üzerindeki çekirdek sayısına eşit olacak şekilde sınırlayın (bu örnekte 32)ample). ethtool -L ethX kombine 32
  • Pin kesintileri yalnızca yerel sokete yapılır (i40e sürücü kaynağıyla paketlenmiş betik). set_irq_affinity -X yerel ethX
  • netperf -t TCP_RR, netperf -t UDP_RR veya NetPipe gibi yerleşik bir kıyaslama ölçütü kullanın. netperf -t TCP_RR veya netperf -t UDP_RR
  • Pin kıyaslamasını yerel NUMA düğümündeki tek bir çekirdeğe sabitleyin. taskset -c

Intel ® Ethernet 700 Serisi
Linux Performans Ayarlama Kılavuzu
Aralık 2024
Belge No.: 334019, Rev.: 1.2

Belgeler / Kaynaklar

Intel Ethernet 700 Serisi Linux Performans Ayarı [pdf] Kullanıcı Kılavuzu
334019, Ethernet 700 Serisi Linux Performans Ayarı, Ethernet 700 Serisi, Linux Performans Ayarı, Performans Ayarı, Ayarlama

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *