Funktionsprinzip einer CPU

H

Homi169

Gast
Hallo Leute,

mich interessiert das Vorgehen einer CPU bei gleichzeitigen Anfragen verschiedener Art.

Hintergrund:
Es wird ein neuer Server Einzug in Mein Sack finden, der für VMs unter Proxmox gedacht ist.

VMs:
-Win10 hauptsächlich für Steam In-Home-Streaming
-FreeNAS mit ZFS und Dateifreigabe für die anderen VMs
-Plex Media Server
-eine VM für LiveTV streaming/recording
-eine Cloud Lösung
-evtl. noch ein Mailserver

Könnte ich eine einzelne leistungsstarke CPU installieren, oder müsste ich auf ein Multi-CPU System zurückgreifen?
Ich befürchte, das bei einem Single-CPU System z.B. das Steam Streaming laggt, wenn jemand einen Film über PLex streamt
und gleichzeitig noch ein paar NAS Anfragen kommen.
Das aber nicht, weil die CPU zu schwach wäre, sondern weil sie die Anfragen wie im Scheduler vorgesehen bearbeitet werden...
 
Schau die mal ESXi an, das ist umsonst und sehr gut.

Ein Server hat heutzutage mindesten eine CPU mit vielen Kernen. Für dich reicht wohl ein Xeon mit 8 Kernen. Es ist aber vollkommen egal wieviele Kerne der Host hat, Du kannst soviele Clients laufen lassen, wie RAM verfügbar ist.

https://www.vmware.com/de/products/vsphere-hypervisor.html
Ergänzung ()

Willst Du auf einem MAcMini virtualisieren?
 
Zuletzt bearbeitet:
Homi169 schrieb:
Das aber nicht, weil die CPU zu schwach wäre, sondern weil sie die Anfragen wie im Scheduler vorgesehen bearbeitet werden...

Das ist kein Thema, dafür gibt es Multitasking und interrupts. Wichtig ist nur dass die CPU genügend Leistung hat sodass, die verschiedenen Prozesse sich nicht in die Knie zwingen.

Wegen dem Steam in Home Streaming vermute ich dass du games streamen willst. Daher achte darauf, dass bei den meisten Virtualisierungslösungen es nicht möglich ist auf die GPU zu zu greifen und games diese somit nicht nutzen können. Gleiches bei GPU Beschleunigten Video en/decodieren.
 
Hallo!

Ein Ryzen Threadripper 1950X mit 16 Kernen und 32 Threads könnte wahrscheinlich ausreichend dimensioniert sein.
Er ist preislich unter dem Intel-Pendant Core i9 7980XE (18 Kerne) und von der Effizienz besser.
Mit 64 statt 48 Lanes bietet er auch intern mehr Anschlussmöglichkeiten als der i9.
Dazu natürlich noch ein passendes TR4-Board & 4-Kanal DDR4-Server-RAM.
Preislich sind wir dann bald bei 2000€ für das Komplettsystem.

Keine Ahnung, ob sogar ein Ryzen 1700(X), 1800X oder 2700(X) mit 8 Kernen und 16 Threads ausreichen würde.
Hier wäre ein AM4-Board ausreichend & gepaart mit 2-Kanal DDR4 oder evtl. sogar DDR4-Server-RAM.
Preislich sollte man hier bis 1000€ hinkommen für ein Komplettsystem.

Eine Steigerung zum TR 1950X sind die Server-Prozessoren Epyc 3x00 (bis zu 16C/32T) oder sogar Epyc 7x00 (bis zu 32C/64T).
Die Preise hierfür weiß ich konkret nicht.

Vielleicht kann dazu ja noch mal Jemand mit praktischer Erfahrung etwas dazu schreiben ...

Gruß, MiMo
 
Zuletzt bearbeitet:
Mehr Kerne in einer CPU sind besser, als die selbe Kernanzahl auf zwei CPUs verteilt. Ganz einfach, weil die Kommunikation zwischen den Kernen dann intern erfolgen kann und nicht über den vergleichsweise (zu L3-Cache) lahmen Arbeitsspeicher Interconnect laufen muss.
 
Zuletzt bearbeitet:
Der Titel ist ziemlich verwirrend und deine Befürchtung ergibt so wie sie formuliert ist für mich nicht viel Sinn.
Die Scheduler sind schon nicht unbedingt dumm. Die schedulen in der Regel nicht sinnlos "falsch". Was natürlich passieren kann ist, dass wenn die CPU ausgelastet ist, die Priorisierung nicht mehr so ist, wie du sie gerne hättest und vielleicht etwas "laggt", obwohl du in dem Fall lieber hättest, wenn etwas anderes "laggen" würde und die erste Anwendung sauber liefe.
Mittel und Wege, tasks zu priorisieren, gibt es natürlich. Google ist hier dein Freund.

Insgesamt kann das Scheduling erst zum Problem werden, wenn die Leistung nicht mehr ausreicht, um alles parallel zu machen.
Eine zweite CPU macht dann Sinn, wenn die Leistung, die du brauchst, mit einer CPU nicht mehr zu bekommen ist. Oder du z.B. viel Speicherbandbreite brauchst.
Es gibt natürlich auch andere potentielle Flaschenhälse, die durch eine zweite CPU erstmal nicht erweitert werden (Netzwerk z.B.).
Wie viel Leistung du genau brauchst, kann ich dir nicht sagen.
Für die meisten Home-Server (auch etwas größere) ist ein Dual-Socket aber eindeutig nicht nötig.
 
