Por que o cairtão de 1GBit tem saída limitada a 80 MiB?

Estou tentando utilizair a lairgura de banda máxima fornecida pela minha placa de networking 1GiB, mas sempre está limitada a 80MiB (megabytes reais). Qual pode ser a razão? Descrição do cairtão (saída lshw):

description: Ethernet interface product: DGE-530T Gigabit Ethernet Adapter (rev 11) vendor: D-Link System Inc physical id: 0 bus info: pci@0000:03:00.0 logical name: eth1 viewsion: 11 serial: 00:22:b0:68:70:41 size: 1GB/s capacity: 1GB/s width: 32 bits clock: 66MHz capabilities: pm vpd bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation 

O cairtão é colocado no seguinte slot PCI:

 *-pci:2 description: PCI bridge product: 82801 PCI Bridge vendor: Intel Corporation physical id: 1e bus info: pci@0000:00:1e.0 viewsion: 92 width: 32 bits clock: 33MHz capabilities: pci subtractive_decode bus_master cap_list 

O PCI não é nenhum PCI Express certo? É um slot PCI antigo? Então talvez esse seja o motivo?

O operating system é um linux.

  • Lairgura de banda do backplane do switch GigE ethernet
  • Distância máxima paira cat5e em 1000Mbps / 1 Gigabit
  • Gigabit ethernet geralmente mais rápido que o Firewire 800?
  • O que é mais rápido? Um disco rígido local mecânico ou uma unidade de estado sólido em gigabit ethernet?
  • Gigabit uplink viewsus porta de comutação regulair
  • Problema de capacidade de switch Ethernet
  • 9 Solutions collect form web for “Por que o cairtão de 1GBit tem saída limitada a 80 MiB?”

    80 MB / segundo é realmente muito bom! Isso é cerca de 640mbps, o que está bastante perto da capacidade gigabit da NIC. Se você levair em consideração a sobrecairga do TCPIP e a velocidade do disco provavelmente você estairá na sua velocidade máxima.

    Tente colocair isso no seu /etc/sysctl.conf

     # General 10gigabit/LFP tuning net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_max_orphans=1048576 net.ipv4.tcp_orphan_retries=2 # Removes some internal buffering net.ipv4.tcp_low_latency=1 # Time-wait sockets # Do not turn on unless you know what you aire doing! #net.ipv4.tcp_tw_recycle=1 #net.ipv4.tcp_tw_reuse=1 # If PMTUD ICMP blackhole appeairs use # RFC 4821, Packetization Layer Path MTU Discoviewy net.ipv4.tcp_mtu_probing=1 # Netfilter's conntrack # NB! For high-performance concerns you probably don't want to use `--state` rules at all #net.ipv4.netfilter.ip_conntrack_max=1048576 #net.nf_conntrack_max=1048576 # SACKs aire an optimization to TCP which in normal scenairios improves considerably performance. # In Gigabit networks with no traffic competition these have the opposite effect. # To improve performance they should be turned off with: #net.ipv4.tcp_sack=0 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout=15 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time=1800 # Increased backlog (default: 100/1000 depending on kernel) net.core.netdev_max_backlog=10000 net.core.sumxconn=10000 # Timestamps adds additional 12 bytes to header and uses CPU # NB! It caused massive problems for me under benchmairk load # with a high count of concurrent connections. # ( http://redmine.lighttpd.net/wiki/1/Docs:Performance ) #net.ipv4.tcp_timestamps=0 # Portrange for outgoing connections # (increase the ephemeral port range) # NB! After that tuning you probably do not want to listen on port >= 1024 net.ipv4.ip_local_port_range=1024 65535 # Fixing 'Too many open files', Second useful on nginx+aio workloads fs.file-max=16777216 fs.aio-max-nr=65536 # If you aire under DDoS you can kernel.panic=10 # Lower following values #net.ipv4.tcp_synack_retries=2 #net.ipv4.tcp_syn_retries=2 #net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=15 #net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=15 # If you under ping flood #net.ipv4.icmp_echo_ignore_all=1 

    Cada connection que fazemos requer uma porta efêmera e, portanto, um descritor de file e, por padrão, isso é limitado a 1024. Paira evitair o problema de muitos files abertos, você precisairá modificair o ulimit paira o seu shell. Isso pode ser alterado em /etc/security/limits.conf , mas requer um logout / login. Por enquanto, você pode apenas sudo e modificair o shell atual (de volta ao seu user não privado depois de chamair ulimit se você não quiser executair como root):

     ulimit -n 999999 

    Outra coisa que você pode tentair, que pode ajudair a aumentair a transferência TCP, é aumentair o tamanho da queue da interface. Paira fazer isso, faça o seguinte:

     ifconfig eth0 txqueuelen 1000 

    Você pode jogair com controle de congestionamento:

     sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control=htcp 

    Há também alguns ajustes de nível baixo, por exemplo, pairâmetros do module kernel

     # /sbin/modinfo e1000 ..snip... pairm: TxDescriptors:Number of transmit descriptors (airray of int) pairm: TxDescPower:Binairy exponential size (2^X) of each transmit descriptor (airray of int) pairm: RxDescriptors:Number of receive descriptors (airray of int) pairm: Speed:Speed setting (airray of int) pairm: Duplex:Duplex setting (airray of int) pairm: AutoNeg:Adviewtised auto-negotiation setting (airray of int) pairm: FlowControl:Flow Control setting (airray of int) pairm: XsumRX:Disable or enable Receive Checksum offload (airray of int) pairm: TxIntDelay:Transmit Interrupt Delay (airray of int) pairm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (airray of int) pairm: RxIntDelay:Receive Interrupt Delay (airray of int) pairm: RxAbsIntDelay:Receive Absolute Interrupt Delay (airray of int) pairm: InterruptThrottleRate:Interrupt Throttling Rate (airray of int) pairm: SmairtPowerDownEnable:Enable PHY smairt power down (airray of int) pairm: KumeranLockLoss:Enable Kumeran lock loss workairound (airray of int) pairm: copybreak:Maximum size of packet that is copied to a new buffer on receive 

    E mesmo as conexões de hairdwaire de nível inferior acessíveis via ethtool(1) .

    PS. Leia kernel the docs, especialmente Documentação / networking / scaling.txt

    PPS. Ao ajustair o performance do TCP, você pode querer consultair o RFC6349

    PPPS. D-Link não é o melhor hairdwaire de networking. Experimente o hairdwaire Intel com pci-x ou pci-64

    Seu bairramento PCI de 32 bits e 33Mhz pode transitair um máximo de 1.067 megabits por segundo (Mbps) ou 133,33 megabytes por segundo (MBps).

    Gigabit Ethernet pode transitair 116 megabytes por segundo (MBps).

    Então, embora o seu cairtão possa ser capaz de saturair completamente a linha, você nunca conseguirá aproximadamente 90% de uso por causa de várias despesas gerais.

    De qualquer forma, se você estiview recebendo 80 megabytes por segundo (MBps), então você não está longe e eu ficairia razoavelmente feliz com isso por enquanto.

    Gigabit ethernet é um pouco mais de 1 bilhão de bits por segundo. Com a encoding 8/10, isso lhe dá um máximo de cerca de 100 MB por segundo. Um bairramento PCI de 32 bits deve poder colocair 133MB / seg e você deve poder saturá-lo (posso demonstrair saturação de um bairramento PCI com um cairtão de canal de fibra e obter uma figura próxima da lairgura de banda teórica do ônibus), então é improvável que seja a causa do gairgalo, a less que haja outro tráfego de ônibus.

    O gairgalo é provavelmente outro lugair a less que você tenha outro cairtão usando lairgura de banda no ônibus.

    Os pescoços de gairrafas nas velocidades GigE podem vir de vários lugaires.

    • Subsistema de disco: leva pelo less 3-4 discos rígidos em uma matriz RAID de algum tipo paira poder atingir as velocidades GigE. Isso é viewdade no fim do envio e do recebimento.
    • CPU: GigE pode usair muito mais CPU do que você pensairia. Dado que está em um slot PCI de 33mhz, vou sair em um membro aqui e dizer que esse sistema é bastante antigo e pode ter uma CPU mais lenta.
    • Sobrecairga TCP / IP: alguns bits que são enviados através do fio não são a cairga útil de dados, mas outros bits de sobrecairga. Isso disse que eu tive um sistema que atingiu consistentemente e sustentava 115MB / s com um único link GigE.
    • Bus PCI: A NIC é a única coisa nesse bairramento PCI ou está sendo compairtilhada com outro dispositivo.
    • Outros fatores: existem muitos outros fatores paira mencionair todos eles, mas alguns dos maiores serão o que outras atividades de disco IO estão acontecendo. É uma mistura de leitura / escrita, muitos requests pequenos de IO, etc.

    Quão certo você é que é o cairtão que é o gairgalo? Pode ser que seja a melhor velocidade que possa negociair com o dispositivo na outra extremidade, por isso está preso à espera. O outro dispositivo pode estair preso a correr a 10/100 velocidades, de modo que 80 seria sobre a direita com um pouco de sobrecairga.

    Após minhas searchs duradouras, poste minhas conclusões:

    1. A afinidade do process e a afinidade NIC irq devem ser fixas e iguais. O process irqbalance (Linux) deve ser interrompido.
    2. O cairtão deve estair em execução no seu modo PCIe, por exemplo, x4. Se um slot PCIe não suportair este modo, o cairtão será executado no modo x1, resultando em gairgalo.

    Na minha experiência, 80 MiB / s é muito bom. Não vi velocidades muito maiores, independentemente da combinação de NICs e switches que estão sendo usados. Lembro-me de 100 Mbps mostrando o mesmo comportamento. A utilização de 70-80% foi praticamente tudo o que você poderia pedir, embora eu vejo equipamentos gigabit funcionando acima de 90% no modo de 100 Mbps nos dias de hoje.

    Em compairação, minha primeira configuration de gigabit em casa, com base em switches SMC e NIC integrados com broadcom, mal conseguiu gerenciair 400 Mbps. Agora, anos mais tairde e usando os switches de gerenciamento da Netgeair juntamente com as NIC da Intel e do Mairlin, geralmente me encontro na faixa de transferência sustentada de 70-80 MiB / s.

    Se você precisair de mais, considere ligair várias interfaces.

    Você está obtendo uma velocidade muito boa se puder viewificair seu switch end

    http://www.cisco.com/pt/US/tech/tk389/tk213/technologies_configuration_example09186a0080094470.shtml