PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anforderung CPU für 20 Gbit/s


Godmode
2018-04-12, 17:03:35
Weiß von euch jemand, was für CPU ich benötige, damit ich eine Netzwerkkarte mit je 2 SFP+ Ports mit je 10 Gbit/s füttern kann? Oder macht das alles die Netzwerkkarte?

EL_Mariachi
2018-04-12, 17:20:48
Was willst Du denn tun?

.

Ganon
2018-04-12, 18:23:06
Hauptproblem dürfte eher sein, dass deine Datenquelle auch die 2,5 Gbyte/s bedienen kann. Erst wenn man weiß was du anbieten willst, kann man halbwegs abschätzen wie viel CPU-Leistung du brauchst.

Ein NFS Server ist halt immer noch was anderes als ein NextCloud Server, mal doof gesagt :D

Godmode
2018-04-12, 18:32:53
Im schlimmsten Fall 400 Gb in möglichst kurzer Zeit übertragen.

Daten liegen in einer Ramdisk. Hatten Nfs, haben das jetzt aber TFTP umgestellt.

Ganon
2018-04-12, 19:33:53
Na eine CPU die 512GB RAM adressieren kann, dürfte dann auch schnell genug dafür sein. Die Leistung selbst sollte dann da eher eine untergeordnete Rolle spielen, bei all den Anforderungen drum rum.

Haarmann
2018-04-13, 06:34:41
Weiß von euch jemand, was für CPU ich benötige, damit ich eine Netzwerkkarte mit je 2 SFP+ Ports mit je 10 Gbit/s füttern kann? Oder macht das alles die Netzwerkkarte?

Ich nutze sowas für die Hyperkonvergente Testumgebung - wichtiger ist da eigentlich ob die direkt aufs RAM dürfen/können oder nicht.

An welche Karten wird da gedacht?

Godmode
2018-04-13, 13:41:37
Ich nutze sowas für die Hyperkonvergente Testumgebung - wichtiger ist da eigentlich ob die direkt aufs RAM dürfen/können oder nicht.

An welche Karten wird da gedacht?

Ich habe eine Intel X710-DA2 bestellt.

Joe
2018-04-13, 18:13:06
Moderne Netzwerkkarten haben eigentlich alle eine Hardwarebeschleunigung eingebaut. Ähnlich wie eine GPU. Wenn das OS bzw. der Hypervisor das Unterstützt schlägt da quasi gar nix mehr auf die CPU durch. Ansonsten kommt da überraschen viel an.
Ich hab die Zahlen nicht mehr ganz im Kopf aber wir hatten vor paar Jahren mal einen Fall, wo man die Hardwarebeschleunigung ausschalten musste, weil Hyper-V in Kombination mit der HP Netzwerkkarte einen Bug hatte und das hat dann quasi die ganze CPU Leistung aufgefressen. Wenn ich mich recht erinnere war das ein 6 Kern Xeon und nur 2x 10Gbit.

/edit

Überleg nur mal, wie viele Daten über den PCIe gepumpt werden, in dem deine GPU steckt. Dagegen sind 40GBit/s ein Witz und davon merkst auf deiner CPU auch nicht viel.
Weiß grad gar nicht was die Spezifikation für einen 16x PCIe ist. Etwa 300GBit/s ?!

Godmode
2018-04-14, 10:59:48
Ja das stimmt natürlich. Bei einem PCIe 3.0 x16 Slot müssten das 16 GB/s bidirektional sein.

Die Switches sind übrigens gestern gekommen. Mikrotik CRS317 als Core und einige CRS326 dann direkt am Core-Switch mit 10 Gb/s. Die Netzwerkkarte kommt dann hoffentlich am Montag.

Haarmann
2018-04-14, 12:20:04
Ich habe eine Intel X710-DA2 bestellt.

Passt - die kann das Geforderte.

Ergo muss die CPU wohl vor Allem mit RAM umgehen können und die IO Anbindung muss passen. Damit fallen viele kleine CPUs schon mal durch.

myMind
2018-04-14, 14:26:23
Weiß von euch jemand, was für CPU ich benötige, damit ich eine Netzwerkkarte mit je 2 SFP+ Ports mit je 10 Gbit/s füttern kann? Oder macht das alles die Netzwerkkarte?
Da ich sowieso gerade an dem Thema bin hier mal ein Screenshot.
Kopieren von RAM-Disk zu RAM-Disk. 10 GB Zufallsdaten.
Netzwerkkarten sind Mellanox ConnectX-3 10Gbps.
Das Bild zeigt zwei Kopiervorgänge einmal vom phyischen PC (i7-6700) auf eine VM mit 2 Kernen (Host Xeon E3-1230v3) und einmal umgekehrt; der letztere ist auf dem Bild gerade im Gange.

