mardi mars 26, 2013

New SPARC Servers Launched today : Extreme Performances at exceptionally low cost

It will be very difficult to summarize in a short post all the details and already available customers and ISVs results leveraging Oracle investment, design and ability to execute on SPARC servers complete renewal with not one but 2 processors launched : SPARC T5 and M5. It is somehow captured in the title of this entry, in Larry's own words: "extreme performances at exceptionally low cost". To give you a quick idea, we just announced 8 552 523 tpmC with 1x T5-8 (a new 8x sockets T5 mid-range server). Adding on top, "extreme scalability with extreme reliability", as with the M5-32 server, we can scale up to 32x sockets and 32 TB of memory, in a mission-critical system.

New way of designing systems

As what John Fowler was saying : "this starts with design". Here at Oracle, we have a new way of designing. Historically systems were designed by putting servers, storage, network and OS together. At Oracle we add Database, Middleware and Applications in the design. We think what it takes for the coherency protocols, the interfaces, and design around those points... and more.
Today we introduce not one but 2x processors with the whole family of servers associated with them. Thanks to common architecture they are design to work together. All of this of course runs Solaris. You can run Solaris 10, Solaris 11 and virtualize.  No break on binary compatibility.

Direct benefit for your applications... at lowest risk... and lowest cost

This is good for our customers and our ISVs, enabling them to run their applications unchanged on those new platforms with no equivalent performance gain, lowest cost and lowest risks, thanks to the binary compatibility and the new servers design under Oracle era. There was many customers examples on-stage, so I will just pick 2, SAS moving from M9000 to M5-32 with a x15 gain overall, and Sybase moving from M5000 to a T5-2 with a x11 gain overall. Those being in my opinion very important as they are reflecting real applications and customers experiences, many of them being in the financial services, and already having jump on those new systems (thanks to the beta program).

To get a better idea of what the new SPARC T5 and M5 will bring to your applications, being Siebel, E-Business Suite, JD Edwards, Java, or SAP... Have a look here : https://blogs.oracle.com/BestPerf/ on the 17 world records... on performances and price.

jeudi oct. 04, 2012

#OOW 2012: Big Data and The Social Revolution

As what was saying Cognizant CSO Malcolm Frank about the "Futur of Work", and how the Business should prepare in the face of the new generation  not only of devices and "internet of things" but also due to their users ("The Millennials"), moving from "consumers" to "prosumers" :  we are at a turning point today which is bringing us to the next IT Architecture Wave. So this is no more just about putting Big Data, Social Networks and Customer Experience (CxM) on top of old existing processes, it is about embracing the next curve, by identifying what processes need to be improve, but also and more importantly what processes are obsolete and need to be get ride of, and new processes put in place. It is about managing both the hierarchical and structured Enterprise and its social connections and influencers inside and outside of the Enterprise. And this does apply everywhere, up to the Utilities and Smart Grids, where it is no more just about delivering (faster) the same old 300 reports that have grown over time with those new technologies but to understand what need to be looked at, in real-time, down to an hand full relevant reports with the KPI relevant to the business. It is about how IT can anticipate the next wave, and is able to answers Business questions, and give those capabilities in real-time right at the hand of the decision makers... This is the turning curve, where IT is really moving from the past decade "Cost Center" to "Value for the Business", as Corporate Stakeholders will be able to touch the value directly at the tip of their fingers.

It is all about making Data Driven Strategic decisions, encompassed and enriched by ALL the Data, and connected to customers/prosumers influencers. This brings to stakeholders the ability to make informed decisions on question like : “What would be the best Olympic Gold winner to represent my automotive brand ?”... in a few clicks and in real-time, based on social media analysis (twitter, Facebook, Google+...) and connections link to my Enterprise data.

A true example demonstrated by Larry Ellison in real-time during his yesterday’s key notes, where “Hardware and Software Engineered to Work Together” is not only about extreme performances but also solutions that Business can touch thanks to well integrated Customer eXperience Management and Social Networking : bringing the capabilities to IT to move to the IT Architecture Next wave.

An example, illustrated also todays in 2 others sessions, that I had the opportunity to attend. The first session bringing the “Internet of Things” in Oil&Gaz into actionable decisions thanks to Complex Event Processing capturing sensors data with the ready to run IT infrastructure leveraging Exalogic for the CEP side, Exadata for the enrich datasets and Exalytics to provide the informed decision interface up to end-user. The second session showing Real Time Decision engine in action for ACCOR hotels, with Eric Wyttynck, VP eCommerce, and his Technical Director Pascal Massenet.

I have to close my post here, as I have to go to run our practical hands-on lab, cooked with Olivier Canonge, Christophe Pauliat and Simon Coter, illustrating in practice the Oracle Infrastructure Private Cloud recently announced last Sunday by Larry, and developed through many examples this morning by John Folwer. John also announced today Solaris 11.1 with a range of network innovation and virtualization at the OS level, as well as many optimizations for applications, like for Oracle RAC, with the introduction of the lock manager inside Solaris Kernel. Last but not least, he introduced Xsigo Datacenter Fabric for highly simplified networks and storage virtualization for your Cloud Infrastructure.

Hoping you will get ready to jump on the next wave, we are here to help...

lundi oct. 01, 2012

#OOW 2012 : IaaS, Private Cloud, Multitenant Database, and X3H2M2

The title of this post is a summary of the 4 announcements made by Larry Ellison today, during the opening session of Oracle Open World 2012... To know what's behind X3H2M2, you will have to wait a little, as I will go in order, beginning with the IaaS - Infrastructure as a Service - announcement.

Oracle IaaS goes Public... and Private...

Starting in 2004 with Fusion development, Oracle Cloud was launch last year to provide not only SaaS Application, based on standard development, but also the underlying PaaS, required to build the specifics, and required interconnections between applications, in and outside of the Cloud. Still, to cover the end-to-end Cloud  Services spectrum, we had to provide an Infrastructure as a Service, leveraging our Servers, Storage, OS, and Virtualization Technologies, all "Engineered Together".

This Cloud Infrastructure, was already available for our customers to build rapidly their own Private Cloud either on SPARC/Solaris or x86/Linux... The second announcement made today bring that proposition a big step further : for cautious customers (like Banks, or sensible industries) who would like to benefits from the Cloud value of "as a Service", but don't want their Data out in the Cloud... We propose to them to operate the same systems, Exadata, Exalogic & SuperCluster, that are providing our Public Cloud Infrastructure, behind their firewall, in a Private Cloud model.

Oracle 12c Multitenant Database

This is also a major announcement made today, on what's coming with Oracle Database 12c : the ability to consolidate multiple databases with no extra additional  cost especially in terms of memory needed on the server node, which is often THE consolidation limiting factor. The principle could be compare to Solaris Zones, where, you will have a Database Container, who is "owning" the memory and Database background processes, and "Pluggable" Database in this Database Container. This particular feature is a strong compelling event to evaluate rapidly Oracle Database 12c once it will be available, as this is major step forward into true Database consolidation with Multitenancy on a shared (optimized) infrastructure.

X3H2M2, enabling the new Exadata X3 in-Memory Database

