Innováció a hardver infrastruktúrában processzorok, rendszerek és teljesítmény Fischer Erik Principal Engineer erik.fischer@sun.com
Témák Technológiai bevezető Processzor újdonságok UltraSPARC szerverek Opteron szerverek Solaris 10
A teljesítmény növelés lehetőségei Magasabb órajel Több funkcionális egység (ILP) Vektor feldolgozás (DLP) Jobb/több támogató logika Több mag és/vagy több fonál (TLP)
Magasabb órajel Egyre kevésbé segít, a memória továbbra is lassú Elképzelhetetlenül macerás egy ponton túl Mindenki megtorpant 4GHz-nél Sőt az új cél inkább a 3GHz
Több funkcionális egység A Moore-törvény tranzisztor szinten segít Korlátozhatja az órajelet, több támogató logikát igényel Exponenciálisan nehezedik a validálása A programjaink sajnos nem nagyon változnak, a compiler-ek sem tudnak segíteni, a függőségek szinte értelmetlenné teszik Ma mindenki megállt a 4-6-utas szuperskalár magoknál A támogató logika képességei korlátosak
Vektor feldolgozás A Moore-törvény tranzisztor szinten segít A compiler-ek szinte képtelenek a ma divatos programokból adat szintű párhuzamosságot kinyerni Kézzel optimalizált függvénykönyvtárak Már mindenki meglépte
Jobb/több támogató logika Órajelet korlátozhat Nehéz validálni Triviális a gyorsítótárak növelése > Reguláris struktúra > Megeszi a Moore-törvény adta tranzisztorokat > Sajnos korántsem segít annyit, mint szeretnénk
Több mag és/vagy több fonál 1. A Moore-törvény tranzisztor szinten segít Rendkívül egyszerű validálni Bizonyos korlátok mellett gyorsan megvalósítható (9-24 hónap) A több mag a teljesítményt szinte linárisan, közel 45 -os meredekséggel növeli Az interconnect válik a teljesítmény fundamentumává
Több mag és/vagy több fonál 2. A többfonalas végrehajtásnak sok lehetséges verziója van > Szimultán többfonalas végrehajtás > SoE > Időben multiplexelt A választás nem egyszerű Az implementáció sem Sikeres esetben jelentős teljesítmény növelő tényező lehet
A kompomisszum (1) Az alkalmazásokban elérhető párhuzamosság alkalmazás függő, de erősen korlátos Az átlagos IPC CPU típustól függetlenül 0.3-1.5 közötti egy átlagos 3-6 utas szuperskalár processzorban Technical Integer Enterprise 15 48 52 Stall Stall Stall Execute Execute Execute 51 49 85
A kompomisszum (2) Sok, de egyszerű mag Megfelelő, de nem feleslegesen nagy támogató logika A várakozási idő részleges elrejtése többfonalas végrehajtással Integrált kiegészítő komponensek
Az UltraSPARC T1 processzor Az alapok > 4,6 vagy 8 mag > 90GB/sec nem blokkoló prioritizált crossbar > 3MB integrált másodszintű gyorsítótár > Négy (!) DDR2 memória kontroller > Egyetlen FP egység > Hypervisor > 1.0 és 1.2GHz órajel > 65-75W disszipáció
A magok A magok > Rendkívül egyszerű 6 lépcsős csővezeték > Magonként 4 fonál (!!) kezelése > Minden órajelben az éppen elérhető és legrégebben futattot thread utasítása kerül a csővezetékbe > Moderált elsőszintű gyorsítótárak > Kriptográfiai gyorsítás: 2048b RSA, modulo arithmetika
A pipeline PipeStage 6 Writeback WB Stage (Tag cmp, way select, Ld rtn, byp) PipeStage 5 M/T LSU (DTLB, D$, Dtag access, traps) PipeStage 4 Execute Execute Stage (ALU, VA Generation) PipeStage 3 Decode PipeStage 2 Switch PipeStage 1 Fetch Thread 3 GPRs Thread 2 GPRs Thread 1 GPRs Thread 0 GPRs Switch Stage (Tag Comp,Predecode) Thread 0-PSTATE,PC,nPC, etc Thread 1-PSTATE,PC,nPC, etc Fetch Stage (Icache access) Thread 2-PSTATE,PC,nPC, etc Thread 3-PSTATE,PC,nPC, etc
RAS Rendelkezésre állást növelő funkciók > L1 adat és utasítás gyorsítótár, valamint a TLB-k paritás védettek > A regiszterek SECDED ECC védettek > L2 gyorsítótár > Adat: SECDED > Tag: SEC > Státusz és directory: paritás > Hardver scrubber > DRAM > Quad hiba javítás, octális hiba detektálás > Hardver scrubber, chipkill támogatás, DRAM rekonfigurálhatóság és tartalékolás > JBUS paritás védett > Degradálható magszám és gyorsítótár
Az architektúra következményei Single thread teljesítmény nem kiemelkedő A T1 ott jó, ahol > Nagy párhuzamosságú feladatok vannak > Nagy fonálszámú alkalmazások vannak > Alapvetően I/O intenzívek a feladatok (diszk, hálózat) > Vagyis ott jó a teljesítmény, ahol az I/O műveletek átlapolhatóak más feladatokkal A lebegőpontos feladatok automatikusan nem erre a chipre valók A jó teljesítményhez adott esetben több memória kell, mint ami valójában az alkalmazásnak szükséges
Tipikus feladatok Minden, ami hálózat és I/O orientált Web, portal és proxy server LDAP, Metadirectory, Identity Mailstore, MTA, SPAM és virus filtering Java alkalmazások, application server feladatok, különösen nagy threadszámmal > RDBMS, ERP > > > > > Ha nem batch intenzív > Ha nem számításigényes tranzakciókat futtat > Audio és video streaming > Sun Ray server
Tesztelt alkalmazások Apache Bea WebLogic BLAST Lotus Domino MySQL Oracle (OLTP, DSS) PostgreSQL Siebel CRM SAP Enterprise Portal SAP ISA SAP mysap SAP XI Sophos PureMessage Sun Java Application Server, Sun Java Web Server Sun Java Directory Server Java kód Web szerverek Mail szerverek Apache Tomcat FASTA RealNetworks Helix SAP Sun Java Portal Server Sun Ray Server
UltraSPARC T1 rendszer architektúra DDR2 DDR2 DDR2 200/400MHz 200/400MHz DDR2 200/400MHz UltraSPARC T1 200/400MHz 2 SSI 10/100 Service Processor FPGA PowerPC ALOM Boot Rom JBUS JBus 3.2 GB/S Fire X8 @2.5GHz PCI-Express X8 @2.5GHz
A szerverek T2000 2RU 32GB maximális memória Redundáns tápegységek 4db 2.5 SAS diszk (73GB), opcionális DVD 5db PCI slot (3xPCI-E, 2xPCI-X) 4db USB port 4db GE port ALOM
A szerverek T1000 1RU 16GB maximális memória 1db 2.5 SAS diszk (73GB) 1db PCI-E slot 4db GE port ALOM Márciusi szállítás
A teljesítmény adatok Gép CPU# Mag# Thread# Órajel Eredmény Δ SPECjbb2005 T2000 V890 V890 1 CPU 8 CPU 8 CPU 8 mag 16 mag 16 mag 32 thread 16 thread 16 thread 1.2GHz 1.5GHz 1.3GHz 63378 117986 75862 0.54 0.84 SPECweb2005 T2000 Xeon 1 CPU 2 CPU 8 mag 2 mag 32 thread 2 thread 1.2GHz 3.8GHz 14001 4348 3.22 8 mag 4 mag 7 x 8 mag 8 x 4 mag 32 thread 4 thread 7 x 32 thread 8 x 4 thread 1.2GHz 1.6GHz 1.2GHz 1.6GHz 615.64 471.28 4098.77 3734.68 SPECjAppServer2004 T2000 1 CPU Itanium2 9M 4 CPU T2000 cluster 7 x 1 CPU Itanium2 9M cluster 8 x 4 CPU 1.31 1.1 Lotus Notes Domino 7 T2000 V890 1 CPU 8 CPU 8 mag 16 mag 32 thread 16 thread 1.2GHz 1.5GHz 16061 21904 0.73 SAP 2-tier SD (5.0) T2000 V490 1 CPU 4 CPU 8 mag 8 mag 32 thread 8 thread 1.2GHz 1.5GHz 4780 5320 0.9
UltraSPARC-IV+ A klasszikus alkalmazási területek számára Módosítások > > > > > > > Jelentősen javított architektúra Lényegesen jobb teljesítmény Magasabb órajel On-chip L2 gyorsítótár Off-chip L3 gyorsítótár Azonos fogyasztás Kisebb méret
UltraSPARC IV+ External L3 Cache Data SRAM (32 MB total) L3 Cache Tags 2MB L2 Cache Enhanced US III Pipeline (L1 Caches) ARB Enhanced US III Pipeline (L1 Caches) Mem Ctrl to DRAM to FirePlane System Interconnect 2 UltraSPARC-III mag Javított teljesítmény 2MB L2 Cache On-chip tag és adat 32MB L3 Cache On-chip tag Exkluzív L2 (34 MBs összesen) Három szintű, fair arbitráció Optimalizált interfészek
Memória és rendszer interconnect Fireplane Interconnect Point-to-Point data network Hierarchical address bus 4.8 GB/sec 256 Core 0 9.6 GB/s L2 cache L3 tag 300 MHz Core 1 Core 0 USIV+ Core 1 USIV+ 2.4 GB/sec 2.4 GB/sec Data Switch 4.8 GB/sec DRAM DRAM DRAM DRAM 4.8 GB/sec DRAM 256 SRAM (L3 Cache) SRAM (L3 Cache) 9.6 GB/s 300 MHz L3 tag L2 cache 150 M snoops/sec UltraSPARC III kompatibilis Az on-chip L2 cache tehermenetíti az L3 cache-t A nagy L3 cache csökkenti az interconnect terhelését DRAM Control Address Line Data
UltraSPARC-IV+ felhasználás Kompatibilis az összes korábbi UltraSPARC-III és derivativ chip-pel Keverhető (!) Minden korábbi UltraSPARC-III-as gépben elérhető 1.5GHz most Hamarosan 1.8GHz
Szerverek V490 4 CPU V890 8 CPU E2900 12 CPU Munkacsoportos szerverek Azonos duál CPU/memória alaplapok E4900 12 CPU E6900 24 CPU E20K/E25K 36/72 CPU Nagyvállalati szerverek Azonos quad CPU/memória alaplapok Dinamikus rekonfiguráció Virtuális szerver támogatás
Piaci változások Az x86-os világ új lehetőségeket teremtett a Sun Microsystems számára Ráadásul az x86-os processzorok igen erősek Egyértelműen nyitni lehet az x86 irányába A legjobb x86-os chip az AMD Opteron > 64-bit > Kiváló interconnect > A érezhetően jobb teljesítmény
Az Opteron-os világ Saját tervezésű gépek > Szerverek 1-8 CPU-ig, hamarosan penge formában is > Munkaállomások 1-2 CPU-val Széles és komoly termékportfolió (még bővülő állapotban) Nagyon jó teljesítmény Kiváló menedzselhetőség
Sun Fire X4100 1RU Egy vagy két duál magos Opteron 16GB memória 2 SAS diszk (73GB) 4 GE port 2 PCI-X slot Szerviz processzor Redundáns hűtés és tápellátás
Sun Fire X4200 2RU Egy vagy két duál magos Opteron 16GB memória 4 SAS diszk (73GB) 4 GE port 5 PCI-X slot Szerviz processzor Redundáns hűtés és tápellátás
Alkalmazások és CPU-k I. Nagy thread szám Háttértár intenzív Data Warehousing Web Proxy Caching Meteorology/Climate Simulation Web Serving Data Analysis Adat Nuclear Simulation/Weapons Modeling Streaming Media OLTP Database Security File Server IMS transport Directory Seismic Analysis, SAP R3 Reservoir Modeling SGSN Thermodynamics Application Media gateway Hálózati Batch Sávszélesség J2EE Application Servers intenzív Hálózati HPC EAI Servers Structural Analysis Electronic Design Simulation Compute Grid Workgroup Application Development Financial Risk/Portfolio Analysis Monte Carlo Simulation Számítási Commercial Technical Alacsony thread szám Genomics, Cheminformatics
Alkalmazások és CPU-k II. Nagy thread szám Web Adat Háttértár intenzív Rock Niagara Batch Application Hálózati HPC Számítási UltraSPARC-IV+/Opteron Alacsony thread szám Hálózati Sávszélesség intenzív
Solaris 10
Solaris 10 Minden idők egyik legkomplexebb operációs rendszere és projektje a Sun-nál Minden idők egyik legjobb Unix operációs rendszere Mintegy 700+ alprojekt Ingyenes!!! (Nincs támogatás, de a biztonsági hibajavítások elérhetőek) Nyílt forráskódú: OpenSolaris
Izgalmas nagyobb projektek JDS 3 grafikus felület 64-bites AMD64/EM64T kernel Linux emulációs alrendszer Brand-ek Új TCP/IP stack FireEngine DTrace Integrált ipfilter BART integrált baselining Kriptográfiai alrendszer Biztonsági kiegészítések Service Management Framework
ZFS Még fejlesztés alatt, megjelenés a Solaris 10 U2-ben Integrált fájlrendszer és kötetkezelő Tranzakcionális Teljesen integritás védett 128-bites (256 quadrillió zettab) Dinamikus metaadatok Beépített tömörítés, titkosítás (fejlesztés alatt) Diszk scrubbing Replikáció Minden művelet copy-on-write Gyors snapshot, verziózás Big-endian/little-endian konverzió
COW 1. Az eredeti 2. Adat blokk COW 3. Indirekt blokk COW 4. Überblock módosítás (atomi)
Hibajavítás, kontrollösszegek Mágneses gyengülés Fantom írás Elpozicionált irás vagy olvasás DMA paritás hibák Eszközmeghajtó hibák Véletlen felülírás Address Address Checksum Checksum Address Address Checksum Checksum Data Data
Önjavítás Alkalmazás Alkalmazás Alkalmazás ZFS tükör ZFS tükör ZFS tükör
Snapshot Snapshot überblokk Aktuális überblokk
Zónák Egyetlen kernel megosztása több virtualizált applikációs konténer között Processz bedobozolás > erőforrás és biztonsági izoláció > láthatóság és kontrol (globális, nem globális) Virtualizált hardver (!), de nem virtuális gép Kintről önálló operációs rendszernek tűnik
Zónák blokk diagram
Zónák erőforrás menedzsment A Solaris 9 továbbfejlesztett erőforrás menedzsmentje Erőforrás limitek definiálhatók a zónákhoz és dinamikusan változtathatóak Erőforrás pool-ok készíthetőek > Egy pool-ra több zóna is multiplexelhető A projekt adatbázis virtualizált, zónánként Minden zóna önálló fizikai memória kontrollal rendelkezik Két lépcsős Fair Share Scheduler
Zónák erőforrás menedzsment
RBAC Solaris 8 óta az operációs rendszer része A root feladatai szerepekbe szervezhetőek A szerepek csak felvehetőek, de nem lehet beléjük lépni A szerepek 4 fájlban definiálódnak és parancs szinten konfigurálhatóak A Solaris 10-től privilégium kiegészítést is kaptak
Privilégiumok - alapgondolat Least privilege A mindenható root jogainak szétszedése apró darabokra > Egyenként elvenni vagy odaadni Sok minden fut root-ként, aminek nem kellene > Pl. alacsony portokra bind-oló web szerver
Megvalósítás A kernel nem UID==0-ra vizsgál, hanem az éppen szükséges privilege-re 47 egyedileg ki-bekapcsolható privilege Bővíthető Kompatibilitás: root minden privilege-vel rendelkezik Privilege-aware programozás