Nur damit ich den Link nicht verliere, hier eine Übersicht der Optionen die man in der SUN Java Virtual Machine findet:
blogs.sun.com/roller/resources/watt/jvm-options-list.html
Die klassische JavaHotSpot Options Beschreibung ist nicht so vollständig aber deutlich ausführlicher:
java.sun.com/docs/hotspot/VMOptions.html
Vor einiger Zeit
kündigte Microsoft an, Multi-Core Prozessoren mit einer einzelnen CPU Lizenz für die Server Systeme zu besteuern. Dahinter steckt sicher die Überlegung einer einfachen Lizensierung: Server mit Multi-Core Chips haben etwa das gleiche Preisniveau wie ihre Vorgänger bei üblicher Leistungszunahme über die Zeit - keinen Grund für Microsoft Daumenschreiben anzulegen, zumal die Roadmaps von AMD und Intel nur eine langsame zunahme bei der Anzahl der Cores erkennen lassen, wobei die Schere zwischen Low und High-End Prozessoren nicht allzuweit aufklafft.
Ganz im Gegenteil jedoch im 64-bit SPARC Lager. Dort werden gleich 3 Generationen von Prozessoren weitergepflegt:
UltraSPARC III,
UltraSPARC IV(+), und ganz neu die auf Multi-Threading optimierten
UltraSPARC T1 Prozessoren: Mit acht Cores auf einem Chip. Noch dazu hat jeder Core die Möglichkeit 4 Threads parallel zu verwalten (das von Intel bekannte Hyperthreading nennt Sun CoolThreads). Ein enormer Sprung von 1 auf 2 auf 32 Threads pro Chip.
Zur Zeit gibt es nur Single-Prozessor Systeme (Sun Fire T1000 und T2000) für den Niagara Chip. Dabei gibt es 1.0 und 1.2GHz Varianten mit 4-8 Cores. Die vier und sechs Core Varianten dürften Dies mit Defekten oder abgeschalteten Cores sein um den Ausschuss zu reduzieren und den kunden flexibles Pricing anbieten zu können.
Nun ist es so, dass die CPUs durchaus 32 Prozesse gleichzeitig ausführen können, aber durch diverse Einschränkungen keinesfalls eine 32-fache Rechenleistung bereitsteht (auch wenn Sun mit Rack-on-a-Chip oder mit "9.2GHz" wirbt). Ein 3MB L2 Cache (allerdings mit bis zu 4 SDRAM Schnittstellen), alle Threads teilen sich auch nur eine FPU. Das Chip Multi Threading stellt für jeden Thread einen Satz Register bereit, aber jede Core hat eine (6 stufige) Verarbeitungspipeline.
Ideales Workload sind somit Internet Anwendungen mit einer großen Anzahl von parallelen Threads und keinen Fliesskomma Berechnungen, die mit IO oder Memory Zugriffen beschäftigt sind. Also z.B. Web-, File oder Java Application Server. Diese profitieren wohl auch vom Hardware-RSA.
Benchmarks zeigen dass beim SPECjbb2005 Benchmark die Leistung eines T1 mit 1.2GHz 8-Core in Etwa auf Höhe eines Dual 1.9Ghz 2-Core Power5+ Moduls liegen (Betrachtet man die Zahlen, so bleibt SPARC ein eher langsamer Prozessor pro Core, sowohl im Vergleich zu den effizienten POWER5+ als auch zu den hochgetakteten Intels und Opterons) - vorausgesetzt es ist möglich mehr als 4 Opteron oder Xeon Cores zu produzieren. Aber bis dahin hat Sun extrem die Nase vorn!
Das Problem besteht aber jetzt für Software Anbieter auf Solaris Systemen: wie vergleiche ich mehrere Cores mit mehreren Prozessoren? Zuerst kam Oracle auf die Idee jede Core als 0.75 Lizenzen zu rechnen. Das kommt allerdings nur den Dual-Core Systemen entgegen. Besser wäre es sicher Systeme mit vielen Cores/Sockel zu verbilligen:
Lizenzen für eine CPU mit x cores:
l(x)=0.75^0+0.75^1+....+0.75^(x-1)
.. das wären dann 3.6 Lizensen für ein System mit einer 8 Core CPU und 7.2 Lizensen für 2x8 Cores im Gegensatz zu 3.9 Lizenzen für eine 16 Core CPU. Oder 3.5 Lizenzen für zwei Dual-Core CPUs und 4 Lizenzen für ein 4 Wege Rechner ohne Multi-cores.
Continue reading "Oracle ist auf 8 Core CPUs billiger als auf 4 Core CPUs?"
Richard Monson-Haefel dürfte vielen meiner Leser als Autor der O'Reilly Bücher
Enterprise Java Beans,
Java Message Service oder des AW Buches
J2EE Web Services bekannt sein. In seinem Blog berichtet er seit geraumer Zeit über seinen Beruf als Sr. Analyst in der
Burton Group:
I, Analyst.
Die Einblicke in seinen Arbeitsalltag, in die vorgeschriebene Methodik und seine Gedanken zu den Technologien sind sehr interessant. Vom Programmierer zum Generalist: man hat den Eindruck dass bei solchen Analysten die Klienten wirklich einen Mehrwert von den Analysen oder Gesprächen erwarten können.
Er plant(e) auch ein neues Buchprojekt, unter dem Arbeitstitel "This is Java" (http://rmh.blogs.com/thisisjava/) hat er eine Zeit über seine Überlegungen zu dem neuen Buch-Projekt geblogged. Inzwischen ist das Blog aber verschwunden. Schade, fand ich ein spannenden Ansatz mal die Erfolgsfaktoren von Java zu betrachten die Abseits von den üblichen Referenzwerken existieren, z.B. die Tatsache dass es einen einheitlichen Byte-Code gibt...
Update: RMH hat begonnen
täglich über seinen Job zu bloggen. Er
verweist auch auf das Blog von James Governors. Dieser
beschreibt die Unterschiede in der Arbeit eines Analysten für die große Burton-Group im Gegensatz zur Arbeit eines Analysten fuer die kleine IT-Strategieberatung
RedMonk.
Mit dem Microsoft SQL Server bin ich sehr zufrieden. Er ist ziemlich intelligent was das Selbst-Tuning angeht, gerade in einem Umfeld in dem kein Vollzeit-DBA zur Verfügung steht. Im Vergleich zu Oracle Datenbanken ist die Lernkurve deutlich geringer, Entwickler sind produktiver. Jedoch war schon immer eine Schwäche des Produktes die Unterstützung von Java (also der
JDBC Treiber): der Microsoft JDBC Treiber für den SQL Server ist nur eingeschränkt frei verwendbar, die neusten Feature und Performance Verbesserungen finden sich grundsätzlich nur in
Beta Versionen.
Dieses Problem haben auch einige kommerzielle Anbieter von JDBC Treibern erkannt (z.B.
i-net Merlia oder
JNetDirect). Wir haben in unseren Produkten lange Zeit den JSQLConnect Treiber von JNetDirect eingesetzt. Jedoch ist es für einen ISV schwer für einfache Infrastruktur Komponenten eine Beziehung mit einem Lieferanten aufrecht zu erhalten, die neben den Lizenzkosten auch Einschränkungen bei der Installation und Verteilung macht. Deswegen hat der Ablauf unseres Lizenzkontingentes und auch dazu bewogen uns nach Alternativen umzusehen.
FreeTDS stand bei uns unter Beobachtung, war aber nicht befridigend. Es ist eine Open Source Implementierung des Tabular Data Stream Protokolls, das sowohl von Sybase als auch Microsoft für die Datenbank Produkte eingesetzt wird. Erst seit der JDBC
Type-4 Treiber in einem eigenen Projekt weiterentwickelt wurde, hat er sich aber als Alternative herausgestellt.
jTDS ist seitdem
ohne Zweifel einer der schnellste und stabilsten JDBC Treiber für den MS SQL Server, der noch dazu als Open Source (LGPL) erhältlich ist, und alle Features unterstützt die wir bisher in unseren J2EE Anwendungen (Tomcat und JBoss) benötigt haben.