Die neuesten Produkte von GIGABYTE hier im Überblick
Hallo,
ich spiele inzwischen schon seit längerer Zeit mit dem Gedanken mir einen neuen Rechner zuzulegen.
Kostenpunkt: gutes Preis/Leistungsverhältnis, d.h. muss definitiv nicht das allerneueste sein.
Nutzen will ich den hauptsächlich zum Programmieren unter Linux, im speziellen zur Entwicklung in virtualisierten Serverumgebungen; ich werd vermutlich nicht mal einen Monitor anschließen.
Bis jetzt ging das Entwickeln auf meinem Laptop (Turion TL60, neuerdings 4GB RAM) ganz gut, allerdings komm ich halt von der Rechenleistung bzw. wie ich vermute vom Speicherdurchsatz her an die Grenzen, wird einfach zäh und dauert immer länger irgendwas zu testen.
Gegoogelt hab ich schon ausgiebig, allerdings war's mir nicht möglich wirkliche Vergleiche zu Virtualisierung unter vmware (oder auch virtualbox) zwischen Intel und Amd zu finden.
Der Verdacht ist nur in mir gekeimt, das Amd durch seinen integrierten Memorycontroller eigentlich einen ziemlichen Vorteil vor Intel hat, nicht zuletzt gerade was Virtualisierung angeht.
Momentan schwanke ich zwischen Athlon x2 5000, 5600 und Intel Core2 E7200, Q6600.
In Bezug auf Preis/Leistung sagt mir hierbei natürlich Amd mehr zu.
Nur, was haltet Ihr denn von der ganzen Geschichte ?
Insbesondere, kann irgendjemand was zum Speicherdurchsatz sagen, das scheint mir dann eben doch die Gretchenfrage zu sein.
Die Benchmarks die ich auftreiben konnte waren obendrein leider alle wenig aussagefähig, da sie zumeist meiner Einschätzung nach nur die Geschwindigkeit des Cache bei Intel messen....
Danke, Micha
Wenn du viele VMs laufen lassen willst vielleicht einen 4 Kern Prozessor und 8GB RAM nach meiner Einschätzung. Hab den Q6600 und mir kürzlich eine Testumgebung für eine Windowsdomäne mit VMWare aufgebaurt und von der Geschwindigkiet her kann ich net motzen... :-)
Da VMWare und Intel sehr eng kooperieren, führt eigentlich beim geplanten Einsatz von VMWare auch kein weg an Intel vorbei. VMWare ist übrigens auch der Hersteller von Virtualisierungslösungen, der die "Intel Virtualization Technology for Directed I/O" (Intel VT-d) an Besten ünetstützt. Selbige bietet Hardware-Unterstützung, um I/O-Geräte virtuellen Maschinen oder Partitionen zuzuweisen und sie kann außerdem die Leistung und Zuverlässigkeit des Datentransports in virtualisierten Umgebungen verbessern. Ich habe VMWare selbst auf AMD-Systemen laufen sehen - Performance definiert sich eigentlich anders.
Allerdings wirst Du einen vollwertigen Intel nehmen müssen, viele der abgespeckten Sparbrötchen unzterstützen die Virtualisierung nämlich nicht. Deshalb E8400 oder Q6600, wenn es nicht über 130€ gehen soll.
misc, wie deflow schon sagte: nutzt du viele vms und deren zusammenspiel, etwa um ein client-server-modell durchzutesten oder brauchst du nur einen server mit einem spezifischen softwarestack?
für ersteres sind die kleinsten quadcores am nützlichsten, für letzteres reicht wohl auch ein kleineres System, das du dann vielleicht sogar paravirtualisieren könntest. dann würdest du so gut wie keine performance verlieren.
was amd und Intel angeht: es wird ja (fast) nichts emuliert, also hängt die performance fast 100% am workload - und in fast allen normalen workloads im unisocket bereich ist Intel schneller derzeit.
diese zähigkeit, die du erlebst, das sind kontextwechsel, da wird praktisch der komplette cache geflusht und neu geschrieben, das braucht halt (ein wenig). das passiert theoretisch bei jedem mausklick in die vm und auf den desktop. dabei ist aber die vt-x technologie von Intel hilfreich, um die angelegenheit zu beschleunigen - das kann man sehr gut beim mac sehen mit parallels und fusion, das geht sehr angenehm schnell, auch wenn office oder photoshop in der vm läuft.
enorm wichtig ist für meinen geschmack weniger RAM io als hdd performance. eine schnelle festplatte bringt arg viel.
@formatc: swsoft unterstützt vt-d ebenso. außerdem: weißt du, was das ist? vt-d reserviert den zugriff auf ein pci/x/e gerät für eine virtuelle maschine, um den durchsatz und die sicherheit zu erhöhen. also etwa eine ethernet schnittstelle oder eine clearspeedkarte. das hat für testing oder solche anwendungen keinerlei nutzen. vt-x bzw. vt-i sind die wichtigen technologien für endanwender und entwickler (diese technik stellt sicher, dass das gastos nicht merkt, dass es ein gastos ist). aber auch die sind nur bei mehreren maschinen auf einem Rechner wirklich nützlich, um ein linux zu testen hängt alles an der prozessor- und hddleistung. kleinigkeiten wie: den virenscanner vom imagefile zu lösen sind viel wichtiger.
EDIT: der fantastische jon stokes hat vor kurzem den ersten teil einer wirklichen einführung in virtualisierung online gestellt: http://arstechnica.com/guides/othe [...] de-1.ars/1
wie immer toll geschrieben und sehr spannend
| pool1892 schrieb : kleinigkeiten wie: den virenscanner vom imagefile zu lösen sind viel wichtiger. |
Möchte da anknüpfen:
. Hardware VT Support ist von der Performance egal. Es ist sogar so, dass die schlauen, guten Virtualisierungslösungen das Hardware VT nur zu einem ganz kleinen Teil benutzen und in praktisch allen Fällen Binary Translation verwenden, was schneller ist. VirtualBox gehört nicht zu den ganz schlauen VM Lösungen und dort hab' ich aus Performancegründen auch VT Support DEselektiert (es wäre sonst langsamer). Wie bei vielen Sachen - die Materie ist komplex und nicht von heute auf morgen entstanden. Zu dem gesagten steht hier die Theorie + Praxis:
http://www.anandtech.com/it/showdoc.aspx?i=3263
. viel RAM hilft viel. Pagefile im Guest OS ausschalten wenn möglich. Hier sind 8GB besser investiert als Geld in CPUs, obwohl ein Quadcore hier natürlich auch nützlich ist.
. Hypervisor VM oder VMWare ESX verwenden bringt einen sehr großen Performanceschub, da die I/O Treiber dann schnell sind.
| Zitat : außerdem: weißt du, was das ist? |
Sicher weiß ich das
Ich arbeite seit 3 Jahren mit VMWare. Und ich weiß eine Hardware-Unterstützung, die es mir ermöglicht, I/O-Geräte virtuellen Maschinen oder Partitionen zuzuweisen, sehr zu schätzen. Dass damit die Zuverlässigkeit des Datentransports und der erzielbare Datendurchsatz steigt, ist eigentlich eine logische Folge. Und es geht beim VT-d eben nicht nur allein um Ethernet-Schnittstellen, sondern es ermöglicht auch, endlich mal eine einigermaßen befriedigende Grafikleistung in den VMs zu erreichen. Allerdings setzt dies auch VT-d fähige Chipsätze mit den betreffenden Funktionen (z.B. DMA-Remapping) voraus. Die neuen Eaglelake, Bearlake und Seaburg unterstützen dies z.B. schon. Also kommt es nicht nur auf die CPU, sondern auch aufs passende Chipset an. Im obigen Fall wirds wohl auf ein Board mit P45 Chisatz oder ein Intel-Board hinauslaufen. Ansonsten muss man sich erkundigen, inwieweit die OEM-Beschränkungen auf den Boards der einzelnen hersteller greifen
In welcher Hinsicht kooperiert VMware mit Intel mehr als mit AMD? I/O-Mapping ueber DMA- und Interrupt-Remapping ist Teil sowohl von Intels "VT" als auch von AMDs "Pacifica". AMD nennt es IOMMU. Aber wenn man ESX auf einem alten 5 Jahre alten K8-Design laufen laesst, dann wird das natuerlich auf Grund der fehlenden IOMMU- und SVT-Unterstuetzung langsam(er). ;-) Die alten Versionen von Intels VT-x unterstuetzten auch nicht alle Features heutiger HW-Virtualisierung. Ansonsten sollte der Unterschied bei normalem Desktop nicht wirklich sehr gross sein, erst bei IO-intensiven Servern (web, file etc.) wird der Architekturvorteil auf AMD-Seite deutlich (4-Kern mit integriertem MC und shared L3). Ein auf 4GHz uebertakteter E8x00 ist pro Kern natuerlich viel schneller, aber nicht fluessiger im task switching (, was bei Servern viel wichtiger ist). Es kommt also ganz darauf an, was man machen will.
Wenn es gross und schnell sein soll, kann man alternativ natuerlich auch Power oder UltraSparc nehmen. ;-)
@formatc: hehe, ok, dein erster satz: "Selbige bietet Hardware-Unterstützung, um I/O-Geräte virtuellen Maschinen oder Partitionen zuzuweisen und sie kann außerdem die Leistung und Zuverlässigkeit des Datentransports in virtualisierten Umgebungen verbessern" klingt extrem powerpointy^^
@7oby: jupp, vanderpool ist für produktionsumgebungen gemacht, um die wahrscheinlichkeit von hypervisorbugs zu reduzieren. dafür funktioniert es auch gut. die paar befehle, die die virtualisierte umgebung sprengen können und deshalb gewrapt werden müssen sind ja eh eher weniger häufig bzw. speicheraufrufe, die ja immer umgerechnet werden müssen.
der wichtige schritt wird paravirtualisierung sein, dann gibt das gast os fast nur noch schnelle befehle aus.
@toudoku: oui, der barcelona ist ja ein echter serverprozessor in dem sinne. (das vergessen die leute leider oft)
eine der hauptanwendungen von virtualisierung ist ja schließlich grobgranulares load balancing und da ist der quad opteron bei 4 sockel systemen mächtig viel schneller als Intel.
sparc und power sind aber dummerweise keine ia, was die nützlichkeit von virtualisierung schon arg einschränkt. (zumindest alle microsoft software und eine ganze menge mainstreamlinux ausschließt). aber das ist ja auch weniger der sinn der sache - und für sap oder oracle over hypervisor kenn ich keine benchmarks, da müßte man dann auch die richtig großen jungs mitspielen lassen^^vmware bietet solaris als host an, aix aber zum beispiel nicht...
EDIT: hab mir an den kopf gehauen - vmware macht für aix gar keinen sinn, weil das os von sich aus virtualisierte umgebungen für einzelne anwendungen bereithält...
| Zitat : In welcher Hinsicht kooperiert VMware mit Intel mehr als mit AMD? |
Weil sich Intel bei VMWare eingekauft hat (Klick)
| pool1892 schrieb : die paar befehle, die die virtualisierte umgebung sprengen können und deshalb gewrapt werden müssen sind ja eh eher weniger häufig bzw. speicheraufrufe, die ja immer umgerechnet werden müssen. |
Ich denke nicht, dass es die wengisten sind. Denn selbst CALL und INT wenn sie von User-Mode -> Kernel-Mode gehen müssen umgeschrieben (oder eben mit der VT Erweiterung gefangen werden):
http://www.usenix.org/events/sec00 [...] index.html
| pool1892 schrieb : der wichtige schritt wird paravirtualisierung sein, dann gibt das gast os fast nur noch schnelle befehle aus. |
Die Treiber im Gast-OS sind doch ohnehin paravirtualisiert?!?
Und deshalb frage ich mich, ob das überhaupt stimmt was FormatC oben geschrieben hat:
. ein physikalisches Laufwerk kann ich der VM auch ohne VT Erweiterung zuweisen
. die Fortschritte in Netzwerkspeed haben doch ganz andere Ursachen (z.B. NAT vs. Bridged Modus)
. die Treiber des GastOS werden besser
Was genau bringt die Hardware VT noch? Ich denke für das Übersetzen der nicht trappenden Befehle ist das egal. Ich denke, dass lediglich Memory-Management als Performance Hit übrig bleibt. Würde man eine Hypervisor basierte VM verwenden, dann ist man fein raus. Das gesamte Memory Management macht der Hypervisor - keine Konflikte - schnell.
Die Leute hier im Forum verwenden das aber nicht, sondern lassen ihr Gast-OS im Host-OS laufen. Und hier bringt Hardware VT vermutlich viel für das Übersetzen der MMU Tables in Form von Nested Page Tables:
http://it.anandtech.com/IT/showdoc [...] =3263&p=10
Das Problem ist aber: Das rennt nur dann schnell, wenn der TLB groß genug ist. Hier (Nested/Extended Pages) trennt sich die Spreu vom Weizen:
. Core2Duo E4x00 "Allendale" 2MB 2nd Level Cache
. Core2Duo E7xx0 "Wolfdale" 3MB 2nd Level Cache
. Core2Duo E6xx0 "Conroe" 4MB 2nd Level Cache
. Core2Duo E8xx0 "Wolfdale" 6MB 2nd Level Cache
Und beim Barcelona/Phenom erwarte ich hier durch den 3rd Level Cache noch mehr.
| pool1892 schrieb : eine der hauptanwendungen von virtualisierung ist ja schließlich grobgranulares load balancing und da ist der quad opteron bei 4 sockel systemen mächtig viel schneller als Intel. |
LoadBalancing? Kannst Du da mal die Zusammenhänge erläutern? Die Webshops, die ich bisher gesehen habe, habe das immer mit einem Hardware LoadBalancer gemacht.
Habe keine Statistik zur Hand, aber Virtualisierung hat in meinen Augen zwei komplett andere Anwendungen:
. Testen von Multi-Tieranwendungen. Oder auch Testen von einfachen Anwendungen unter zig verschiedenen OS.
. Management von Software-Landschaften: Wenn jeder Service auf einer VM läuft, kann man leichter migrieren.
Und eine Reihe von Nebenschauplätzen wie z.B.:
. Legacy Software: Manche Leute haben viel Geld für Legacy Software bezahlt, um wollen diese erhalten, obwohl sie auf ein neues OS umgestiegen sind.
P.S.: Ich sehe auch, dass wir uns vom ursprünglichen Fragesteller entfernt haben. Aber bzgl. Virtualisierung lerne ich gerne noch etwas dazu, wenn sich hier etwas Kompetenz zusammenfindet, möchte ich das auch ausnutzen. Ich hab' nämlich auch nicht alle VMWare Versionen getestet.
Oh, dann kooperiert VMware ja auch mit mir ;-)
Nee, mal im Ernst, bisher ist das doch nur eine strategische Investition und die existierenden Produkte von VMware sind deshalb auch nicht umgeschrieben worden. Intel wird sich wahrscheinlich auch hueten, so etwas zu forcieren, haben sie doch noch genuegend Arger mit den Wettbewerbshuetern.
| toudoku schrieb : Wenn es gross und schnell sein soll, kann man alternativ natuerlich auch Power oder UltraSparc nehmen. ;-) |
Wenn man mal ehrlich ist, dann bringen die Dinger außer I/O keine Leistung. Es ist schon richtig, dass eine SunFire (noch die UltraSPARC basierten) für EUR 500.000 inkl. Storage mal ganz nett sein kann, aber die CPU Power kann sie auch nur bei massiv parralleler Software (wie z.B. Webshops) umsetzen. Und auch dort limitiert üblicherweise das I/O und nicht der Prozessor oder das RAM. Wenn man mal selbst auf so einem Ding software laufen lässt, stößt man viel früher an Skalierungsgrenzen und ist mit einem 64-Bit Barcelona MultiCore oder Xeon um ein x-faches schneller, da die Leistung pro Core deutlich höher ist.
Hinzu kommt, dass so viel Geld immer nur alle paar Jahre in die Hand genommen wird. In der Zwischenzeit wurden x-mal die x86_64 Hardware ausgetauscht und diese ist widerrum um ein x-faches schneller als die UltraSPAC Geschichten.
Es hat auch etwas mit Bestätigung zu tun, wenn Software auf 08/15 BilligHardware (die immer noch ein paar tausend EUR kostet) schneller ist als auf einem Server für'eine halbe Million. Manche kaufen teurer Hardware, um die Unfähigkeit mancher Softwareentwickler zu kaschieren. Das gehört auch mal gesagt.
Nach dem durchlesen der Beiträge hat sich meine Auswahl noch erweitert:
Opteron 1218, Opteron 2214, Xeon 3085
EDIT: Autsch, Opteron hat sich erledigt. die Mainboards sind ja schweineteuer. Dafür aber Phenom..
Zu meinen Anwendungen: Ich schreib an einem Webinterface für eine Datenbank, teilweise müssen die Daten dann auch importiert werden durch z.B. parsen von html Seiten. Grad letzteres ist quälend langsam geworden.
Allerdings teste ich dann auch von virtuellen Windowsumgebungen aus, da ist die Performance dann allerdings ziemlich egal.
Festplattendurchsatz spielt meiner Einschätzung nach kaum rein, da selbst der Swap des linux guests komplett vom Host im Speicher gecacht wird, normalerweise hab ich keine HD Zugriffe; auch der Netzwerkdurchsatz ist wohl eher unrelevant.
Paravirtualisierung oder momentan auch gar keine Virtualisierung scheint mir schon machbar zu sein, nur habe ich da schon äußerst schlechte Erfahrungen gemacht im Sinne der Softwareentwicklung.
Um genauer zu sein: ich entwickel weiter unter meinem System->wills auf dem Zielsystem aktualisieren, und dann kommen die Inkompatibilitäten ins Spiel, d.h. ich hab da mal für jedes Update im Schnitt über eine Stunde gebraucht.
Dazu kommt das ich damit rechne, demnächst z.B. die Datenbank als Cluster laufen lassen zu müssen, zwar nicht aus Perfomancegründen beim Entwickeln, aber dann auf dem Zielserver.
@7oby:
Dir geb ich definitiv recht.
Ich verfolg ich auch den Ansatz, dass meine Software möglichst wenig Leistung benötigen soll.
Im Moment läuft sie auf z.B. einem Celeron mit (bin mir grad nicht sicher, aber ich glaub 2.4Ghz) mehr als ausreichend schnell.
Problem ist allerdings, dass ich in Perl+Apache/modperl schreib, und jedesmal wenn ich was am Quellcode was änder, die "Compilierung" mit der Zunahme an Komplexität des Quellcodes immer länger dauert, inzwischen teilweise über 30 Sekunden :-(.
"diese zähigkeit, die du erlebst, das sind kontextwechsel, da wird praktisch der komplette cache geflusht und neu geschrieben, das braucht halt (ein wenig)."
Also ist weniger Cache mehr ? :-)
Witzig find ich im Zusammenhang mit dem Cache ja gewisse Benchmarks, die den Speicherzusatz mit Blockgrößen bis 4MB testen.. irgendwie logisch das da die Intelprozessoren um Welten besser abschneiden...
Mir scheint ein Schlagwort nested page tables zu sein.
http://www.zdnet.de/enterprise/ser [...] 4-4,00.htm
(der Beitrag ist vom Februar 2007, allerdings in meinem Preissegment möglicherweise trotzdem aktuell(?))
VirtualBox gehört nicht zu den ganz schlauen VM Lösungen und dort hab' ich aus Performancegründen auch VT Support Deselektiert
Es wird immer interressanter.
Ich könnt mir ja vorstellen, eine Bootfähige CD zu basteln die verschiedene Benchmarks durchlaufen lässt, wenn genügend Leute hier im Forum an so was Interesse hätten.
7oby, dann wollen wir mal.
also, so wie ich das verstehe sind bei klassischem host/guest vm modell wirklich recht wenige calls abzufangen. vmware sagt, dass bei standardtasks 3-6%overhead durch den vmm entstehen. das ändert sich mit: secure vm. sobald die eine vm vor der anderen und alle vor dem host gesichert werden sollen wird es anspruchsvoller.
zur paravirt. treibern: ja, die treiber wissen bescheid, aber der normale windows kernel oder auch die standard (non xen) builds von linux haben keine ahnung.
der treiber bzw. das kernelmodul kann dann die aufrufe nur noch abfangen, nachdem sie gemacht wurden. das macht aber die vm sonst auch - und da alles auf dem gleichen prozessor läuft, ist es egal. die treiber sind vor allem input- und dateisystemtreiber, afaik
der translation lookaside buffer sitzt in der CPU als hardwarelogik mit tabelle, der ist so eine art schnellrateabkürzung für speicheradressen. der ist sehr groß bei allen derzeitigen architekturen, aber immer noch ziemlich klein im vergleich mit dem cache. ich denke nicht, dass an der speicherumrechnung bei normaler nutzung zu viel hängen bleibt, wenn man nicht zu viele vm einsetzt. (mit anderen worten: bei wirklich großen servern mit sehr kleinen vms mag es performance hits geben, aber sonst kaum - und bei den großen jungs erschlägt man das dann mit noch nem server^^)
hehe, load balancing bei web servern ist was ganz anderes, wenn auch im prinzip nicht zu verschieden. es geht dabei um folgendes:
wenn du eine große serverfarm hast, dann möchtest du die gern auslasten, soweit es geht. es gibt techniken (auch von vmware), womit du laufende vm's im betrieb von einer hardware auf die andere umziehen kannst, ohne dass der user mit seinem word dokument was davon merkt. dadurch verteilst du die user gleichmäßig auf die server, so dass alle genug abbekommen - und wenn einer doch mal power braucht, dann schickst du alle anderen weg in den cluster. boom, hat der eine user einen 16 kern Rechner mit 32gb an der hand, ohne dass es sonst wen stört. beachte: fehlertoleranz!!
das, also server consolidierung und load balancing sind die beiden gründe, warum vmware so viel wert ist mittlerweile und warum das thema so groß ist. nicht, weil ein paar nerds dann leichter testen können ;-)
@toudoku: hast ganz klar recht. wenn man in der it- oder finanzbranche irgendwas drauf gäbe, wer in wen investiert hat...alle gehören allen, das ist branchenhedging sozusagen - und Intel vc investiert eh in alles, was nicht sofort pleite umfällt
misc, ja, weniger cache ist grundsätzlich mehr, und besser eh, vor allem beim saubermachen.
dein link erzählt genau von vt-x, der ersten virtualisierungshilfe von Intel, über die wir die ganze zeit reden^^.
versteh ich das richtig, deine vm's kommunizieren über (virtuelles) ethernet, oder? hmm, aber das erzeugt auch nicht genug overhead...
Ich schreib' gleich noch was zu den anderen Punkten, aber fang' mal hier an:
| misc schrieb :
|
Dieses Wissen ist sogar so alt, dass es Einzug in das Benutzerhandbuch von VirtualBox gefunden hat:
S.43 im Usermanual von VirtualBox:
| Zitat : Enable VT-x/AMD-V: [...] Normally, you should leave this setting disabled as VirtualBox employs sophisticated software techniques which normally yield superior performance compared to hardware virtualization. |
http://www.virtualbox.org/download [...] Manual.pdf
Binary Translation ist schneller als VT-x. Auch VMWare benutzt Binary Translation:
| Zitat : When direct execution cannot operate, such as with kernel-level and real-mode code, VMware products re-write the code dynamically, a process VMware calls "binary translation" or BT. |
http://en.wikipedia.org/wiki/Vmware
--
Ich bin kein PHP Experte, aber meine C/C++/Java Compile-Vorgänge skalieren linear auf Multicores. Wenn der Apache PHP Code kompiliert würde ich ähnliches erwarten. Und das ist ein Nachteil von VirtualBox: Es ist nicht MultiCore fähig im Gegensatz zu VMWare. Da wäre also auf jeden Fall noch Performance zu holen.
| pool1892 schrieb : misc, ja, weniger cache ist grundsätzlich mehr, und besser eh, vor allem beim saubermachen |
Wenig Cache ist für's Overclocken gut. Das wissen wir seit etwa 10 Jahren - seit dem Celeron 300A:
http://www.tomshardware.com/de/Int [...] 180-2.html
Viel Cache bringt für's Gamen jetzt noch NICHT so den Knaller, aber immerhin:
http://www.anandtech.com/video/sho [...] i=3127&p=2
Was Virtualisierung betrifft, sieht die Geschichte aber komplett anders aus. Cache ist ÜBERLEBENSWICHTIG! Für's Rewriting der Shadow MMU Tables (= Intel) sowieso:
http://it.anandtech.com/IT/showdoc [...] =3263&p=10
Dort steht auch eine Anmerkung, dass dies für VT-x Performance-Gift ist.
Und für Nested/Extended Page Tables braucht man ebenfalls mehr TLB wie auch 2nd Level Cache. Das schreibt auch Anandtech:
| Zitat : In order to compensate, a CPU needs much larger TLBs than before, and TLB misses are now extremely costly. If a TLB miss happens in a native (non-virtualized) situation, we have to do four searches in the main memory. A TLB miss then results in a performance hit. Now look at the "virtualized OS with nested paging" TLB miss situation: we have to perform 16 (!) searches in tables located in the high latency System RAM. Our performance hit becomes a performance catastrophe! Fortunately, only a few applications will cause a lot of TLB misses if the TLBs are rather large. |
Dazu muss man verstehen, was passiert, wenn ein TLB miss auftritt. Dann schaut die CPU im L2 Cache nach:
http://www.heise.de/newsticker/for [...] 7156/read/
Und deshalb ist hier TLB + 2nd Level Cache essentiell !
Dies hat auch Anandtech veranlasst einen Artikel zu schreiben mit der reißerischen Überschricht: Die Rache des Barcelona TLB Cache:
http://it.anandtech.com/weblog/showpost.aspx?i=415
Da der Barcelona + Pheonom die Nested/Extended Page Tables schon haben und Intel die aber erst beim Nehalem / Core i7 bekommen, würde es mich nicht wundern, wenn ein Phenom mit unterlegenem Coreclock in VM Anwendungen einen Core2Quad locker schlägt.
--
Wie gesagt: Wir reden jetzt über reine VM Leistung und je mehr man darüber weiß, desto geringer ist der Einfluss von VT-x einzuschätzen. Ich war zu Beginn des Postings etwas vorsichtig mit dieser Behauptung, da ich aber sehe, dass hier doch sehr wenig Praxiswissen und nur rudimentäres Theoriewissen geposted wird, behaupte ich jetzt umso mehr: Das hat sich auch nicht geändert. VT-x ist für die Performance egal (das kann sich natürlich ändern und ist bei den VMWare ESX Versionen z.T. wohl auch schon so).
Was die Performance-Probleme von misc angeht: Ich würde zuerstmal die üblichen verdächtigen wie genügend RAM / bridged Network statt NAT und alles was unter Performance im Handbuch der jeweiligen VM steht überprüfen, bevor ich mir Gedanken über den Prozessor mache.
Bzw. mal vergleichen: Hast Du die Möglichkeit mal ohne VM Deine Anwendung zu testen? Lokal alles auf dem Host installieren? Und mal Testen, was passiert, wenn Du AMD-V deaktivierst. Wie ich schon sagte: Hardware ist nicht immer schneller als Software. Bei VirtualBox auf jeden Fall. VMWare ist eigentlich "schlau" genug und setzt die Features nur dort ein wo's was bringt. VMWare würde ich erwarten läuft genauso schnell.
Benchmark: Habe soeben > 12x mal meine VirtualBox mit XP SP3 gestartet. Auf einem Core2Duo T7500 :
[x] VT-x : 27s Startzeit
[ ] VT-x : 25s Startzeit
Der Test ist alles andere als aussagekräftig, aber ist mal ein Anfang.
@pool1892
| pool1892 schrieb : misc, ja, weniger cache ist grundsätzlich mehr, und besser eh, vor allem beim saubermachen.
|
Ja, Kommunikation läuft über das virtuelle vmware Netzwerk.
Hat momentan allerdings sogut wie keinen Einfluss auf die Performance, hauptsächlich brauch ich das Netzwerk zum Einloggen per ssh / bzw. eben für das CGI Benutzerinterface.
Wobei unter dem Link ja auch steht:
Speichervirtualisierung: Nested Page Tables
Die zweite Hilfestellung seitens der Prozessorhersteller könnte Speichervirtualisierung sein. Sie ist heute bei Intel gar nicht und bei AMD zum Teil implementiert.
[..]
AMD hat Nested Page Tables für dieses Jahr angekündigt und will diese Technologie in allen zukünftigen Opteron-Prozessoren standardmäßig anbieten. AMD und Vmware haben bereits eine "Experimentalversion" eines Quad-Core-Opteron mit Nested Page Tables demonstriert. Intel ist inzwischen verdächtig ruhig und verweist auf seine bestehende VT-x-Technologie.
Dies hat sicherlich den Grund, dass Intel einen externen Memory-Controller verwendet, den so genannten Frontsidebus, während dieser bei AMD auf dem Prozessor integriert ist. Will Intel hardwareseitige Unterstützung für Memory-Virtualisierung anbieten, so muss der Memory-Controller grundlegend modifiziert werden.
Ist aber alles für mich irgendwie etwas zu theorethisch, leider konnte ich auch absolut keine vergleichenden Benchmarks finden.
@7oby
Die Anwendung selbst ist in den entscheidenden Abschnitten mehr als schnell genug, ich find's an sich sogar vorteilhaft auf älterer Hardware zu testen da dann die Bottlenecks viel deutlicher werden.
Problem und zu zeitaufwendig ist wirklich der "Kompiliervorgang", auch wenn ich's nativ laufen lasse, mal schnell bis zu 40 Sekunden warten bis eine Fehlermeldung kommt ist irgendwie unproduktiv.
An zu wenig RAM liegt's definitiv nicht, Festplattenzugriffe hab ich so gut wie keine mehr wenn die virtuelle Maschine erst mal läuft, allerdings auch nativ eher weniger - und das Netzwerk spielt da bei mir auch keine Rolle.
-> Da der webserver zusammen mit meiner Anwendung doch relativ viel Speicher braucht, ~100MB, lief bei mir der Gedanke in Richtung Speicherdurchsatz als Bottleneck, und der dürfte auf einem Laptop wohl sowieso alles andere als berauschend sein.
In diesem Sinne wird der Prozessortakt auch wirklich eher nebensächlich sein.
7oby, was ist deine metrik für vm-performance? das ist absolut nicht klar, so oft du auch die gleiche seite von anand nennst.
is doch völlig klar, dass du am besten komplette hardware pro vm haben solltest, aber nicht hast. und das ist für spekulative einheiten echt ein Problem, weil die das nicht kapieren können.
btw: vmware esx (hypervisor) hat seit dem allerneuesten update support für nested paged tables, vmware workstation nicht. das macht auch keinen weiteren sinn, weil zu wenig maschinen laufen.
ich glaub, du rennst da in was rein, was gar nicht so wesentlich ist für die "normale" anwendung.
was wieder die frage nach einer metrik aufkommen lässt.
EDIT: misc, sorry, da hab ich deinen link falsch gelesen.
| misc schrieb : Problem und zu zeitaufwendig ist wirklich der "Kompiliervorgang", auch wenn ich's nativ laufen lasse, mal schnell bis zu 40 Sekunden warten bis eine Fehlermeldung kommt ist irgendwie unproduktiv. |
Damit ist doch klar, dass all dies überhaupt nichts mit Virtualisierung zu tun hat. Dieses Problem solltest Du Dir also losgelöst anschauen.
Du schreibst, dass Du Perl verwendest. Perl ist nicht wirklich interpretiert, sondern der Code wird eben in einen Bytecode übersetzt. Enthält der Perl Code Fehler, gibt's eine Fehlermeldung beim Übersetzen. Kompilieren und Parsen sind Tätigkeiten, die überlicherweise CPU limitiert sind (und wenn es das bei Dir ist, brauchst doch nur auf die CPU Auslastung zu schauen während der 30/40 Sekunden).
Die üblichen Techniken, um diese Art von Wartezeiten zu vermeiden sind doch:
. On-the-fly Syntax Check wie's auch das Perl für Eclipse Plugin anbietet:
http://www.epic-ide.org/index.php
. incrementelles Build: Also nicht immer alle Files zum Server kopieren, sondern nur diejenigen, die sich geändert haben. So hat der Server eine Chance zu erkennen welche Files sich geändert haben, und übersetzt nur diese neu. Dazu hat man Skripte.
. Multi-Core Build: Bei fast allen Build Umgebungen, muss man MultiCore Builden erst aktivieren. Bei make mit "-j". Das wird beim Perl Übersetzer auch nicht anders sein.
. Neue Perl Version: Perl verwendet schon sehr effiziente Tools (z.B. Bison) um den Quelltext zu parsen. Trotzdem lohnt sich wahrscheinlich das Updaten auf neuere Perl Versionen, da dort sicher auch Performancesteigerungen gemacht werden.
| pool1892 schrieb : ich glaub, du rennst da in was rein, was gar nicht so wesentlich ist für die "normale" anwendung. was wieder die frage nach einer metrik aufkommen lässt. |
Ein Benchmark ist nur ein Mittel, um die Performance für einen bestimmten Anwendungsfall abschätzen zu können. Mit dem falschen Benchmark kann ich alles beweisen, weil der Benchmark nichts mit dem Problem zu tun hat.
Ein generelles Problem zur Abschätzung von Performance ist, dass derjenige, der sie benötigt schon im vorhinein die falsche Frage formuliert. Etwa: "Intel, amd was ist besser für vmware ?". Gibst Du ihm eine Antwort darauf, dann baut dieser jemand sein System zusammen und kommt dann wieder an: "So'n Mist! Jetzt hab' ich schon die schnellste CPU gekauft und das Ding ist immernoch zu langsam."
Deshalb möchte ich immer ganz oben ansetzen und fragen: Was willst Du genau machen? Darauf habe ich schon in meinem ersten Posting oben versucht hinzulenken: Wenn die Performance einer VM nicht stimmt, dann liegt das meist nicht an fehlendem oder vorhandenem VT-x.
| pool1892 schrieb :
dadurch verteilst du die user gleichmäßig auf die server, so dass alle genug abbekommen - und wenn einer doch mal power braucht, dann schickst du alle anderen weg in den cluster. boom, hat der eine user einen 16 kern Rechner mit 32gb an der hand, ohne dass es sonst wen stört. beachte: fehlertoleranz!! |
Ich fange immer gerne bei Adam und Eva an. Das liegt so in meiner Natur.
Dein Beispiel handelt von Workload Balancing. Ich behaupte: Für alle wichtigen Bereiche ist dieses Problem seit Anfang der 70er Jahre gelöst. In der Tat würdest Du ohne Workload Balancing Dein Gehalt immer an anderen Tagen bekommen und Überweisungen würden zwischen morgen und vielleicht irgendwann ankommen.
OS/360 (danach OS/390, z/OS, etc. vermutlich hatte BS2000 auch ähnliches) hatte dies wie gesagt schon Anfang der 70er Jahre intrgriert:
http://en.wikipedia.org/wiki/Workload_Manager
Das ganze Hot/Live Migration und Hot Swap Geschwafel sind Kopien von Dingen, die's im Mainframebereich schon lange gibt. Jetzt zieht eben die 08/15 Software/Hardware mit AIX/Linux und VMWare/Xen etc. in dem Bereich nach.
Technologien ändern sich also muss man auch alte Praktiken auf neue Technologien portieren. Wie gesagt: Für alle wichtigen Bereiche funktioniert das schon seit Jahrzehnten prima. Im Super-Computer Bereich ist Resourcenmanagement auch bereits in OS und die Bibliotheken integriert.
Was jetzt nachkommt ist Spielzeug. Das fängt schon damit an, dass man sich überlegen muss welches überhaupt eine sinnvolle Umgebung ist: Standalone PC? Fat-Client? Thin-Client? Ultra-Thin-Client? Und das ganze in allen möglichen Technolgieausprägungen. Nur ein Beispiel: Wenn ich eine Anwendung als Ultra-Thin-Client im Browser hab', dann hab' ich überhaupt kein Migrationsproblem. Dem Applikationsserver kann ich zur Laufzeit Resourcen geben und nehmen wie ich's brauche. Downtimes gibt's in diesem Nicht-Hochverfügbaren Bereich doch immer. Allein um Sicherheitslücken zu schließen. Dann kann ich das Migrieren von Servern/Clients - so denn notwendig - auch darüber abfackeln. So sieht die Praxis doch aus.
| pool1892 schrieb :
|
Wer testet eigentlich die Software, die auf so'nem Server läuft? Ist es Zufall, dass user "misc" auch seine Anwendungen auf dem VM-Server deployen/testen will? Meinst Du nerds haben die Software geschrieben, die Du verwendest? Warum sagte Bill Gates auf die Frage wie wichtig Testen ist: "Wenn ich nach den Tätigkeiten gehe, die unsere Firma macht, dann müsste ich sagen wir sind eine Testfirma, denn über 50% der Mitarbeiter beschäftigen sich ausschließlich mit Testen."
Server Konsilidierung ist ein Untergebiet von Mangement von Software-Landschaften was ich vorhin schon erwähnte. Und Hot/Live Migration ist halt 'eine weitere Spielwiese der Hersteller, damit sie ihre neuen Produkte verkaufen können. Ich hab' im Bereich Hot/Live Migration - wie gesagt - noch wenig sinnvolles gesehen und für alle wichtigen Bereiche ist das Problem schon gelöst.
@7oby, nene, nur weil ein benchmark speziell ist, macht es ihn nicht unnütz. außerdem habe ich schon allgemeiner gefragt, metriken können mehrdimensional sein, nicht wahr? ich will wissen, für welchen anwendungsfall du prognostizierst, dass opteron mit npt um die xeons rumrennt. meiner meinung ist ein zugewinn eher bei vielen schlichten maschinen plus hypervisor zu erwarten als bei wenigen klassischen fetten vm. außerdem: amd selbst erwartet bis zu!! 23% performancegewinn, also wird man trotzdem kaum penryn bei gleicher taktzahl klar besiegen. das ändert sich dann für wirklich viele kerne und vm's.
load balancing ist der begriff, den z.b. Intel und vmware verwenden. und es ist absolut nicht trivial, das inkl. i/o live über die bühne zu bringen. so weit ich weiß funktioniert das tatsächlich nur auf aix und anderen mainframe os wirklich. das ganze wird von einem simplen quasilinearen optimierungsproblem zu einem multidimensionalen mit vielen vielen nichtlinearen abhängigkeiten und randbedingungen - das in echtzeit zu lösen ist. inkl. feedback (differentialgleichung), weil der workload manager selbst auch priorität hat.
btw: apple entwickelt mit grand central etwas derartiges für 10.6
server konsolidierung ist meinetwegen aus der sicht eines programmierers ein unterpunkt, aber für die herren mit dem geld ist das der erste und der letzte punkt. das spart geld. richtig viel geld.
@7oby
Muss ich Dir rechtgeben.
Vermutlich muss ich, was den Kompiliervorgang angeht, mir auch noch mehr Gedanken über Alternativen machen.
Angefangen habe ich da schon, d.h. viele Dateien werden nach Änderungen separat neu übersetzt.
Epic kannte ich gar nicht !
Eigentlich ziehe ich ja vim vor, aber ich werd's doch noch mal ausprobieren, bzw. mir eine Syntaxprüfung in vim reinbasteln.
Ist wohl auch besser als einfach zu sagen schnellerer Rechner her.
Die falsche Fragestellung wars definitiv.. Da haben mir Deine Beiträge echt weitergeholfen, auch eben mir meiner Probleme erstmal bewusst zu werden. Danke dafür!
Dennoch ist in der Anwendung ein Bottleneck, im Speziellen beim parsen von Html-Dateien.
Auf der Zielarchitektur ist das momentan uninteressant, denn auf einem Core2 6300 läuft das wieder ausreichend schnell.
Ich hab nichts gemessen, aber könnte durchaus 3x schneller sein.
Hilft mir beim Entwickeln (auf einem Turion TL60) nur leider wenig..
Das ist jetzt alles nicht unbedingt entscheidend über den Erfolg, allerdings lästig und teilweise auch zeitintensiv.
Insofern würde mir ein weiterer Rechner glaub ich schon einiges abnehmen.
Amd ist dann wohl leider ausgeschieden, obwohl mir das irgendwie leid tut.
Stellt sich für mich noch die Frage ob Dual- oder Quadcore, bzw. Xeon oder Core2.
EDIT: eine, eigentlich alles doch nicht so klar.
Denn: Virtualisieren will ich ja immer noch, und auch nächstes Jahr möglichst schnell.
Obendrein hab ich gesehen dass ich für gleiches Geld wie für einen Core2 /Xeon auch einen Phenom X4 bekomme, der ja bei einigen Benchmarks auch gar nicht so schlecht abschneidet.
das versteh ich jetzt nicht, 7oby hat die meinung kundgetan, dass barcelona viel schneller als penryn für vm-anwendungen sein könnte, falls npt genutzt würde (glaub ich zwar nicht im allgemeinen, weil der ipc so viel höher ist bei penryn) und ansonsten sprach nur die (nicht ungewöhnliche) monetäre verquickung von Intel und vmware gegen amd. der mc spricht nach wie vor sehr für phenom und benchmarks oder andere aussagekräftige vergleiche haben wir bislang erstaunlicherweise nicht gesehen.
| pool1892 schrieb : das versteh ich jetzt nicht, 7oby hat die meinung kundgetan, dass barcelona viel schneller als penryn für vm-anwendungen sein könnte, falls npt genutzt würde |
Genau. Sein könnte.
Hat mich jetzt auch interessiert. Gibt von VMWare einen Benchmark VMMark und Ergebnisse:
http://www.vmware.com/products/vmmark/results.html
Picke da jetzt mal 3 Systeme raus. Es sind alles 2x Quads (= 8 Cores), da ich bei den 4-Cores nur ein Ergebnis finden konnte:
Quad-Core Intel Xeon X5365; 2x 65nm Quad 8MB Cache @3GHz; VMWare ESX 3.0 : 7,03 Score
Quad-Core AMD Opteron 2360 SE ; 2x BarcelonaQuad 2+2MB Cache @ 2,5GHz; VMWare ESX 3.5 : 7,96 Score
Quad-Core Intel Xeon X5460; 2x 45nm Quad 12MB Cache @ 3,16GHz; VMWare ESX 3.5 : 8,46 Score
Der Vergleich hinkt etwas:
. nur Serveranwendungen getestet, die aufgrund ihrer Unabhängigkeit ohnehin mit den Cores skalieren.
. Wie groß ist der Nachteil, den der X5365 mit dem ESX 3.0 gegenüber den anderen mit ESX 3.5 erleidet?
Trotzdem meine ich eine Tendenz erkennen zu könnnen, dass der Barcelona sich ziemlich gut gegen den Xeon mit 3,16GHz schlägt. Bis auf Fileserver und Database ist der Barcelona im Einzeltest gleich auf und das mit "nur" 2,5GHz und dem Ach-so-schlechten-IPC und "nur" 4*512KB Cache + 2MB = 4 MB gegen 12 MB eines Xeon Cores. Also durchaus beachtlich!
| misc schrieb : Ist wohl auch besser als einfach zu sagen schnellerer Rechner her. |
Alles was recht ist. Entwickler bevorzugen ohnehin die schnellsten Maschinen, die sie unter die Finger bekommen können. Bei der Taktrate gibt's aber natürliche Grenzen.
Was würde ich kaufen? Einen Q6600 und den mit 3 oder 3.6GHz laufen lassen. Ein DualCore - selbst mit 4GHz wäre im ungünstigsten Fall, dass ich nichts parallelisieren kann nicht wirklich schneller.
Wenn man sich etwas Mühe gibt, kann man aber fast alles parallelisieren. Die einzige Ausnahme hast Du schon angesprochen: Parsen ist stackbasiert da gibt's (bisher) nichts zu parallelisieren. Das haben inzwischen auch die XML-Helden erkannt (Kilometerlange XML Dateien sind ja keine Seltenheit und XML ist ja sooooo plattformunabhängig). Bei XML guckt man wirklich in die Röhre. Bei HTML geht zwar das Parsen auch nur sequentiell, aber zumindest hat man dort mehrere Dateien und in dem Fall kann man mehrere Dateien gleichzeitig bearbeiten. Die gängigen Tools (da ich viel Java mache, benutze ich Ant, aber Make kann das auch) bieten Dir schon Support dafür an:
. Sammle alle .html files
. For each .html file do
Und das For each verteilt er auf alle Cores.
Also, weil die GHz eh beschränkt sind, deshalb Quadcore. Denn da kann ich noch was rausholen. Wenn mir das nicht reicht, dann würde ich sogar distcc (einen verteilt arbeitenden Compiler) nehmen. Um mal die Bandbreite an Möglichkeiten aufzuzählen.
Warum nicht AMD? Der niedrige IPC (Instructions per Clock wegen mangelndem MacroFusion etc.) stört halt doch öfters. Java läuft z.B. grundsätzlich schneller auf den Intel Prozessoren.
| misc schrieb : Auf der Zielarchitektur ist das momentan uninteressant, denn auf einem Core2 6300 läuft das wieder ausreichend schnell. |
Der hat ja "nur" 1.860 MHz. Und dein TL-60 hat 2GHz! Also wenn Deine Anwendung schon so gut auf dem Core2 läuft, dann würde ich auch soetwas kaufen.
| misc schrieb : Denn: Virtualisieren will ich ja immer noch, und auch nächstes Jahr möglichst schnell. |
Schon möglich, dass der Phenom X4 bei Dir sehr gut im Vergleich zum Q6600 liegt. Aber wer weiß das schon. Ich hab' auch sehr früh den Opteron auf 64-Bit testen können. Damals waren die Erwartungen auch sehr hoch. Ich selbst hatte auch hohe Erwartungen. Naja und unter 64-Bit Linux mit 64-Bit Java war der doch nicht so schnell. Ein Intel war höher getaktet und schneller.
So ähnlich ist's jetzt vermutlich auch. Wenn man den Phenom mit genau der richtigen Aufgabe füttert, die die NPT und den 3nd Level Cache optimal ausnutzt, dann ist der vielleicht so schnell wie ein Q6600. Aber warum sollte ich diese Anwendung finden. Das wäre Aufgabe von AMD ein paar Benchmarks zu präsentieren wo dieser Prozessor brilliert. Sie müssen sich ja was gedacht haben als sie dieses Design wählten. Mir wäre also das Risiko zu hoch, dass der Phenom deutlich langsamer als ein Core2 ist. Und selbst wenn der Phenom mit den perfekten zugeschnittenen Anwendungen schneller wäre: So viel kann es nicht sein wg. der deutlich niedrigeren Taktrate.
RAM Performance limitiert auf jeden Fall nicht. Das meiste läuft im Cache ab. Und obwohl der Phenom einen integrierten RAM-Controller hat und beim Core2 die RAM Bandbreite durch den FSB limitiert wird (nicht durch das RAM), hat dies in der Praxis ja kaum Auswirkungen. Durch den 3rd Level Cache muss man ja sogar zusätzliche Latenzzeit zum RAM akzeptieren.
| pool1892 schrieb : amd selbst erwartet bis zu!! 23% performancegewinn, also wird man trotzdem kaum penryn bei gleicher taktzahl klar besiegen. |
Ich finde nur, dass AMD mit 124% geworben hatte. Und zwar ein 3.2 GHz Opteron 2224 SE (2 Cores) gegen einen 2,5GHz Barcelona Opteron 2360 SE (4 Cores). Meintest Du diesen?
Um von den 124% auf die 23% Performancegewinn zu kommen, muss man mehrere Verrenkungen machen:
1. Annehmen, dass die Cores linear skalieren. Wenn das I/O System nicht mit skaliert fast unmöglich
2. Die 3,2GHz nicht mit den 2,5GHz verrechnen
3. Die 24% nicht durch zwei teilen und schlecht runden oder so ähnlich
Auf jeden Fall wurden diese 124% auch sehr stark relativiert von TGH:
http://www.tgdaily.com/content/view/33770/135/
Oder waren die 23% bei den MS Terminal Servern gemeint?
Wo sehe ich Vorteile durch NPT? Kann nicht sagen, ob bei wenigen oder vielen VMs. Server haben lange CPU Scheduling Time-Slices. Linux z.B. 100Hz. Bei einer CPU mit 2GHz also 20,000 Takte / CPU Slice. Da ist egal wie lange ich initial irgendwas aus dem Speicher einlesen muss (z.B. PageTables). Deshalb denke ich, dass es egal ist ob ich viele VMs oder wenige habe. Viel Cache hilft aber die TLB Misses nicht so teuer zu machen. Da spielt keine Rolle ob viele oder wenige VMs und auch nicht wie "fett" sie sind. Das ist aber nur geraten - keine fundierte Messung dahinter.
Ich sehe aber gerade, dass AMD doch ziemlich mit dem VMMark wirbt:
http://www.amd.com/us-en/Processor [...] dir=seop01
| pool1892 schrieb : load balancing |
Ich will das Thema nicht runterspielen. Aber das letzte was ich dazu im Bereich der VMs gesehen habe ist das folgende: Jede VM kann einen Snapshot anfertigen (selbst meine "Billig"-VirtualBox). Dieser Snapshot wird auf einen anderen Rechner kopiert. Das sind 1-2GB vom RAM-Image und nochmal 5GB vom Filesystem. Beide kann ich und innerhalb weniger Sekunden über das Gigabit Netzwerk schießen, wenn ich diese on-the-fly ("gzip --fast" ) zuvor komprimiere und auf einem anderen Rechner starten. Das kann ich soweit schon ohne Hot-Migration support. Und an dem Ding optimieren sie.
Man kann sich die Welt auch kompliziert machen. Storage ist bei größeren Servern komplizierter als das 5GB Filesystem Image, z.B. ein redundantes Fibrechannel Storage. Was man da jetzt auf Biegen und Brechen live migrieren muss, weiß ich nicht, aber sollen die die's brauchen (oder die die's verkaufen wollen) ruhig machen. Ob das irgendein Problem löst, ist nicht immer gesagt. Zumal diese Storage Systeme oft ohnehin Downtimes haben.
| pool1892 schrieb : abhängigkeiten und randbedingungen - das in echtzeit zu lösen ist. inkl. feedback (differentialgleichung), weil der workload manager selbst auch priorität hat. |
Fixpunkttheorie und Differentialgleichen sind gut verstanden. Selbst wenn diese da reinspielen, sollte dies kein Problem darstellen. Aber ich bezweilfe noch etwas, dass diese Probleme nicht hausgemacht sind. Üblicherweise gibt es eine Ordnung auf den Systemen und in dieser Ordnung kann man das System in einen Standby versetzen. Sonst wäre ein kontrolliertes Herunterfahren von System ja ebenfalls nicht möglich.
| pool1892 schrieb : server konsolidierung ist meinetwegen aus der sicht eines programmierers ein unterpunkt, aber für die herren mit dem geld ist das der erste und der letzte punkt. das spart geld. richtig viel geld. |
Natürlich werden ein Haufen geräte und Strom gespart. Aber auch nur, weil sich vorher keiner die Finger dreckig machen wollte und jeder rumgebrüllt hat: Jede Anwendung = ein Server. Dass das nicht so sein muss, haben andere (auch ohne Mainframes) auch schon vorher erkannt.
Jetzt kann man's halt von der Stange kaufen und die faulen IT-ler sparen tatsächlich etwas.
@7oby
| 7oby schrieb : Alles was recht ist. Entwickler bevorzugen ohnehin die schnellsten Maschinen, die sie unter die Finger bekommen können. Bei der Taktrate gibt's aber natürliche Grenzen.
|
Sag mal, kannst Du Gedanken lesen ? :-)
Du hast mir auf jeden Fall die besten Tipps gegeben, die ich seit Jahren bekommen habe,
und das ohne genau zu wissen was ich eigentlich tue..
Was machst Du eigentlich beruflich ?
Was mein Programm in Perl angeht.. mit mod_perl unter dem apache Webserver ist paralleles parsen/übersetzen des perl codes leider nicht vorgesehen.
->allerdings spiel ich schon seit längerer Zeit mit dem Gedanken mir meinen eigenen Webserver zu basteln.
Zwar gibt's entsprechende Module für Perl schon, bis jetzt haben mich der Aufwand bzw. eventuelle Sicherheitslücken davon abgehalten. Auf der anderen Seite komm ich da möglicherweise eh nicht drumherum, da ich unter apache für meinen Geschmack zu wenig Einfluss auf z.B. die Speicherverwaltung (vieles könnte genauso gut zwischen den einzelnen Prozessen geteilt werden) oder eben auch parallelisierung (einzelner Prozesse!) habe.
| 7oby schrieb :
|
64bit haben eben unter Umständen leider doch einen ganz schönen Overhead..
Ich hab's ja auf meinem Turion TL60 auch mit 64bit Linux versucht.
Überraschenderweise lief das System tatsächlich um einiges flüssiger, benchmarks haben mir einen Gewinn von um den Faktor ~ 0.7-3, je nach Anwendung, ergeben.
Dafür hatte ich dann allerdings auch einen höheren Wärmeverlust, und da ich denn "Krach" meines Lüfters überhaupt nicht mag, bin ich wieder umgestiegen auf 32bit.
| 7oby schrieb :
|
Ja. Dann wird's wohl wirklich ein Q6600.
Obendrein kann ich dann beizeiten einen zweiten Rechner dazuhängen, wenn ich eh schon parallelisiert habe, das Ganze kommt in den Flur wo mich der Lärm nicht stört.
Hättest Du denn auch einen Tip für den Rest der Hardware, im speziellen das Mainboard ?
Ansonsten ist glaub ich die Hardware nicht so schwierig auszuwählen, mir schweben da große Gehäuselüfter vor, Grafik ist wurscht, gigabit netzwerk ist natürlich wichtig, 2*2GB RAM sollten für mich für den Anfang reichen.
Also auch bei den VMware-Benchmarks schlaegt sich der Phenom, eh Opteron, ganz hervorragend. Was in den bisherigen Anmerkungen auch hervorkommt, ist das die Intels durch den hoeheren Takt das erreichen, was der Opteron durch besseres Scaling erreicht. Aber das schrieb ich ja auch in meinem ersten Posting. Darum wird dann letztendlich auch die 16-Core Tabelle absolut von den Opterons dominiert, weil dann Scaling einfach so wichtig ist, dass man die Xeons wohl auf 4GHz bringen muesste.
Sowohl Xeon als auch Opteron haben so ihre Starken und Schwaechen und beide muessen den Anorderungen entsprechend ausgewaehlt werden. Wenn man den Xeon, also allgemein die Intels, mit der falshen Aufgabe betraut, sind sie ebenso langsamer als die Konkurrenz, wie in der von 7oby angsprochenen Situation.
Aus dieser Sicht sollte man sogar ernsthaft ueberlegen, ob es nicht sinnvoller ist, gleich einen 45nm-Nehalem (aehnliche Architektur wie die derzeitigen AMDs) oder einen 45nm-K10 (geringere TDP und geht auch auf 3GHz) zu nehmen, ein alter Q6600 ist da von der Architektur und auch ansonsten die schlechteste Variante.
Aber selbst 10 Prozent Unterschied, wirst Du in Deiner taeglichen Arbeit kaum merken, weshalb es wiederum fast wieder egal ist, ob Du den mit Erdbeergeschmack oder den mit Schoko-Banane nimmst. ;-)
Ich seh das doch noch etwas differenzierter als toudoku:
Core i7 (Nehalem) brauch' ich mir nicht anschauen, solange das Ding nicht verfügbar ist. Das kommt auch nur mit DDR-3 (= teuer) Ende des Jahres. Da's hauptsächlich für den Servermarkt und HighEnd Enthusiast Kunden sein soll, wird das ganze nicht billig. Vom Stromverbrauch der totale Non-Sense aber möglicherweise ist sogar ein Skulltrail schneller (in wenn man genügend VMs hat und nur für Anwendungen, um die's hier in diesem Thread geht), da er eben 8 echte Kerne hat:
http://www.tomshardware.com/de/Sku [...] 39927.html
und nicht nur 8 hypergethreadete:
http://www.anandtech.com/cpuchipse [...] spx?i=3326
Und wann kommen die 45nm Phenoms? Noch dieses Jahr - vielleicht:
http://www.amd.com/us-en/0,,3715_1 [...] dir=45nm01
Mir ist die Roadmap etwas zu weit hinten und noch zu Serverlastig:
http://www.heise.de/bilder/107589/0/1
Also bleib' ich doch mal bei dem was verfügbar ist, man günstig einkaufen kann ohne groß auf potentielle Updates in der Zukunft zu schauen. Im Zweifel ist ein neues Board, RAM günstiger.
Preise von Alternate :
Q6600 2,4 GHz EUR 144,-
AMD Phenom X4 9850 2,5GHz EUR 159,- freier Multiplikator
Ohne Overclocking kann man da zum Phenom greifen.
Mit Overclocking würd' ich zum Q6600 greifen. Der läuft mit 3 - 3,6GHz. Mit Hängen und Würgen käme man beim Phenom vielleicht auf 2,8GHz:
http://www.anandtech.com/cpuchipse [...] i=3344&p=7
Muss dann aber schon wieder Geld in ein sehr gutes Board investieren, damit's nicht explodiert:
http://www.anandtech.com/cpuchipse [...] i=3344&p=8
Aber wenn ich mir anschaue was der Phenom bei 2,6GHz schon verbrät
http://www.anandtech.com/cpuchipse [...] i=3344&p=9
dann kann ich die 2,8GHz vergessen.
Nach den Benchmarks, die ich bisher gesehen habe, zaubert der Phenom vielleicht 20% aus der Tasche bei VM, die er sonst gegenüber einen Q6600 nicht zeigt. Und diese 20% kommt der Q6600 mit dem erhöhten Takt locker weg. Da man auch nicht nur VMs macht, sondern auch mal was anderes, würde ich den Q6600 nehmen - der gibt mir überall Speed.
Na ja, wer fuer ein paar VMs solch eine Diskussion startet, dem scheint es schon wichtig sein und dann kann man evtl. auch noch einen oder zwei Monate warten, vor allem da es ja schon eine Maschine gibt, auf der es erst mal laeuft. Und noch wichtiger: die beiden im kommenden Quartal zu erwartenden Architekturen merzen beide ihre jeweiligen Nachteile aus, sind jedoch, da neu, anfangs teuer.
Jetztzustand je nach Prioritaet:
Skalierung, Fluessigkeit -> AMD
Rechenpower pro Kern -> Intel
Im Umgangssprachgebrauch oft im Zusammenhang mit SLI und Crossfire genannte Mikroruckler sind einfach ein Skalierungs- und Synchronisierungsproblem, da die GPUs auch primaer auf Rechenpower pro Kern bzw. Karte optimiert sind. In FPS bzw. FPM sind sie trotzdem schneller als eine Einzelkarte, welche dafuer fluessig durchlaeuft. (Der Vergleich hinkt, da der Opteron natuerlich auch ein Mehrkernprozessor ist).
Und wenn 7oby "wuergen" meint, dann wuerde ich das uebrigens auch auf den Q6600 bei 3,6GHz erweitern. Aber wir wollen ja hier keinen AMD vs. Intel Thread starten. ;-)
Hab' noch was zum Thema gefunden (aber nur wer lesewütig ist):
http://www.anandtech.com/weblog/showpost.aspx?i=477
Und noch einen Benchmark 7 %- 30 % für NPT:
http://it.anandtech.com/weblog/showpost.aspx?i=467
Es gibt 82 identifizierte und nicht identifizierte User. Zur Ansicht der Liste identifizierter User, Hier klicken.
Dieses Thema ist länger als 6 Monate inaktiv.
Bitte überprüfen Sie, ob Ihr beabsichtigter Kommentar noch einen Mehrwert bringt oder das Anlegen eines neuen Themas nicht besser wäre.