Wobei man anmerken muss @Hopsekäse, dass zusätzliche Speicherkanäle auch nur wenig bringen, weil diese sich ja wiederum auf die jeweilige CPU aufteilen. 2x Quadchannel bedeutet bei zwei CPUs nicht Octachannel, weil eine CPU nur 4 der Channel nutzen kann.
 
rg88 schrieb:
Mehr Kerne in einer CPU sind besser, als die selbe Kernanzahl auf zwei CPUs verteilt. Ganz einfach, weil die Kommunikation zwischen den Kernen dann intern erfolgen kann und nicht über den vergleichsweise lahmen Arbeitsspeicher laufen muss.

die begründung ist quark. prozessoren in einem multi-socket system haben untereinander einen eigenen interconnect. wenn cpu a auf den ram von cpu b zugreifen will, ist das natürlich langsamer als beim lokalen ram, aber die kerne von cpu a und b kommunizieren nicht über den ram...
 
@rg88 (beide vorherige Beiträge)
Jein.
Deine Aussagen zum Thema NUMA und Kommunikation zwischen den Sockeln treffen nur zu, wenn eine Anwendung oder mehrere miteinander kommunizierende Anwendungen auf Kernen beider CPUs laufen.
Wenn wie hier mehrere Anwendungen laufen, die auch keine nennenswerte Kommunikation untereinander haben, ist das nicht wirklich ein Problem, vorausgesetzt die VM-Software bietet ein ordentliches Resource-Mapping (sollte sie eigentlich).

Auch läuft die Kommunikation nicht über den Arbeitsspeicher, sondern über den/die QPI-Link/s. Vereinfacht ausgedrückt sind die in etwa "zwischen eigenem L3 und RAM". Sprich die Kommunikation (bzw. eher das Teilen gemeinsam verwendeter Daten) findet primär über den L3-Cache statt.
Die Latenzen zum L3 der anderen CPU sind natürlich höher als zum eigenen L3, aber auch noch geringer als zum eigenen RAM.

Das zum "Octachannel" stimmt so auch nicht ganz.
Eine CPU kann sehr wohl die Speichercontroller der anderen CPU nutzen, nur halt nicht so performant wie die Eigenen.
Für eine einzelne Anwendung ist das natürlich nicht dasselbe wie Octachannel, vorrausgesetzt sie ist nicht so optimierbar, dass CPUs jeweils auf ihren eigenen Daten laufen. Denn dann geht durch anständiges NUMA-Mapping auch mit nur einer Anwendung quasi dasselbe durch wie durch ein Octachannel-Interface.

Viel wichtiger: Für zwei Anwendungen, die jeweils auf einem Sockel laufen und von denen jede die lokalen 4 Channel benutzt, ist es auch quasi dasselbe, potentiell sogar ein Bisschen besser, weil sich keine internen Busse geteilt werden und auch die andere Anwendung einem keine Daten aus dem shared L3-Cache kicken kann.
 
Zuletzt bearbeitet:
Ja, das war Quark. Ihr habt Recht. Eigentlich wollte ich sagen, dass die Nachteile entstehen, weil die Kommunikation nicht über den L3-Cache abgewickelt werden kann. Das stattdessen der RAM benutzt wird, ist natürlich falsch. Keine Ahnung was mich da vorhin geritten hat. Ich bessere es aus ;)

Schande über mein Haupt.
 
ok gut

kann man denn ein Board mit zwei Sockel mit nur einer CPU betreiben?
dann könnte ich später einfach nachrüsten und müsse nicht das board tauschen.
 
Klar, aber ob das sinnvoll ist? Wann willst du denn nachrüsten?
Meist gibts zu dem Zeitpunkt mehr Kerne bei einem anderen 1-Sockel-System. Und das bei weniger Energieverbrauch, als wenn du die alte Möhre nachrüstest.
Kauf dir JETZT das, was du brauchst und/oder schau drauf, dass du was nimmst, wo der Sockel noch Zukunft hat. Dann nimmst bei Upgradewünschen die alte raus, verkaufst sie und steckst ne neue, schnellere rein.
 
Homi169 schrieb:
VMs:
-Win10 hauptsächlich für Steam In-Home-Streaming
-FreeNAS mit ZFS und Dateifreigabe für die anderen VMs
-Plex Media Server
-eine VM für LiveTV streaming/recording
-eine Cloud Lösung
-evtl. noch ein Mailserver
Akuter VM-Wahn. :)

Man kann auf EINEM üblichen Rechner mit EINEM üblichem Betriebsysytem mehrere Programme nebeneinander laufen lassen und damit viele Dienste gleichzeitig anbieten. Man muss nicht jeden Furz *'tschuldige* in eine eigene VM packen. Idealerweise entscheidest du dich für nur EIN Betriebssystem statt 3+, anderenfalls zumindest für MÖGLICHST WENIGE. Ohne all die VMs werden deutlich weniger Ressourcen beansprucht. Die Hardware darf also kleiner ausfallen. Außerdem wird das Gesamt-"Ding" ohne den VM-Wahn weniger komplex, i.d.R. leichter wartbar und damit wenig fehleranfällig. Und man hätte eine realistische Chance, dass ab und zu auch mal eine Maßnahmen zum Energiesparen tatsächlich zum Zuge kommt.
 
Danke für eure Antworten
Bin damit gut bedient :D

Ich werde meine Planung noch einmal überdenken und mal sehen wie es dann kommen wird.
 
Zurück
Oben