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