Saturday, December 5, 2009

Aide mémoire sysbench

Afin d'avoir de la matière pour comparer des pommes et des oranges, il est bien pratique d'avoir un petit benchmark sous le coude. Je vous présente donc sysbench, présent dans l'archive Debian/Ubuntu et dans les ports/pkgsrc BSD. Sysbench permet des comparaisons rapides et de vérifier que les cores/cpus qu'on vous annonce avec fanfare servent à quelque chose. Nous mesurons ici le temps de calcul des 10 000 premiers nombres premiers.

Machine 1:
grep "model name" /proc/cpuinfo # deux cpu/cores
model name : AMD Athlon(tm) Dual Core Processor 5400B
model name : AMD Athlon(tm) Dual Core Processor 5400B

for THREADS in 1 2 3 4 ; do printf "threads: $THREADS" ; sysbench --test=cpu --cpu-max-prime=10000 --num-threads=$THREADS run | grep "total time:" ; done

threads: 1 total time: 36.2429s
threads: 2 total time: 18.1774s
threads: 3 total time: 18.5373s
threads: 4 total time: 18.1599s


Machine 2 :
grep "model name" /proc/cpuinfo
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220


for THREADS in 1 2 3 4 ; do printf "threads: $THREADS" ; sysbench --test=cpu --cpu-max-prime=10000 --num-threads=$THREADS run | grep "total time:" ; done

threads: 1 total time: 35.7832s
threads: 2 total time: 17.8263s
threads: 3 total time: 12.0110s
threads: 4 total time: 11.9021s

Conclusion:

Le passage de 1 à 4 cpus permet bien des gains de performance pour une application de calcul, mais ceci de manière non linéaire. Pourquoi ? De mémoire, le nombre de threads augmentent, plus le noyau doit passer de temps  à les synchroniser . J'aurais bien aimé trouver un lien pour confirmer, mais non, cette fois ci, STFW se tait (ou cherche dans le vide plus exactement)

Thursday, November 26, 2009

Ecran noir au démarrage de GDM suite à l'installation d'usplash

Le paquet usplash, permet sur Debian d'avoir une belle barre de progression qui s'affiche en lieu et place des messages de démarrage de la séquence d'init. Problème, sur un thinkpad x31, une fois le runlevel 2 atteint et gdm lancé c'est l'écran noir total. Pas de Ctrl-Alt_Backspace out Ctrl-Alt-F1, rien. Problème de framebuffer peut être ?
Après un tour sur Ubuntu, apparemment non, un problème de framebuffer aurait donné un écran noir à la place de usplash, et non pas après usplash.

Le coupable: le paquet console-setup, qui met l'affichage en vrac lorsqu'il est utilisés avec usplash.
Ce paquet sert à changer la police en mode texte, ainsi qu'a choisir le layout du clavier.
Après l'avoir supprimé, usplash fonctionne parfaitement, et le layout du clavier est de toutes façon activé par console-common.

Monday, September 14, 2009

Comment devenir un administrateur système unix confirmé en 5 lecons