Das Ziel hat mehr zu tun als die Quelle. Die CPU-Last beim physischen Rechner liegt bei ~+15% als Quelle und ~+27% als Ziel. Bei der VM muss man etwas anders rechnen, da sie nur 2 der 4/4 Kerne hat. Für einen echten Rechner der Generation dürfte die Last etwa halb so groß sein.

Die Last fällt hauptsächlich in den Prozessen System, svchost und Systemunterbrechungen an. Der Explorer zuckt auch etwas. Auf der VM leigen die Lasten der Systemunterbrechungen bei 5 bis 20%.

Es ist natürlich auch möglich, dass von der Last einiges im RAM-Disk Treiber erzeugt wird. Das kann man leider nicht sehen. Aber für eine grobe Orientierung sollte es reichen.

Godmode
2018-04-14, 14:47:49
Passt - die kann das Geforderte.

Ergo muss die CPU wohl vor Allem mit RAM umgehen können und die IO Anbindung muss passen. Damit fallen viele kleine CPUs schon mal durch.

Ok, dass sollte dann alles so passen, wie von mir geplant.


Da ich sowieso gerade an dem Thema bin hier mal ein Screenshot.
Kopieren von RAM-Disk zu RAM-Disk. 10 GB Zufallsdaten.
Netzwerkkarten sind Mellanox ConnectX-3 10Gbps.
Das Bild zeigt zwei Kopiervorgänge einmal vom phyischen PC (i7-6700) auf eine VM mit 2 Kernen (Host Xeon E3-1230v3) und einmal umgekehrt; der letztere ist auf dem Bild gerade im Gange.

Das Ziel hat mehr zu tun als die Quelle. Die CPU-Last beim physischen Rechner liegt bei ~+15% als Quelle und ~+27% als Ziel. Bei der VM muss man etwas anders rechnen, da sie nur 2 der 4/4 Kerne hat. Für einen echten Rechner der Generation dürfte die Last etwa halb so groß sein.

Die Last fällt hauptsächlich in den Prozessen System, svchost und Systemunterbrechungen an. Der Explorer zuckt auch etwas. Auf der VM leigen die Lasten der Systemunterbrechungen bei 5 bis 20%.

Es ist natürlich auch möglich, dass von der Last einiges im RAM-Disk Treiber erzeugt wird. Das kann man leider nicht sehen. Aber für eine grobe Orientierung sollte es reichen.

Bei mir ist es so, dass die Ziel-Hosts nur mit 1 Gigabit angebunden sind, aber es gibt genug Ziel-Hosts, daher sollte ich die 20 Gigabit (2x10) locker auslasten können. Eventuell wird aber die CPU im Server zum aufrüsten, weil aktuell ist dort nur ein Celeron G3900 mit 2 Kernen verbaut. Mit 1 Gigabit hatte ich ca. 10% CPU-Last.

Die zwei Interfaces hätte ich dann noch mit Bonding verbunden, dass sie wie ein Interface auftreten: https://help.ubuntu.com/community/UbuntuBonding

Screemer
2018-04-14, 14:58:08
Umbau der Mining Farm? Hälst du die blockchain zentral vor um sie nicht auf jeden Rechner separat aktuell halten zu müssen?

Godmode
2018-04-14, 15:07:03
Nein ich muss Images für PXE-Boot übertragen.

Birdman
2018-04-14, 17:33:48
Netzwerkkarten sind Mellanox ConnectX-3 10Gbps.
Mellanox Karten können RDMA, was die CPU mitunter massiv entlastet - allerdings weiss ich nicht ob das bei dir aktiv war und genutzt wurde.

Die Intel X710 können dies nicht, zudem ist das Intel RDMA (iWARP) grundsätzlich schlechter als das was Mellanox bietet.

Anyway, ich hofffe für GodMode, dass die X710 bei Ihm stabil laufen.
Für VMWare ESX gibts für diese Karten bis heute keine stabilen Treiber und Firmware um diese mit aktiviertem TSO (TCP Segmentation Offload) und LRO (Large Receive Offload) zu betreiben.
Aus unseren CentOS basierten KVM Clustern mussten wir die Karten auch wieder entfernen und auf die Intel X520-DA2 zurückgehen, da nur Probleme mit gehabt.


Trotzdem sollte man sich keine zu grossen Gedanken über CPU Load machen - die kann bei 10Gbit+ schon kritisch sein, aber nicht bei PXE wo in der Regel nur grosse Pakete (~1500Bytes) übers Netz gehen. Mit aktiven Jumbo Frames wird das ganze noch unproblematischer.

Godmode
2018-04-14, 18:34:23
Hmm dann hoffe ich einfach, dass das funktioniert. Wir verwenden aktuell VirtualBox von Oracle, auf einem Ubuntu 16.04 Host.