Here we are :  X3H2M2 stands for X3 (the new version of Exadata announced also today) Heuristic Hierarchical Mass Memory, providing the capability to keep most if not all the Data in the memory cache hierarchy. Of course, this is the major software enhancement of the new X3 Exadata machine, but as this is a software, our current customers would be able to benefit from it on their existing systems by upgrading to the new release. But that' not the only thing that we did with X3, at the same time we have upgraded everything :

  • the CPUs, adding more cores per server node (16 vs. 12, with the arrival of Intel E5 / Sandy Bridge),
  • the memory with 256GB memory as well per node,
  •  and the new Flash Fire card, bringing now up to 22 TB of Flash cache.

All of this 4TB of RAM + 22TB of Flash being use cleverly not only for read but also for write by the X3H2M2 algorithm... making a very big difference compare to traditional storage flash extension.

But what does those extra performances brings to you on an already very efficient system: double your performances compare to the fastest storage array on the market today (including flash) and divide you storage price x10 at the same time... Something to consider closely this days... Especially that we also announced the availability of a new Exadata X3-2 8th rack : a good starting point.

As you have seen a major opening for this year again with true innovation. But that was not the only thing that we saw today, as before Larry's talk, Fujitsu did introduce more in deep the up coming new SPARC processor, that they are co-developing with us. And as such Andrew Mendelsohn - Senior Vice President Database Server Technologies came on stage to explain that the next step after I/O optimization for Database with Exadata, was to accelerate the Database at execution level by bringing functions in the SPARC processor silicium. All in all, to process more and more Data... The big theme of the day... and of the Oracle User Groups Conferences that were also happening today and where I had the opportunity to attend some interesting sessions on practical use cases of Big Data one in Finances and Fraud profiling and the other one on practical deployment of Oracle Exalytics for Data Analytics.

In conclusion, one picture to try to size Oracle Open World


... and you can understand why, with such a rich content... and this is only the first day !

lundi sept. 03, 2012

Pre-rentrée Oracle Open World 2012 : à vos agendas

A maintenant moins d'un mois de l’événement majeur d'Oracle, qui se tient comme chaque année à San Francisco, fin septembre, début octobre, les spéculations vont bon train sur les annonces qui vont y être dévoilées... Et sans lever le voile, je vous engage à prendre connaissance des sujets des "Key Notes" qui seront tenues par Larry Ellison, Mark Hurd, Thomas Kurian (responsable des développements logiciels) et John Fowler (responsable des développements systèmes) afin de vous donner un avant goût.

Stratégie et Roadmaps Oracle

Bien entendu, au-delà des séances plénières qui vous donnerons  une vision précise de la stratégie, et pour ceux qui seront sur place, je vous engage à ne pas manquer les séances d'approfondissement qui auront lieu dans la semaine, dont voici quelques morceaux choisis :

Retours d'expériences et témoignages

Si Oracle Open World est l'occasion de partager avec les équipes de développement d'Oracle en direct, c'est aussi l'occasion d'échanger avec des clients et experts qui ont mis en oeuvre  nos technologies pour bénéficier de leurs retours d'expériences, comme par exemple :

Echanges avec les groupes d'utilisateurs et les équipes de développement Oracle

Si vous avez prévu d'arriver suffisamment tôt, vous pourrez également échanger dès le dimanche avec les groupes d'utilisateurs, ou tous les soirs avec les équipes de développement Oracle sur des sujets comme :

Testez et évaluez les solutions

Et pour finir, vous pouvez même tester les technologies au travers du Oracle DemoGrounds, (1133 Moscone South pour la partie Systèmes Oracle, OS, et Virtualisation) et des "Hands-on-Labs", comme :

En conclusion, une semaine très riche en perspective, et qui vous permettra de balayer l'ensemble des sujets au coeur de vos préoccupations, de la stratégie à l'implémentation... Cette semaine doit se préparer, pour tailler votre agenda sur mesure, à travers les plus de 2000 sessions dont je ne vous ai fait qu'un extrait, et dont vous pouvez retrouver l'ensemble en ligne.

lundi oct. 10, 2011

Oracle Open World 2011 : Very Big (again) !

Translate in English 

Oracle Open World continue a battre des records aussi bien en terme d'audience avec plus de 45000 personnes que de contenus, avec plus de 2000 sessions, sans parler des annonces majeures qui ont eu lieu cette année et sur lesquelles je vais revenir dans ce poste, jour par jour.

Premier jour : Engineered Systems

L'évènement a été lancé avec une "key notes" 100% matériel, autour des Engineered Systems, avec un rappel du succès d'Exadata et d'Exalogic, et du pourquoi : massivement parallèle à tous les niveaux, avec en plus la compression des données pour pouvoir bouger beaucoup de données, beaucoup plus vite qu'une architecture traditionnelle, le tout basé sur un coeur infiniband... Conception poussée jusqu'au processeur avec le T4 et Solaris côté système d'exploitation, qui aboutissent a un nouvel "Engineered Systems", le Supercluster, pour proposer la solution la plus adaptée (intégrée) sur le terrain des applications utiles à l'Entreprise (Java/Database). Pour le partie calcul géométrique, ce sera la prochaine étape...


""Cette première "key notes" s'est conclue toujours sur du "Hardware and Software Engineered to work together", pour délivrer des résultats "plus vite que la pensée" avec l'Exalytics, qui s'interface de préférence avec un Exadata, mais pas seulement... pourquoi pas votre SAP, pour en tirer des analyses très rapide sur une volumétrie de données importante, que l'on arrive à faire tenir dans 1 TB de RAM, grâce à des technologies de... [Read more][Read More]

vendredi juin 10, 2011

Stratégie Solaris : venez rencontrer et partager avec les responsables de l'offre Solaris

Le 20 juin à Paris, Lynn Rohrer (Director of Solaris Product Management) et Joost Pronk (Principal Product Director) rencontrerons les utilisateurs de Solaris lors d'un évènement, co-organisé avec le GUSES. Ils seront parmi nous pour expliquer en quoi l'engagement d'Oracle vis-à-vis de Solaris est fort aussi bien sur plates-formes SPARC et x86. L'évènement débutera par une présentation, suivie d'un échange avec les intervenants. Il se déroulera à partir de 18h30, au 115 rue Saint-Lazare 75008 Paris. Inscription obligatoire ici.

lundi mai 30, 2011

DSI, Technologies Clés 2015 & Stratégie Oracle

Translate in English

Trois éléments m'ont poussé à écrire ces quelques lignes : (1) les préoccupations des DSI face au Cloud Computing, (2) la sortie du rapport sur les technologies clés 2015,  publié en ce début d'année par le Ministère de l'économie, des finances et de l'industrie, et (3) la venue la semaine dernière à Paris du responsable du développement des Solutions Optimisées au sein d'Oracle.

[Read More]

lundi mars 14, 2011

Les détails qui fond la différence : l'importance d'une bonne gestion de la mémoire

Translate in English

La semaine dernière, William Roche a clôturé son intervention sur la gestion de la mémoire, dans le cadre du Groupe des Utilisateurs Solaris. Le sujet était tellement riche, qu'il a fallu 2 sessions à William pour expliciter les avancées apportées au niveau de Solaris pour exploiter au mieux la mémoire.