Pour devenir un admin sys Debian en 5 leçons:
* installer Debian 4.0 ( l'avant dernière release )
* installer Drupal avec les packages debian apache, postgresql et php
* Configurer Apache avec plusieurs VirtualHost, et un accès distant où chaque utilisateur a accès à son compte web dans un ssh chroot'é
* installer un systeme de backup automatisé, qui vous envoie un mail à chaque backup terminé
* et on met tout à jour vers Debian 5.0
Le downtime de vos services est inférieur à deux heures ? Vous êtes un admin debian confirmé.

Pour devenir un admin sys FreeBSD en 5 leçons:
* installer FreeBSD 6.4 ( la dernière release de la branche Legacy )
* installer Drupal avec les ports apache, postgresql et php
* Configurer Apache avec plusieurs VirtualHost, et un accès distant où chaque utilisateur a accès à son compte web dans un sftp chroot'é
* installer un systeme de backup automatisé, qui vous envoie un mail à chaque backup terminé
* et on met tout à jour vers FreeBSD 7.0,7.2 ou 7.2
Le downtime de vos services est inférieur à deux heures ? Vous êtes un admin FreeBSD confirmé.

Pour devenir un admin sys Solaris en 5 leçons:
* Installer Solaris 9 (l'avant dernière release de Solaris)
* OK je crois que vous avez compris la suite, mais il faudra installer Oracle à la place de Postgresql.

Test Bonus:
Vous connaissez au moins une application tcp/ip pour lesquelles la latence est plus importante que la bande passante de votre réseau pour le confort d'utilisation. ( Réponse dans le prochain billet )

Monday, June 8, 2009

Yahoo renvoie de bien curieux résultats pour Debian et Ubuntu

Depuis quelque temps j'utilise Yahoo comme moteur de recherche en lien et place de Google et je dois dire qu'il s'en sort plutôt bien. En plus Yahoo est derrière Zimbra, la meilleure solution webmail/groupware opensource IMHO.

Maintenant si vous recherchez debian sur yahoo.com, vous obtenez évidemment en tête des résultats le site de Debian, avec comme texte:

Debian -- The Universal Operating System
High-quality noncommercial Linux distribution. Free Software Foundation's Linux distribution.

Désolé mais ceci est faux. Debian n'est pas "non-commercial" et n'est pas non plus la distribution de la Free Software Foundation. Debian a été aidé lors de son démarrage par la FSF il y 15 ans de cela, mais n'a jamais été la distribution officielle de la FSF.

De même une recherche sur Ubuntu renvoie:

Ubuntu Home Page | Ubuntu
Open source Linux-based operating system that starts with the breadth of Debian and adds regular releases.

Ce qui n'est en aucun cas le résumé officiel d'Ubuntu, qui ne mentionne Debian que plusieurs clicks après la page d'accueil.

D'où viennent donc ces informations ? Je pensais tout d'abord avoir affaire à des des versions périmées d'article de Wikipédia, mais je pense maintenant que ces erreurs viennent d'un employé qui a saisi ce texte lors de l'insertion des sites dans l'annuaire yahoo. Je me rappelle en effet que durant le moyen age du web ( 1999 ) il fallait contacter Yahoo pour faire inscrire son site dans leur base, Yahoo étant un annuaire et non un moteur de recherche. Alors si je leur écrit un email, vous pensez qu'ils vont corriger ?

Saturday, April 25, 2009

Afficher le contenu d'un repository debian / ubuntu

Depuis un certain temps je me demandais comment afficher la liste des paquets d'un repository debian / ubuntu sans l'ajouter dans mon sources.list
Le code shell que voici affiche la liste des paquets d'un repository à partir du fichier Packages.gz de celui ci.

#!/bin/sh
read protocol url dist section1 section2 section3 section4 << EOF
$(echo $1)
EOF

for sec in $section1 $section2 $section3 $section4; do
printf "Packages in section $sec: \n"
wget -q -O - $url/dists/$dist/$sec/binary-i386/Packages.gz \
|zgrep -E "^Package|^Version|^Description|^$"
printf "\n"
done


Rappel: il est dangeureux d'installer un repository trouvé au hasard sur le web !
backports.org et debian-multimedia.org sont sûrs car bien que non officiels, ils sont maintenus par des développeurs debian.

Exemple d'utilisation:

show_repo.sh "deb http://www.backports.org/debian lenny-backports main contrib non-free"
Packages in section main:
Package: apt-dater
Version: 0.7.0-1~bpo50+1
Description: terminal-based remote package update manager

Package: apt-dater-dbg
Version: 0.7.0-1~bpo50+1
Description: terminal-based remote package update manager (dbg symbols)

Package: apt-dater-host
...

Sunday, March 8, 2009

Logiciel Libre versus Open Source: le sens d'une différence

Quelles sont les différences entre le Logiciel Libre et l'Open Source ?
Pour l'utilisateur du logiciel qui démarre un éditeur de texte sur Debian, que l'auteur de ce programme se réclame du logiciel libre ou de l'open source, cette différence est nulle.
La différence entre ces deux catégories ne repose par sur le produit fini lui même ( par exemple la différence entre bash et ksh93 ) mais sur le contexte de production.

L'Open Source Initiative (OSI) ne donne pas de version officielle de la différence entre les deux termes, mais dans l'essai d'Eric Raymond " Revenge of the Hackers" on trouve cet apercu historique:
Le terme logiciel libre était alors associé à l'hostilité à la protection intellectuelle, au communisme, et à d'autres concepts difficiles à faire passer à un DSI.
[...]
En terme de marketing, notre tâche consistait alors à faire un re-branding du produit, et lui faire une réputation telle que le monde de l'entreprise l'adopterait avec empressement.

La Free Software Foundation donne sa propre explication de la différence entre les deux termes, en insistant sur les différences de valeurs entre les deux termes, et aussi sur le fait que ces différences de valeur ne gênent en aucun cas le travail au quotidien sur des projets communs.

La principale raison pour laquelle le terme "open source" est employé, est que la dimension éthique du logiciel libre met certaines personnes mal à l'aise.
[..]
Les leaders du mouvement Open Source ont estimé qu'en faisant passer au second plan les notions d'éthique et de liberté, et en parlant uniquement des bénéfices pratiques du logiciel libre, ils pourraient "vendre" le concept de logiciel libre plus facilement, particulièrement dans le monde de l'entreprise.
(traduction personnelle )

Regardons maintenant l'autonymie des logiciels eux même ( c'est à dire comment les projets se catégorisent eux mêmes quand ils se présentent )
  • Le terme opensource domine dans les produits ayant potentiellement une finalité dans le monde de l'entreprise ( Apache, PostgreSQL, MySQL, (note for self :ils sont relous à taper sans erreur de casse ces deux-là), Python, Xen, OpenOffice.org, les frameworks Java ... )
  • Par contre free software reviendra beaucoup plus dans des projets moins liés à l'environnement serveur (KDE, Gnome, MPlayer ) ou de taille plus réduite ( Dillo, Notepad ++, Scite Text Editor ) Parfois c'est une question d'image, ainsi NetBSD se veut plus "corpo friendly" qu'OpenBSD et met en avant le terme opensource dès la page d'accueuil.
  • Enfin un certains nombres de logiciels libres, notamment les plus anciens, ne cherchent pas à se définir comme un projet opensource versus un projet free software sur leur page de présentation ( tcsh, zsh, FreeBSD, Linux ) ou mentionnent explictement les deux, évitant la distinction ( VLC, Debian )
Par ailleurs le terme de logiciel libre bénéficie dans les pays francophones d'une popularité plus grande que dans les pays anglophones, ne souffrant pas de l'ambiguité libre versus gratuit que comporte le terme free en anglais.

S'il fallait résumer ceci en deux phrases brutales, ce serait de dire que si vous écrivez un codec multimedia en faisant reverse-engeenering vous faites probablement du logiciel libre, et peer to peer exepté, si vous écrivez une application client serveur en java, vous faites certainement de l'opensource.

Friday, March 6, 2009

Installeur debian officiel sur clé USB

En téléchargant la dernière Debian 5.0 aka "Lenny" je me suis rendu compte que seul Debian-Live ( un live CD debian officiel sans installer ) disposait d'images USB prêtres à être gravées sur une clé USB.

Le guide d'installation officiel mentionne cependant la procédure, mais comme ce guide ci est particulièrement touffu, et ne donne pas les liens directement pour les composants nécessaires je me suis dit que ca valait la peine de documenter ca sur le wiki de gcu-squad. ( ou je poste mes tips techniques ) Et c'est parti pour créer sa clé USB bootable en 5 commandes (NB: une clé USB de 256 Mo est suffisante, mais celle ci sera complètement effacée )

Saturday, February 28, 2009

Gestion des fichiers de configuration lors d'un upgrade serveur

Environ 20% des packages de Debian / Ubuntu livrent un fichier de configuration par défaut lors de leur installation. Lors d'un upgrade , les fichiers de configuration évoluent aussi, et les modifications personnelles apportées à la configuration du système peuvent parfois entrer en conflit avec dpkg. On se retrouve donc avec la question suivante:

This package has a new configuration file. Would you like to keep your locally modified version or install the package maintainer's version ?

Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : background this process to examine the situation


Ma politique standard est toujours de garder mon fichier de configuration dans un premier temps, et de continuer la mise à jour, en vérifiant que le package, en général un daemon Unix, comme Samba ou sshd redémarre bien avec l'ancienne version du fichier de configuration.
( ceci afin de minimiser le downtime des services et préserver mes précieuses optimisations/customisations )
Le fichier de configuration proposé par le maintainer du paquet sera mis de côté avec l'extension dpkg-dist

Une fois l'upgrade terminée, j'examine le nouveau fichier de configuration , et je copie mes modifications personnelles à l'intérieur de celui ci, histoire de repartir de la configuration standard proposée par Debian.
En terme de ligne de commande cela donne ceci:

find /etc -name "*dpkg-dist"
diff -u /etc/mon_package.conf /etc/mon_package.conf.dpkg-dist

nano /etc/mon_package.conf.dpkg.dist
mv /etc/mon_package.conf.dpkg-dist /etc/mon_package.conf

Dans certains cas cependant j'utilise directement le fichier de configuration proposé par le mainteneur du package, sans chercher plus loin, car même si debian m'affirme que le paquet en question a été modifié localement, je sais très bien que je n'y ai pas touché ( exemple : Pam, login.defs )

Tuesday, January 6, 2009

Barrières de langue

J'utilise depuis maintenant longtemps Linux et BSD, et une différence notable des deux systèmes m'est apparu récemment de façon nette en lisant Les Cahiers de l'Admin BSD:
" Si lire l'anglais technique représente un obstacle insurmontable, les BSD ne sont probablement pas faits pour vous."
De même sur sur la FAQ BSD du wiki gcu commence ainsi:
"Primo : apprendre l'anglais."

Pour FreeBSD et OpenBSD le manuel et la plupart des pages du site web sont traduits en français. Sur NetBSD, l'installateur est disponible en français. Mais les pages de man, qui restent la documentation de référence ne sont disponibles qu'en anglais sur les trois systèmes.
Ainsi donc si vous voulez utiliser un BSD n'oubliez pas ce pré requis: compréhension de l'anglais technique requise ! Si vous écorchez trop l'anglais, on créera peut être un jour un live cd BSD en votre hommage.

Une autre barrière, cette fois celle de la langue informatique, est celle du shell, de la console, bref de l'interface texte pour saisir des commandes. Chaque fois que j'ouvre une console que ce soit sous Windows, OS X ou Linux, mon entourage non informaticien ouvre des yeux ébahis, en évoquant WarGames ou encore la lecture en direct de la matrice.
Si vous faites du prosélytisme pour le libre à des non informaticiens, effectuez donc chaque action possible avec l'interface graphique et éditez les fichiers de configuration avec gedit pas avec vi ( Note: Alt-F2 puis 'gksu gedit' peut se révéler très pratique sous Debian, et 'gksudo gedit' sous Ubuntu)

Un des buts sociaux du logiciel libre est l'empowerment de l'utilisateur, qu'on peut traduire par l'augmentation de son autonomie. Ainsi le logiciel libre permet de choisir son système d'exploitation, son navigateur web, son éditeur de texte, le format d'encodage de sa musique, et de modifier chacun de ces composants si l'on en a l'envie et la compétence.
Mais malheureusement la difficulté technique du passage à Unix entraîne souvent une dépendance de fait envers le prosélyte qui vous l'a installé. Si vous préférez lire Platon en grec ancien pour la richesse de la langue, la meilleure de façon de faire découvrir la philosophie grecque est sans doute d'offrir une traduction en français.
Similairement, même si la ligne de commande vous permet de faire dans une boucle shell les choses dix fois rapidement qu'avec synaptic ou les paquets PBI, ce n'est pas la meilleure façon
de présenter les Unix libres aux non informaticiens.