Ich wusste übrigens nicht, das 10 Gigabit so billig ist, dachte immer dort bist du im Bereich mehrere hundert Euro.

myMind
2018-04-14, 23:08:48
Mellanox Karten können RDMA, was die CPU mitunter massiv entlastet - allerdings weiss ich nicht ob das bei dir aktiv war und genutzt wurde.
War nicht aktiv. Auf Windows 10 Clients kriege ich beim Aufruf von Get-SmbServerNetworkInterface immer RDMA=False zurückgeliefert. Auf Server 2016 geht's prinzipiell, aber es fehlt mir eine Gegenstelle, die das auch kann.

Bei ESX funktioniert es mangels passender VMs bei mir nicht. PVRDMA Support (https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.networking.doc/GUID-4A5EBD44-FB1E-4A83-BB47-BBC65181E1C2.html) funktioniert nur für einige 64-bit Linuxe, wenn ich das richtig verstehe. Etwas seltsam, dass Windows Server hier offenbar nicht unterstützt wird.

Jasch
2018-04-17, 11:58:05
Nur als Hinweis PXE is Arschlahm.
Man kann aber die Packetsize anheben
https://www.alexandreviot.net/2015/07/09/sccm-2012-how-to-increase-tftp-pxe-boot-speed/

Oder gleich ipxe nehmen(nutze ich)
https://ipxe.org/
Dort machts einen Chainload, pxe rom bootet ipxe rom und das kann dann http(und anders) und full speed.

Godmode
2018-04-17, 13:24:49
Wir booten nur einen Mini-Kernel über PXE. Sobald dieser Kernel geladen ist, laden wir die restlichen 1,5 GB über FTP nach, was dann mit voller Geschwindigkeit läuft.

Godmode
2018-04-18, 15:29:18
750 Mbyte/s schaffe ich jetzt auf einem 10G-Port, bei vernachlässigbarer CPU-Last. Anfangs waren es nur ca. 300 Mbyte/s, aber durch ein paar Parameteränderungen in Ubuntu, könnte ich die Datenrate verdoppeln.

Joe
2018-04-19, 00:07:00
Spiel dich mal etwas mit den verschiedenen Treiberversionen für die Karte.
Ich bin immer wieder platt, was das ausmachen kann.
Bei den Intel 750SSDs unter VMware kannst mal eben mit nem älteren Treiber die Leserate verdoppeln :rolleyes:

Oft haben gerade die neueren Treiber irgendwelche Features, die Dich in deinem Anwendungsfall jetzt überhaupt nicht interessieren aber Leistung ziehen.

Godmode
2018-04-19, 10:41:16
Eins ist noch seltsam: Wenn ich z.B. mit iperf von 10 Clients Daten an den Server sende, erreiche ich 10 Gigabit/s. Beim umgekehrten Fall, dass der Server Daten an 10 Clients sendet, erreich ich gerade mal 7 Gigabit/s. CPU Last liegt dabei bei ca. 10%.

Den Tuning-Guide von Intel habe ich schon durch: https://www.intel.com/content/dam/www/public/us/en/documents/reference-guides/xl710-x710-performance-tuning-linux-guide.pdf
Weiters habe ich den Treiber und die Firmware auf den neuesten Stand gebracht.

Jasch
2018-04-19, 14:58:08
mit 10 gleichzeitigen streams 10gbit zu erreichen ist leicht, mit einem wirds schwer(auch wenn das jetzt nicht dein Anwendungsfall ist).

Meiner Erfahrung(unter BSD) nach.(wie die werte jetzt unter Linux heißen weiss ich nicht 1:1)
Interrupt M. aus
rx tx buffer auf 4096(unter win kann man den rx sogar auf 16MB setzten)
num_queues je nach CPU auf passenden wert 8 für 8CPU...(gibt nur bestimmte je nach treiber 2 4 8 12...).
tx und rx _process_limit hochsetzen oder -1(unlim.)

dazu noch bestimmte Kernelparameter anpassen (muss man schauen was es da im Linux gibt)
zb.
net.inet.tcp.cc.algorithm htcp
net.inet.tcp.cc.htcp.adaptive_backoff
net.inet.tcp.cc.htcp.rtt_scaling
net.inet.tcp.recvbuf_inc
net.inet.tcp.recvbuf_max

Godmode
2018-04-19, 18:13:49
Danke! Ein paar dieser Werte habe ich schon angepasst und konnte so von 4 auf 7,5 Gbit/s kommen. Ich werde morgen noch die Kernelparameter testen.

Da die CPU-Last aus der VM heraus doch höher ist, habe ich jetzt noch je zwei 6-Kerner bestellt. Probleme mit Hardware erschlagen ist einfach am einfachsten und ich spare mir Stundenlange Recherche.