Tout utilisateur manipulant de gros volumes de données, ou cherchant à consolider ses applications ou des machines virtuelles, connait l'importance de la mémoire. En effet, face à l'évolution des processeurs vers les multi-coeurs avec en plus plusieurs unités d'exécution par coeur, la mémoire prend une place prépondérante pour pouvoir les alimenter comme il se doit. Pour que cela soit efficace, il faut à la fois concevoir des serveurs sans goulot d'étranglement matériel avec une architecture homogène permettant de mettre en oeuvre suffisamment de mémoire en face des processeurs. Mais aussi disposer d'un système d'exploitation capable de tirer partie de l'infrastructure à disposition et d'en rendre la pleine puissance aux applications.

La mémoire se cache partout, pas uniquement la RAM, mais aussi dans les disques (SWAP, SSD), et pour Solaris c'est beaucoup beaucoup plus que cela : y compris les registres et le cache du CPU (le plus rapide, mais le plus cher).

Quelques chiffres de temps d'accès

  • Registres CPUS : < 1 ns d'accès.
  • Les caches L1, L2 : 1 à 20 ns
  • La RAM : 80ns à 500ns
  • SSD : 25 us à 250 us
  • Disques : 5ms - 20ms
  • DVD : 100ms

...mis en perspective

 Type de Cache
 Taille  Temps d'accès
 Perspective
 Registes CPU
 1 Koctets
 1 cycle
 1 seconde
 L1 CPU
 100 Ko
 2 cycles
 2 secondes
 L2 CPU
 8-16 Mo
 19 cycles
 10 secondes
 mémoire principale
 128 Mo à 512 Go (et plus)
 50 - 300 cycles
 50 secondes à 5 minutes
 Disques  40 Go à plusieurs To
 11 M cycles
 4.24 mois !
 Réseau  Pas de limite
 80 M cycles
 2.57 années !!

Garder les données actives proches du processeur est critique !

Et c'est là où, la conception des serveurs et Solaris rentrent en action.

Lors du démarrage, Solaris prend connaissance du système sous-jacent : processeurs, bancs mémoires, temps d'accès entre chacun des processeurs avec les différents bancs mémoires, etc... Cela lui sert non seulement dans l'optimisation de l'allocation des processus vis à vis de l'accès à la mémoire, mais aussi pour sécuriser le système, en pouvant par exemple "black lister" des coeurs ou des bancs mémoires défaillant sans impacter les applications.

En outre, grâce aux fonctions de "Large Page Support", Solaris adapte dynamiquement  la taille des pages mémoires en fonction du comportement de l'application pour éviter des cycles d'accès inutiles, qui comme illustré dans le tableau précédent coûtent cher !

Ces points ne représentent que quelques unes des nombreuses optimisations nous permettant de tirer parti des évolutions technologiques, et de répondre à l'évolution des besoins des applications, sans que vous, utilisateur, n'ayez à y penser. Si vous souhaitez approfondir le sujet, je vous renvoie à l'excellente présentation de William, ainsi qu'à l'article suivant : "Understanding Memory Allocation and File System Caching in OpenSolaris"

Vous pourrez même échanger directement avec William, ainsi que plusieurs experts Oracle Solaris, comme Clive King, Thierry Manfé ou Claude Teissedre,  lors du Solaris Tech Day, qui se tiendra le 5 avril prochain.

Translate in English

samedi sept. 25, 2010

Oracle OpenWorld : BIG !

Translate in English

Gigantesque est bien le mot. Je suis dans l'avion qui me ramène d'oracle openworld avec Christophe Talvard et nous voulions vous livrer quelques impressions "à chaud" et un chiffre : 41000 personnes ! Evidemment vous n'avez sûrement pas manqué les nombreux articles sur le sujet, avec bien entendu l'annonce majeure sur la solution Exalogic Elastic Cloud, qui vient s'adosser à l'offre Exadata pour couvrir le tier applicatif de façon très efficace : 12 fois plus performante qu'une architecture traditionnelle en grille de serveurs d'application. Un niveau de performance permettant de supporter la charge du trafic mondial de Facebook sur seulement deux configurations! Ce qui démontre en soi la stratégie d'Oracle : "Hardware and Software engineered to work together". Une stratégie qui va bien au delà de l'extraordinaire gain en performance et qui s'attache également à faciliter la gestion de l'ensemble des composants logiciels et matériels de l'Exalogic avec la possibilité de les mettre à jour avec un unique fichier, pré-testé et validé par Oracle.

Avec Exalogic et Exadata, tous les éléments sont présents pour déployer un Cloud public ou privé : les performances, l'intégration des logiciels et des matériels mais également la tolérance aux pannes, la flexibilité et l'évolutivité.

Mais ce n'est pas tout, SPARC et Solaris disposaient également d'une place de choix avec la présentation de la roadmap à 5 ans et l'annonce du processeur T3, ses 16 cœurs et quelques records du monde à la clé, ainsi que l'arrivée prochaine de Solaris 11, non seulement de façon générale mais aussi en option au sein d'Exalogic et de la nouvelle version d'Exadata. A ce titre de nombreuses sessions d'échanges sur des retours d'expérience de mises en œuvre d'Exadata ont fait salles combles, notamment celles de Jim Duffy et Christien Bilien sur la solution déployée chez BNP Paribas (voir précédent poste). A noter également plusieurs témoignages sur l'utilisation d'Exadata en consolidation de bases de données. Un modèle qui devrait s'accélérer avec la nouvelle machine x2-8, ses nœuds très capacitifs de 64 cores et 2 To de RAM et ses unités de stockage Exadata Storage server ultra performantes et optimisées pour vos données structurées. Sans oublier l'annonce de la nouvelle gamme ZFS Storage Appliances pour l'ensemble de vos données non structurées et le stockage de vos environnements virtualisés au meilleur coût et avec une sécurité maximum (triple parité).

Toutes ces infrastructures matérielles et logiciels conçues pour travailler ensemble, sont les fondations des applications supportant les métiers de votre entreprise. Et dans ce domaine, l'annonce de l'arrivée de Fusion Applications, l'un des plus gros projet de développement de l'histoire d'Oracle, est majeure. En effet, Fusion Application apporte à vos applications métiers (CRM, ERP, RH,...) un socle standard et non plus un moteur propriétaire comme c'était le cas jusqu'ici. Or, nous le savons tous, ces moteurs propriétaires liés aux développements spécifiques sont les causes de la complexité des systèmes d'informations actuellement en place et de leur non agilité à répondre aux changements des métiers toujours plus rapide. Fusion Application change radicalement les perspectives, car non seulement il fournit une souche standard mais il a été également conçu pour découpler les besoins spécifiques du socle et donc pour ne pas freiner les évolutions et l'agilité de l'entreprise.

En bref, nous disposons de solutions technologiques ouvertes, qui, tout en s'intégrant de manière évolutive dans votre système d'information vont en révolutionner les opérations avec un alignement sur les besoins métiers et une agilité incomparable. Et nous sommes tous prêts à travailler à vos côtés pour les mettre en application dès aujourd'hui.

Translate in English

mercredi juin 16, 2010

Gagnez en observabilité et en rapidité d'analyse avec DTrace

Translate in English

Faisant suite à la présentation de William Roche sur DTrace, le groupe d'utilisateurs Solaris se réunit pour une mise en pratique ce soir à Supinfo. Afin de comprendre les atouts de cette technologie, j'ai repris dans ce poste, les principaux points exposés par William lors de son intervention. Avec ces éléments, vous serez capable de :

  1. vous lancer dans DTrace
  2. briller dans l'analyse et la résolution de vos problèmes de production !
  3. nous rejoindre ce soir pour débuter l'expérience
Un peu d'historique

Dtrace existe depuis l'origine de Solaris 10. Il permet d'observer dynamiquement non seulement Solaris mais également les applications, incluant Java, python, php, MySQL,... et bien d'autres. DTrace s'accompagne d'un langage (D) qui permet d'écrire des programmes servant à collecter des informations, voir même à agir sur le système.

DTrace a été conçu pour être utilisé en production

Par exemple, DTrace est conçu pour ne pas causer de Panic, de crash, de corruption de données, ou de dégradation de performance...

Comment ?
En le concevant sur la même idée que Java : un script DTrace va être exécuté en étant interprété dans le noyau, et en passant des filtres d'exécutions et des filtres de données au plus prêt possible où elles sont générées. Ce qui aboutit notamment à une réduction au maximum du temps de capture, de sélection et de traitement des données : limitant d'autant l'impact d'une telle analyse sur un système en production.

DTrace révolutionne la méthode d'analyse

Avant, (1) vous partiez d'une hypothèse, (2) vous instrumentiez le binaire (il vous fallait les sources, pour y ajouter votre instrumentation :  printf("coucou\\n"); ce qui n'était pas toujours simple, puis recompiler, et enfin exécuter), (3) vous collectiez vos données, (4) vous les analysiez, (5) vous revoyez vos hypothèses... et vous relanciez la boucle d'analyse.

Avec DTrace, la partie instrumentation est très fortement réduite :

  • pas besoin de recompiler un programme,
  • capaciter de s'attacher à un programme qui est déjà en cours d'exécution,
  • capaciter de mettre des points d'observations,....
tous cela au plus proche de là où sont générées les données !

Le programme qui passe dans l'endroit que l'on souhaite surveiller génére un évènement, et DTrace capture l'information à la source. La boucle d'analyse est réduite et on peut se concentrer sur le problème à résoudre et non sur l'instrumentation proprement dite.

Pourquoi Dynamic ?

Il y a énormément de mécanismes qui permettent d'analyser des erreurs sur un programme, comme par exemple, un core applicatif, ou un crash dump système, avec les outils d'analyse postmortem comme mdb ou dbx.

Par contre pour analyser des problèmes transient, il existe également truss voir mdb... Mais avec des limitations, comme par exemple l'impossibilité de couvrir les appels systèmes.

Pouvoir comprendre sur un système, pourquoi il y a énormément de threads, qui les réveille, qui les mets en sommeille, c'est à ce type d'information et bien d'autre que Dtrace nous donne en temps réel : des éléments d'analyse précieux.

Dtrace est un framework accessible à travers l'interface DTrace (7D). Pour parler à la partir noyau, nous disposons de la librairie libDTrace (3LIB). dtrace (1M) , lockstat (1M), plockstat (1M) utilisent cette librairie pour collecter des données.


En dessous du framework, il y a le coeur du système : les providers, permettant de collecter les données, de mettre les points d'observations : sdt (stat du système), sysinfo (mpstat), vminfo(vmstat), fasttrap (memory trap, etc...), lockstat (lock système), sched (info sur le scheduling : qui se réveille, qui s'endort, ...), proc (instrumentation d'un processus user land) , syscall (appels système), mib (mib II), io , nfsv4, ip, fbt (les fonctions du noyaux : tous les points d'entrées et de départs de presque toutes les fonctions du noyaux)... pour n'en siter que quelques uns ! Les providers activés vont instrumenter le code et l'exécution du code dans le noyau va faire un petit bond dans le provider pour collecter les informations.

MySQL, Java, php, quand ils se lancent viennent s'authentifier au niveau du framework DTrace et enregistrer leurs providers. Par défaut, ils ne sont pas actifs. Si par contre vous avez besoin d'une information précise, il suffit d'activer le probe voulu.

La richesse de notre implémentation DTrace vient des providers !

Un éditeur de logiciel peut mettre ses points d'observation dans son logiciel : USDT (User-Level Statically Defined Tracing) et fournir ainsi son provider.

On peut avoir plusieurs observateurs en parallèle qui regardent le même "probe". Quand un utilisateur arrête un programme DTrace, tous les probes qu'il utilisaient sont dés référencés de 1, jusqu'à potentiellement la désactivation du probe.

La syntaxe d'un probe

Probe : <provider>: <module>:<fonction>: <name>
Exemple : FBT:XXX:FFF:ENTRY
Le DTrace framework s'executant dans le Kernel,  il n'y a pas de context switch lors de la rencontre d'une trace.
Nous pouvons avoir des buffers mémoires DTrace par CPU (meilleur gestion des performances), et nous capturons exactement l'information consolidée : par exemple le nombre de fois que l'on rentre dans une fonction... Une grosse différente avec la méthode printf("coucou\\n");.

Pour obtenir la liste de tous les providers (enregistrés à l'instant t) : # dtrace -l

Puis pour avoir des informations plus ciblées :
# dtrace -P <provider>
# dtrace -m <module>
# dtrace -f <function>
# dtrace -n <name>

Au passage, il est important de noter les droits d'utilisation de dtrace, généralement réservés à root. Vous pouvez déléguer tout ou parti de ces droits, en utilisant les niveaux suivants dans /etc/user_attr : dtrace_user, dtrace_proc, dtrace_kernel

Le language D

Le language D a presque la syntaxe du C avec la manière d'écrire un programme awk(1M).  C'est un script qui définit un certain nombre de prédicats et qui a chaque fois que ce prédicat est rencontré, génère une action. Dans l'action on peut positionner des variables pouvant elles-mêmes faire l'objet de conditions.

DTrace c'est un programme construit de cette manière qui dispose de variables globales, locales au thread d'exécutions, locales au provider, avec des variables intégrées comme execname et timestamp.
On définit ensuite l'action, par exemple : tracer la données, enregistrer une trace de la stack, enregistrer la donnée.

Quand un évènement est déclanché et que le prédicat est vrai, l'action est exécutée.

Example : "Print all the system calls executed by bash"
#!/usr/sbin/dtrace -s
syscall:::entry   => probe description
/execname=="bash"/ => /predicat/
{
printf("%s called\\n", probefunc); => action statements
}

Nous venons d'écrire une commande truss capable de tracer TOUS les "bash" du système.

Predicat
Execute l'action seulement si la condition du predicat est vrai.
La condition est une expression en language D.

Action
Certaines actions peuvent changer l'état du système de manière bien définie (-w).

Exemple d'actions pour enregistrer les données :

  • trace()
  • printf() : la vérification de la cohérence sur le nombre et sur le type des paramètres est faite à la compilation du script : mieux qu'en C !
  • stack() enregistre la stack kernel
  • ustack() enregistre la stack userland du thread dont la stack est exécutée
  • printa() qui permet d'afficher une aggrégation
  • exit() pour sortir

Actions "destructive" : "-w"

  • stop() un process
  • raise() envoi un signal à un process
  • breakpoint() le kernel
  • panic() le système
  • chill() introduit une latence

Aggregation
Parfois ce n'est pas l'évènement mais la tendance qui nous intéresse : "combien de fois appelle-t-on cette fonction avec un argument entre 4k et 8k ?"
Ce type d'information va nous être fourni au travers des fonctions suivantes : sum(),count(), min(), max(), avg(), quantize() en puissance de 2 (exponentiel), lquantize() en mode linéaire

L'aggrégation peut être collecté dans un tableau de taille indéterminé.
L'aggrégation peut porter un nom : @name[keys] = aggfunc(args);

Par exemple, si vous souhaitez regarder la répartion des tailles de malloc() dans le process que l'on suit :

Script dtrace : aggr2.d
#!/usr/sbin/dtrace -s
pid$target:libc:malloc:entry
{
  @["Malloc Distribution"]=quantize(arg0);
}


$ aggr2.d -c who (le pid du process "who" qui va être lancé à ce moment là va remplacer pid$target dans le script dtrace aggr2.d)

trace: script './aggr2.d' matched 1 probe
...
dtrace: pid 6906 has exited
Malloc Distribution
        value ------------- Distribution ------------- -----------------count
           1  |                                                         0
           2  |@@@@@@@@@@@@@@@@@                                        3
           4  |                                                         0
           8  |@@@@@@                                                   1
           16 |@@@@@@                                                   1
           32 |                                `                        0
           64 |                                                         0
          128 |                                                         0
          256 |                                                         0
          512 |                                                         0
         1024 |                                                         0
         2048 |                                                         0
         4096 |                                                         0
         8192 |@@@@@@@@@@@                                              2
        16384 |                                                         0



Calculer le temps passé dans une fonction
Là, nous avons besoin de variables spécifiques au thread d'exécution : variables pré-fixées par "self->" qui éliminent les cas de "race condition" sur une même variable. Quand vous remettez à zéro la variable, dtrace la dés-alloue (c'est son "garbage collector").

#!/usr/sbin/dtrace -s
syscall::open\*:entry,
syscall::close\*:entry
{
self->ts=timestamp;
}
syscall::open\*:return,
syscall::close\*:return
{
     printf("ThreadID %d spent %d nsecs in %s", tid, timestamp - self->ts, probefunc);
self->ts=0; /\*allow DTrace to reclaim the storage \*/
}



DTrace fournit également l'accès aux variables kernel et externes.
Pour accèder aux variables externes, il suffit de les préfixer par ` (anti-quote)

#!/usr/sbin/dtrace -qs
dtrace:::BEGIN
{
printf("physmem is %d\\n", `physmem);
printf("maxusers is %d\\n", `maxusers);
printf("ufs:freebehind is %d\\n", ufs`freebehind);
exit(0);
}


Speculative tracing
Il est important de trier les informations collectées car les buffers en mémoire de Dtrace sont limités (pour de bonnes raisons : impact des performances, utilisable en production...).
On crée dans ce cas "une spéculation". Vous allez allouer un buffer mémoire qui collecte vos traces, et si le thread sort en erreur, nous gardons l'information (pour analyse), sinon nous libérons le contenu du buffer.

C'est très intéressant dans le cas où vous recherchez un problème aléatoire qui sort de temps en temps en erreur.

self->spec = speculation () : mise en place d'un buffer speculatif par thread

Un exemple : si l'on recherche les cas de mount() qui sortent en erreur.

#!/usr/sbin/dtrace
syscall::mount:entry
{
   self->spec = speculation();
}
fbt:::return
/self->spec/
{
   speculate(self->spec);
   printf(“returning %d\\n”, arg1);
}
syscall::mount:return
/self->spec && errno != 0/
{
   commit(self->spec);
}
syscall::mount:return
/self->spec && errno == 0/
{
   discard(self->spec);
}
syscall::mount:return
/self->spec/
{ self->spec = 0; }



copyin & copyinstr

Ce sont des fonctions qui servent à récupérer des informations de processus userland, pour voir ces informations dans le noyau, car DTrace tourne dans le kernel :

  • copyin(addr,len)
  • copinstr(addr) - chaîne de caractère

Anonymous tracing
Imaginons que le système crash de temps en temps au boot, ou en panic.
Mais pour étudier cela avec un script, quand il y a un crash, le système disparait.
Pour y répondre, dtrace dispose d'une solution non rattachée à un consommateur donné et qui doit être enregistré dans le noyau. Le script dtrace est dans ce cas mis dans un fichier de configuration qui sera démarré au boot. Les buffers de trace associés à ce script sont dans le kernel et donc récupérables et analysables sur crash.

Pour créer ce script : # dtrace -A
Pour collecter les informations : # dtrace -a

Dtrace : une technologie à la porté des développeurs 

Au delà de la disponibilité de dtrace sur un système en production, vous pouvez également en bénéficier dès les phases de développement !

D-Light plugin dans SunStudio 12.1
Dans Sun Studio, au travers de D-Light, vous disposez de tout un ensemble de scripts dtrace qui permettent de récupérer des informations en temps réel sur le process que l'on exécute au sein de SunStudio. Cette collecte se fait de façon graphique avec une capacité de "drill-down" fine. Vous pouvez suivre un processus conçu dans l'IDE, mais également un processus s'exécutant sur un système.

Le point crucial : la documentation !

Vous disposez d'un grand nombre d'informations (liste des providers, etc...) indispensables à l'analyse sur le site wiki de DTrace : http://wikis.sun.com/display/DTrace/Documentation

Il existe également un kit avec un ensemble de scripts déjà prêts : le Dtrace Toolkit.
C'est un ensemble de scripts qui mélangent du Dtrace et du perl (pour la présentation) qui permettent de répondre à un grand nombre de questions sur les différents paramètres d'utilisation de vos applications et du système :

Vous pouvez même utiliser DTrace à l'intérieur d'Oracle Solaris Studio (ex- Sun Studio Tools) - voir plus haut.

Et en standard sur toutes vos machines Solaris : /usr/demo/dtrace

"let's do it" !

Pour aller plus loin :

  1. DTrace party ce soir à Supinfo !
  2. La formation :
    • EXL-2210 Developing and Optimizing Applications with Dtrace
        > 4 days - Experienced Java and C/C++ Developers
    • EXL-2211 Optimizing Solaris Administration with Dtrace
        > 4 days - Experienced System Administrators
  3. Bryan Cantrill en live :

    http://www.youtube.com/watch?v=6chLw2aodYQ
Translate in English

mercredi déc. 16, 2009

La virtualisation Solaris pour quels gains ?

Translate in English

Hier soir, nous nous sommes retrouvés avec une vingtaine d'utilisateurs Solaris pour la soirée du GUSES dont je vous avais parlé la semaine dernière. Bruno Philippe, expert Solaris d'une grande banque française, nous a brillamment exposé son retour d'expérience sur l'adoption de la technologie de virtualisation incluse dans Solaris, et les bénéfices associés. Des bénéfices qui font que le projet a largement débordé du cadre initial de rafraichissement d'un parc vieillissant et s'applique maintenant aux nouveaux projets, non seulement SPARC, mais également x64. La méthode une fois mise en oeuvre étant applicable dans les 2 environnements, car Solaris est le seul UNIX d'entreprise multi plate-formes.

La maturité !

Comme Bruno le rappelait en introduction, la virtualisation incluse dans Solaris (à coût 0€) est très mature car présente dès l'origine de Solaris 10 (janvier 2005) et déployée dans des environnements très variés comme  oracle, sybase, sap, avec les outils d'administration associés : $u, cft, mqm, netbackup.... pour n'en citer que quelques uns. En outre, c'est une solution qui s'enrichit tous les jours pour pouvoir offrir une virtualisation sans limites (ou presque) et des gains substantiels !

La virtualisation Solaris pour quels gains ?

Avec une économie de plus de 100K€/an, l'intérêt du projet était évident (!) pour cette grande institution financière et ne s'arrête pas là ! A cela s'ajoute une optimisation des opérations avec un ratio de 30j/h vs. 125 h/j précédemment, ainsi qu'un niveau de service amélioré : pas au niveau d'un cluster, mais très correcte du fait de l'architecture permettant de déplacer les containers Solaris très rapidement d'un serveur à un autre. D'ailleurs, pour les environnements plus exigeants, cette grande banque a déployé 2x Solaris Cluster 3.2 gérant la bascule automatique des containers Solaris en cas d'incident : l'un en SPARC et l'autre en x86/x64.

Les détails du projet

Pour ceux qui souhaitent se lancer dans l'aventure, voici les détails du projet tels que je les ai retenu hier. Je compte sur Bruno pour apporter les corrections nécessaires le cas échéant.

Les objectifs recherchés étaient les suivants :

  1. Réduction des coûts.
    Plus il y a de machines, plus il y a de jours/hommes d'administration : patches, etc...
  2. Flexibilité.
    Cibler des serveurs plus capacitifs (notamment en mémoire) et partager les ressources de façon plus efficace au travers de la virtualisation
  3. Optimisation des coûts opérationnels de déploiement et mise à jour.
    Installation d'une seule version qui est déployée ensuite dans plusieurs containers, donc une seule mise à jour pour les DBA.
D'autres besoins importants des administrateurs UNIX et des DBA ont également été adressés au travers de ce projet. J'en ai retenu 2 principaux : la reprise d'activité simplifiée dans le cadre d'un DRP et la capacité de rafraîchir les données facilement (envisagé via snapshot/clone ZFS).

Un vrai ROI

Une étude préalable a été menée afin de définir la bonne architecture cible et d'obtenir le ROI du projet, démontrant sa viabilité.

Le périmètre de l'étude portait sur 30 serveurs physiques (SPARC), 70 instances Oracle, 30 instances Sybase. Elle passait par un monitoring du parc existant pour calibrer les serveurs, définir le type de serveur cible pour la consolidation, et valoriser le ROI pour les achats.

Les valeurs prises en compte pour le ROI ont été les suivantes :
  • la consommation éléctrique (théorique)
  • le nombre total de racks utilisés (surface)
  • le nombre de connexions SAN et réseau (une connexion coûte 1k€/an - selon une étude constructeur)
  • le coût en h/j pour différentes opérations système uniquement... avec 1 h/j système correspondant à environ 500€ (pour une entreprise, charges comprises)

Sur la base de ces mesures, le ROI a été démontré en 2 ans (y compris la mise en oeuvre). Or, les DBA se sont aperçus après coup des gains et économies supplémentaires apportés, soit au final un ROI encore plus rapide.

En complément de ces valeurs, la partie gain en maintenance a été également prise en compte (ancien vs. nouveau) directement au niveau des achats.

L'architecture cible du refresh technologique

Suite au calibrage des serveurs existants (sur une base spec.org avec requêtes OLTP type Oracle), la cible de la consolidation a été orientée sur des serveurs Sun M5000, 8 processeurs, 4 coeurs chacun, 2 threads par coeur, soit 64 threads d'exécution physique (ou processeurs virtuels vues de l'instance Solaris) avec 128 Go de RAM (pour commencer) et le doublement de l'ensemble des interfaces réseaux (IPMP) et SAN (MPXIO) offrant ainsi la capacité et la sécurité.

Une bonne base de travail en terme de ressources pour virtualiser, sachant que la technique de virtualisation Solaris ne nécessite l'administration que d'une seule instance d'OS, quelque soit le nombre de machines virtuelles (containers) créées à partir de celle-ci. En outre, contrairement à d'autres solutions de virtualisation, la taille des containers n'est pas limitée et peut prendre toute la machine (dans ce cas, 64 CPUs virtuelles) si besoin. Pour plus d'information sur la technologie proprement dite, je vous engage à consulter ce petit guide : "How to Consolidate Servers and Applications using Solaris Containers".

2x M5000 ainsi configurés servent de socle pour la consolidation des bases Oracle.
Pour la partie Sybase, qui nécessite moins de puissance unitaire en processeur, mais par contre beaucoup de mémoire (notamment pour monter le tempdb sous tmpfs), 2x serveurs T5240 avec 256 Go de RAM ont été acquis.

Au final, comme les containers peuvent indifféremment être démarrés ou déplacés sur une machine M5000 ou T5240, la répartition est gérée de façon transparente en fonction des besoins réellement constatés. Le périmètre initial de refresh du parc de développement et pré-production a conduit à la mise en oeuvre de 90 containers regroupant 110 bases Oracle et environ 30 bases Sybase.
En outre, du fait du succès de l'opération, le parc de serveurs virtualisés de cette façon s'est étendu, et un socle sur architecture x86/x64 constitué de plusieurs serveurs Sun X4600 (8 processeurs de 6 coeurs chacun, soit 48 coeurs au total par serveur) est en cours de déploiement.

Pour un projet initié en mars 2009, plus de 250 containers sont déployés à ce jour sur une quinzaine de M5000. Avec en moyenne 20 containers par instance Solaris sur le développement et la pré-production et 10 containers sur la production (car le besoin mémoire est le facteur limitant du nombre de containers possible, bien avant le besoin en processeurs).

Je ne rentrerai pas plus loin dans les détails d'implémentations technique tels que :

  • le choix de normalisation du nommage des zones globales, des containers, des pool ZFS
  • le choix d'un container de type sparse (vs. full) avec le zonepath sur le SAN (non monté à partir de la racine, mais d'un sous répertoire pour que le Liveupgrade fonctionne)
  • le choix d'un pool ZFS par containers
  • les options de mise en oeuvre de ZFS (vous pouvez déjà avoir une petite idée ici)
  • le choix d'un pool et d'un seul système de fichier ZFS par instance de base de données
  • le choix d'un seul VDEV par pool (la sécurité étant assurée par la baie disque).
    Des combinaisons qui ont surement eu un impact sur les performances des zfs send | zfs receive via le réseau... D'où le passage par RMAN pour certains besoins de refresh des données (oops, je rentre dans le détail là, on dirait...)

En tout cas (au moins pour les membres du GUSES) la présentation de Bruno devrait être en ligne prochainement et couvre l'ensemble des choix d'implémentation ainsi que les diverses options, y compris pour Oracle et Sybase, qui ont été développées en détail pendant cette soirée. Je vous invite donc à ne pas manquer les prochaines soirées GUSES pour bénéficier en direct de ces échanges.

Une petite note en guise de conclusion. Comme nous l'avons vu au travers du témoignage très riche de Bruno, si la virtualisation apporte de nombreux gains, la séparation entre le physique et le virtuel complexifie d'autant en revanche les problématiques de localisation. C'est pourquoi, à la suite de ce projet, cet établissement financier est en train de regarder de très très près la dernière version de notre outil de management : Ops Center 2.5. Et il ne sont pas les seuls à la vue du succès du dernier évènement organisé sur ce thème dans notre centre de Paris, et pour lequel une session de rattrapage est planifiée le 7 janvier 2010. N'hésitez pas à vous y inscrire !

Comme j'espère vous l'avoir retransmis par ce billet, pour les personnes qui n'ont pas pu assister à cette soirée, un témoignage passionnant qui a donné lieu à un échange très riche et qui a joué les prolongations avec les participants... A ce titre, suite à de nombreuses demandes, voici le lien pour vous inscrire au GUSES : http://guses.org/home/divers/inscription.

Encore merci à Bruno Philippe, au GUSES et bien sûr à SUPINFO qui nous a accueilli pour cette soirée.

Translate in English

mercredi déc. 09, 2009

Etat des lieux du Cloud en France

Translate in English

Mardi dernier a eu lieu à Paris la 3ième édition du CloudStorm (après Bruxelles et Londres). Evénement destiné à présenter les solutions existantes aujourd'hui dans le Cloud Computing. Une occasion à ne pas manquer pour faire un état des lieux, 6 mois après le Cloud Camp de Paris.

Dans ce mouvement de remise en cause des modèles informatiques, il est clair que les solutions SaaS sont  maintenant bien présentes et matures, notamment pour ce qui est des offres d'outils de collaboration en ligne.

La problématique d'intégration reste toutefois une question fondamentale entre les applications SaaS (Software as a Service) et les applications internes de l'Entreprise, et a fortiori sur l'infrastructure supportant les services SaaS. Les critères de scalabilité qui s'appliquent aux SaaS, doivent s'appliquer à l'infrastructure qui les supporte.

De fait, des offres d'IaaS (Infrastructure as a Service) arrivent sur le marché. Elles permettent de résoudre entre autres la problématique d'intégration évoquée précédemment, en fournissant de blocs de construction incluant serveurs, stockages et réseaux, et l'outillage de management du Cloud. Une solution intégrée et intégrable dans un Datacenter existant.
C'est ce qu'a exposé la société Cloudsphere, en présentant la refonte de leur business de hosting vers une infrastructure hybride co-localisée.

Clouds public, privés, globaux, locaux ?

Même si les acteurs du Cloud Computing tels que Amazon et Google présentent un service globalisé, nous voyons également chez Sun une tendance vers une localisation des Clouds publics et privés. Et cela pour des raisons très pragmatiques et même légales.

Comme l'évoquait Patrick Crasson, Strategic Business Developer pour Sun et Business Angel, lors de son intervention: bien que "dans les nuages", les données sont malgré tout localisées dans un pays qui a sa législation propre et pas toujours en adéquation avec la vôtre. Cela peut vite devenir contraignant, voire rédhibitoire si vous êtes une administration et que le service soit destiné à stocker des données des citoyens.
C'est pour les mêmes raisons que les institutions financières étudient la faisabilité de mise en oeuvre de clouds privés, afin de garder un contrôle total sur leurs données.

La proposition de Cloudsphere permet à la fois de bénéficier des intérêts du Cloud Computing, en valorisant une architecture partagée pour soutenir des pics de charge,  tout en permettant de garder une connexion vers un système privé, dédié et co-localisé (un modèle hybride co-localisé). C'est une réponse intéressante face aux problèmes de sécurité, hébergement des données, bande passante et points d'accès réseau.
Le modèle hybride co-localisé répond donc aux 2 champs de contraintes évoqués:

  1. simplifier l'intégration,
  2. permettre aux entreprises de bénéficier des avantages du Cloud Computing sans avoir à subir ses inconvénients.

Et vous vous en doutez surement, tout cela étant basé sur de la technologie Sun, de l'infrastructure jusqu'à la brique de virtualization: VirtualBox.

Ce modèle est évidement applicable directement au sein de votre entreprise pour créer un Cloud Privé d'Infrastructure as a Service fournissant une solution "élastique" et permettant à l'informatique d'offrir de la flexibilité et de la réactivité accrue, en complément de votre existant.

Par ailleurs, il ne faut pas penser qu'ajouter une couche de virtualisation à votre infrastructure suffira à la transformer en Cloud
et la rendre "élastique". Il suffit pour cela de regarder les grands acteurs du Cloud comme Google, et vous constaterez que tout a été conçu de bout en bout en mode intégré et spécifique (voir GoogleFS, jusqu'à l'optimisation des couches d'inter-connexion réseaux [3.2 Data Flow]).

L'apport de Sun provient à la fois des technologies et de l'expérience acquises dans la fourniture de puissance informatique à la demande. Nous en sommes à la 5ième génération des blocs d'infrastructures extensibles ou "POD" (Point of Delivery). Et nous avons donc appris à les optimiser dans un modèle industriel, répétable et intégré (y compris avec les solutions logicielles, comme VirtualBox, OpenStorage ou VDI).

Si je peux me permettre une analogie, le POD est au Cloud ce qu'Exadata est à la base de données.

C'est pourquoi de grands acteurs comme AT&T nous ont fait confiance pour construire leur propre service de Cloud Public ou pour mettre en place des solutions de Desktop as a Service.

Translate in English

jeudi déc. 03, 2009

Run Best on Sun

Translate in English

Voici en quelques mots la synthèse des annonces faites pendant l'Oracle Open World qui s'est déroulé au mois d'octobre à San Fransisco.

Le lancement début septembre de la solution Sun/Oracle, Exadata V2, n'était qu'un avant-goût des premiers résultats d'une collaboration renforcée entre Sun et Oracle, nos équipes ayant en effet travaillé en  partenariat pour tirer le meilleur des produits Oracle sur plate-formes Sun. Il suffit pour cela de se référer à quelques benchmarks de référence, couvrant du transactionnel à la paie, en passant par l'ERP avec SAP (sur base Oracle). Je vous laisse consulter les résultats détaillés dans les pointeurs ci-joints, surtout si vous avez déjà une de ces applications déployées chez vous ou si vous l'envisagez :

J'ai attendu un peu avant de publier ce billet, car un bon nombre de ces benchmarks reposent sur la version Oracle 11gR2... Et cette version est disponible sur Solaris depuis la semaine dernière, vous pouvez d'ailleurs la télécharger ici. Ceci est vrai pour l'ensemble des plate-formes Solaris : SPARC et x86/x64 !

Au delà de ces benchmarks, l'intérêt est de voir ce qui peut être directement applicable pour vous. Au travers notamment des technologies matérielles et logicielles employées et intégrées pour mieux tirer partie de l'ensemble. J'attire particulièrement votre attention sur une nouvelle option d'Oracle 11gR2 qui permet d'utiliser les disques SSD "à la" mode ZFS : DB Flash Cache, et d'obtenir des gains de performances déjà démontrés jusqu'à x4.

Vous pouvez dès à présent en bénéficier, grâce aux différentes technologies Flash que nous offrons, dont le Sun Storage F5100 qui fournit 1,9To sur 1U, consomme 300 watts et délivre plus de 1 Millions d'IOPS. Essayez d'y mettre vos indexes de bases de données et tenez moi au courant...

Vous pouvez également intégrer des disques SSD dans nos serveurs et du cache Flash sur le bus PCIe avec la carte F20 (qui équipe les éléments de stockage de la solution Exadata v2).

Translate in English

mardi déc. 01, 2009

Un centre de calcul plus "vert" : Green Grid HPC

Translate in English

A une semaine  de la conférence sur le climat de Copenhague, voici une petite note sur l'impacte de l'informatique, et quelques éléments sur ce que nous faisons pour contrôler la consommation d'énergie dans ce secteur.

L'informatique et la consommation d'énergie

Comme vous le savez surement déjà, l'informatique est un consommateur important d'énergie, au même niveau que l'industrie aéronautique. Sun s'est engagé depuis de nombreuses années déjà vers une informatique plus verte, que nous déclinons dans nos technologies (processeurs CMT, disques Flash,...) et notre savoir faire (Sun Modular Datacenter 20, par exemple). Et que nous appliquons à nous même : nous avons atteint cette année l'objectif de réduction de plus de 20% de gaz carbonique de nos propres centres informatique, objectif que nous nous étions fixé pour 2012 ! Bien entendu, nous avons relevé la barre avec une nouvelle cible de réduction de 20% à 2015 par rapport à notre taux d'émission de 2007.

L'enjeu des grilles de calcul Sun HPC Constellation system

Or, dans l'informatique, il y a un secteur qui consomme généralement plus que les autres : le calcul intensif ou scientifique. Même si c'est souvent pour le bien de la planète (calcul du climat, simulation numérique en lieu et place de tests grandeurs réels -encore plus consommateurs en énergie-), il est critique de pouvoir rendre ces centres de calculs plus économes, également pour des raisons très pragmatiques concernant les installations à mettre en oeuvre face aux besoins.

Les innovations de Sun pour y répondre 

Chez Sun nous avons non seulement optimisé la mise en oeuvre de grilles de calcul par un design intégré et innovant. Ce savoir faire technologique permet notamment de minimiser le besoin en équipements et câblage réseau d'un facteur 6 à 300 !, grâce à notre technologie infiniband couplée à nos serveurs (intégrée également dans l'offre annoncée récemment Sun Oracle Database Machine v2). Mais aussi sur le design du Datacenter proprement dit, comme le "Free Cooling"...

La preuve par l'exemple

La combinaison de ces innovations vient d'intégrer le Top 10 des centres de calcul mondiaux chez CLUMEQ, au Canada. Je vous laisse en découvrir les détails dans cette petite vidéo. Et si vous vous posez des questions sur la possibilité d'implémenter cette solution, le consortium Green Grid fournit une carte des possibilités de mise en oeuvre du "Free Cooling" en Europe. Nous pouvons vous accompagner comme nous l'avons fait pour le projet européen Juelich supercomputing center.

Translate in English

mardi sept. 15, 2009

Soirée GUSES - Groupe des Utilisateurs Solaris (et OpenSolaris)

Translate in English

Hier soir c'était la rentrée pour le GUSES, l'occasion de parler Solaris et OpenSolaris avec des cas d'usages métiers très concrets...
Une soirée où nos amis banquiers étaient assez bien représentés et nous ont fait part de quelques retour d'expériences intéressantes.


1) ZFS et performances

ZFS est très prisé pour sa simplicité et l'ensemble des fonctionnalités qu'il apporte : snapshot, checksum, ....
Reste le point important des performances. A ce titre, je tiens à rappeler l'existence du site ZFS Evil Tuning Guide et notamment quelques paramètres important à positionner :
  • Encadrer l'utilisation de la mémoire système entre ZFS et vos applications (comme iozone, pour les personnes cherchant à effectuer des comparaisons, par example). Dans le cas d'une évaluation récente face à Ext3, sur un système avec 16Go de RAM, le bon paramètrage a été un positionnement du ARC limité à 10 Go (laissant 6 Go pour l'application -IOzone- ).
    Pour limiter le taille mémoire utilisée par ZFS, positionner dans /etc/system : set zfs:zfs_arc_max = 0x280000000 (pour limiter à 10Go)
    En outre, il faut dimensionner la swap de façon adéquate également pour que la réclamation de pages mémoires entre ZFS et les applications se face de façon optimum.

  • Dévalider le flush des caches des disques dans le cas où le système de fichier ZFS se trouve sur une baie de disque avec un cache RAM sécurisé. Si ce paramètre n'est pas positionné, toutes les 5 secondes environs ZFS va forcer la baie à flusher l'ensemble de son cache sur les disques !! Pour plus d'explication et quelques résultats : http://milek.blogspot.com/2008/02/2530-array-and-zfs.html
    Pour dévalider le flush de façon permanente, ajouter dans /etc/system : set zfs:zfs_nocacheflush = 1

  • Utiliser le bon record size au niveau de chacun des systèmes de fichier ZFS
    # zfs set recordsize=8k mypool/myDatafs;zfs set recordsize=128k mypool/myRedologfs
    http://blogs.sun.com/roch/entry/tuning_zfs_recordsize

  • Attention au prefetch de ZFS qui peut avoir un effet de bord additionnel avec le prefetch des baies disques, et conduire à la "pollution" du cache (de la baie). Donc si les I/O ne sont pas séquentielles, il peut être pertinent de dévalider le prefetch de ZFS.
    Pour dévalider le prefetch de ZFS, ajouter dans /etc/system : set zfs:zfs_prefetch_disable = 1

    2) Solaris Temps réel vs. Linux Temps réel
    Un point important recherché avec un système temps réel est son aspect déterministe. C'est ce qu'ont pu observer des utilisateurs de Solaris face à Linux (avec un noyau temps réel) dans ce contexte. Linux a faible charge ayant un traitement plus rapide des requêtes que Solaris, mais étant fortement instable à forte charge (traitement plus long des requêtes que Solaris). Là où Solaris gardait un comportement constant, et donc déterministe...  Pour cela, l'utilisation des techniques de processeurs set (psrset(1M)) et de binding des interrupts (psrset(1M) options -f et -n)  sont des éléments de Solaris intéressant à utiliser.

    3) Les optimisations de Solaris avec Intel Nehalem (Xeon 5500 Series)
    J'ai déjà écrit sur ce sujet, mais depuis, un document assez fouillé sur ces optimisations est disponible à l'adresse suivante :The Solaris Operating System---Optimized for the Intel Xeon Processor 5500 Series

    Il comprend notamment un chapitre pour les développeurs autour des outils d'optimisation et des options de compilation permettant de tirer parti des avancées offertes par le Xeon 5500.

    4) Les fonctions avancées d'OpenSolaris et Solaris pour construire des architectures Cloud
    Mikael Lofstrand, Sun Chief Technologist-Networking vient de publier un document décrivant les architectures associées, étayé au travers de la mise en oeuvre d'une plate-forme Cloud s'appuyant sur ces principes, dont notamment la couche de virtualisation réseau Crossbow et les containers Solaris : The VeriScale Architecture: Towards a Scalable and Elastic Datacenter

    Pour conclure, sachez que les membres du GUSES nous préparent une conférence pour fin octobre, début novembre sur un retour d'expérience client avec la consolidation Solaris sur environnement Oracle utilisant les containers et ZFS.

    Translate in English

About

Eric Bezille

Search

Categories
Archives
« avril 2014
lun.mar.mer.jeu.ven.sam.dim.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today