Desulfatation de batteries plomb-acide

 Trucs et astuces techniques  Commentaires fermés sur Desulfatation de batteries plomb-acide
Sep 232009
 

Remarque préliminaire : Les renseignement présents ici sont une compilation de différents sites web.
tels que le site de Ernest Matagne et ce Document de Alastair Cooper. Merci de vous y rapporter.

Caractéristiques électriques

Cellule unique Batterie « 12V » à 6 cellules
Tension nominale 2 V 12 V
Tension de gazéification 2.3-2.5 V 14.0-15.0 V
Tension d’attente 2.2-2.3 V 13.0-14.0 V
Tension limite de décharge 1.8-1.9 V 10.8-11.4 V
Coefficient de température de la tension – 5 mV/°C – 33 mV/°C

Caractéristiques de tension d’une batterie au plomb à 20°C

Principe de fonctionnement

Voici un bref aperçu du principe de fonctionnement des batteries au plomb :
Le tableau ci-dessous indique quels sont les matériaux qui interviennent dans le processus électrochimique d’une cellule au plomb.

Emplacement Matériaux actifs
Chargés Déchargés
Électrode positive PbO2 PbSO4
Électrode négative Pb PbSO4
Électrolyte H2SO4 H2SO4
concentration plus faible

Un phénomène important est l’apparition de sulfate de plomb dans les électrodes lors de la décharge. A l’électrode positive, ce sulfate de plomb occupe un volume 1.5 fois plus grand que l’oxyde PbO qu’il remplace, tandis qu’à l’électrode négative, il occupe un volume 3 fois plus grand que le plomb métallique qu’il remplace. Ce gonflement tend à boucher les pores des électrodes, et donc à ralentir la vitesse des réactions au fur et à mesure que la décharge progresse, puisque l’électrolyte trouve de moins en moins de place entre les grains pour atteindre la partie du matériau actif en cours de transformation chimique. En outre, le sulfate de plomb est un mauvais conducteur électrique, de sorte qu’il diminue le contact entre les électrodes et l’électrolyte. Cela se produit surtout lors des décharges rapides et profondes et a pour effet de réduire la capacité de la batterie et d’augmenter sa résistance interne.

Il est toutefois possible de redissoudre électriquement le sulfate de plomb en envoyant des impulsions électriques à la fréquence de résonance de la batterie (typiquement entre 2 et 6 MHz).

desulfator

Remarque importante : sur le curcuit precedent, certaines valeurs sont difficilement lisibles

ref Description
R1 470kOhm (1/4W)
R2 22kOhm (1/4W)
R3,R4 330 Ohm (1/4W)
C1 30µF à 2200 µF
C2 22nF
C3 47nF
C4 100µF (impédence basse / haute intensité)
D1 Diode de redressement rapide telle que GI826CT (6A 100V)
C3 47nF

A suivre…

Management, ressources humaines, et autres paradoxes.

 Reflexion de geek  Commentaires fermés sur Management, ressources humaines, et autres paradoxes.
Sep 192009
 

Voici quelques lois fondamentales du management et des ressources humaines :

  • Le Mythe du mois-homme : fait référence à une unité de coût de développement : c’est-à-dire le travail d’un homme pendant un mois. Le mythe, c’est l’équivalence suggérée par l’usage de cette unité entre un travail de 1 personne pendant n mois et un travail de n personnes pendant 1 mois. Selon cette idée, on pourrait diviser les temps de développement par deux en mettant deux fois plus de personnel. Or, expérimentalement, cela est faux. Le proverbe cité par Brooks pour exprimer cette idée est : « Neuf femmes ne font pas un enfant en un mois »
  • La loi de Parkinson affirme que « le travail s’étale de façon à occuper le temps disponible pour son achèvement ». : Les employés se créent mutuellement du travail. Plus ils sont nombreux, plus les demandes d’approbation qu’ils se communiquent mutuellement, ou tâches comparables, les occupent, de sorte que le travail accompli d’un point de vue extérieur par l’ensemble n’augmente pas.
  • On peut étendre la La loi de Parkinson aux ordinateurs : « Les données s’étendent jusqu’à remplir l’espace disponible pour leur stockage » ; acquérir davantage de mémoire encourage l’utilisation de techniques gourmandes en mémoire. Il a été observé qu’entre 1996 et 2006 l’utilisation de mémoire sur des systèmes évolutifs a tendance à doubler à peu près tous les 18 mois. La quantité de mémoire disponible pour une somme donnée a également tendance à doubler tous les 18 mois (voir Loi de Moore) ; la loi de Parkinson affirme donc que l’on augmente les besoins jusqu’à ressentir toujours la même étroitesse des supports de stockage, malgré cette augmentation. Cela peut être généralisé en « La demande pour une ressource s’accroît toujours pour correspondre à l’approvisionnement de la ressource »
  • Le Principe de Peter : « tout employé tend à s’élever à son niveau d’incompétence. » En effet, les employés compétents sont promus et les incompétents restent à leur place. Donc un employé compétent grimpe dans la hiérarchie jusqu’à atteindre un poste pour lequel il n’est pas compétent. À ce stade, il devient donc un incompétent qui va occuper son poste indéfiniment.
  • Corollaire de Peter : « Avec le temps, tout poste sera occupé par un incompétent incapable d’en assumer la responsabilité. »
  • Le principe de Dilbert est une version aggravée du principe de Peter : « Les gens les moins compétents sont systématiquement affectés aux postes où ils risquent de causer le moins de dégâts : l’encadrement. » Les dirigeants sont donc ceux qui étaient les plus nuls aux postes subordonnés. En particulier, ils ne comprennent rien à la technologie et manquent de bon sens dans les cas les plus graves. Réciproquement, les employés les plus compétents ne sont en aucun cas promus, car irremplaçables à leurs postes actuels.
  • La loi de Brooks : Ajouter des ressources humaines à un projet en retard sur les prévisions ne fait qu’accentuer ce retard. En effet, le personnel ajouté devra être formé au nouveau système, ce qui prend un temps non négligeable qui ne peut compenser la productivité ajoutée par le personnel en question. De plus, la plupart des tâches ne sont pas partitionnables et les nouveaux arrivants vont faire perdre du temps aux équipes en place en temps de communication.

Note : L’extrême majorité de ces textes sont des extraits des articles de Wikipedia. Je n’ai pas la prétention de les avoir écrits.

Usagers lambda vs experts.

 Reflexion de geek  Commentaires fermés sur Usagers lambda vs experts.
Sep 172009
 

En 1927 John Dewey a écrit

« C’est la personne qui porte la chaussure qui sait le mieux si elle fait mal et où elle fait mal, même si le cordonnier est l’expert qui est le meilleur juge pour savoir comment y remédier. […] Une classe d’experts est inévitablement si éloignée de l’intérêt commun qu’elle devient nécessairement une classe avec des intérêts particuliers et un savoir privé – ce qui, sur des matières qui concernent la société, revient à un non-savoir. »

Même si il faut éviter les conclusions hâtives je trouve la remarque intéressante. Assez intéressante en tout cas pour vous en faire profiter.

Authentification Kerberos/ActiveDirectory sur Apache2

 Trucs et astuces techniques  Commentaires fermés sur Authentification Kerberos/ActiveDirectory sur Apache2
Sep 142009
 

dans la conf du serveur web, ajouter dans le virtualhost concerné


<location />
    AuthType Kerberos
    KrbAuthRealms DOMAIN.IN.AD
    KrbMethodNegotiate off
    KrbMethodK5Passwd on
    KrbAuthoritative on
    KrbVerifyKDC off
    KrbSaveCredentials off
    AuthName "Nom de la zone réservée"
    AuthGroupFile /chemin/vers/monfichierdegroupe
    Require group nomdugroupe 
</location>

On pourrait aller chercher les membres du groupe dans l’AD avec LDAP cependant ça fait vraiment bcp de requetes LDAP et les systemes de cache sont assez chiants à mettre en place. De plus, mettre dans le serveur web les crédits necessaires pour faire des interrogations LDAP sur un AD pose des problèmes de sécurité. C’est pour ça qu’il est plus simple d’utiliser un script indépendant, lancé périodiquement en CRON par un autre utilisateur afin de créer un ficher de groupes. Ok, ça n’est vraiment pas estéthique mais ça marche très bien et c’est relativement sécure. 🙂

Pour La création du fichier de groupes, voir mon programme LDAP_C

Sep 142009
 

Si vous avez un gros serveur dédié dans un datacenter très connu. Allez lachons le morceau : Si vous avez un bi-xeon Quad core chez OVH. Il se peut que vous soyez déçu par les performances.

Dans la plupart des cas, ce manque de performances est du à une mauvaise configuration de la RAM.
Sur les machines qui ont beaucoup de coeurs, la bande passante mémoire est primordiale.

Voici donc comment faire quelques benchs de la bande passante mémoire.

Ci dessous un petit code C (membench.c) qui passe son temps à écrire et lire dans la RAM

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4 #define nbbank 64
 5 #define banksize 1048576
 6 #define banktype int
 7
 8 int main (void)
 9 {   banktype * ptr[nbbank];
10  banktype * p;
11  unsigned int i=0;
12  unsigned int j=0;
13         banktype c=0;
14  unsigned int nbelements;
15
16  nbelements = banksize / sizeof(banktype);
17
18  for ( i=0 ; i<nbbank ; i++ )
19  {        ptr[i] = (banktype *) malloc( nbelements * sizeof(banktype) );
20          if ( ! ptr[i] )
21          {       fprintf(stderr , "erreur alloc memoire");
22                         return 1;
23                 }
24         }
25
26         while (1)
27         {       c++;
28                 for ( i=0 ; i<nbbank ; i++ )
29                 {       p=ptr[i];
30                  for ( j=0 ; j< nbelements ; j++ )
31                         {       p[j] = c;
32                         }
33                 }
34
35                 for ( i=0 ; i<nbbank ; i++ )
36                 {       p=ptr[i];
37                  for ( j=0 ; j < nbelements ; j++ )
38                         {       if ( p[j] != c )
39                                 {       fprintf(stderr , "erreur mutation memoire");
40                                         return 1;
41                                 }
42                         }
43                 }
44                 fprintf(stdout,".");
45                 fflush(stdout);
46         }
47 }

puis un petit script de lancement (bench.sh)

#!/bin/bash

nb=$1
gcc -O3 main.c -o bench.bin

(
while true ; do
 echo -ne "\n1---5---10---15---20---25---30---35---40---45---50---55---60---65---70---75---80---85---90---95--100"
 for j in $(seq 5) ; do
  echo 
  sleep 1
 done
done
) &
p=$!

for i in $(seq $nb) ; do 
  ./bench.bin &
done

read l
killall bench.bin
kill -9 $p

Tout d’abord inspecter la type de carte mère avec dmidecode

for i in baseboard-manufacturer baseboard-product-name baseboard-version ; do 
   dmidecode -s $i
done

dans mon cas j’obtient

ASUSTek Computer INC.
DSEB-D16/SAS
Rev 1.xxG

Rendez vous donc sur le site du constructeur et lancez le download du manuel.
Pendent ce temps inspectez la version du bios

dmidecode -s bios-version

et comparez avec le site du constructeur. Le cas échéant, demmandez à votre hebergeur de mettre le bios à jour. (Attendez quand même d’avoir fait la suite au cas où il faudrait lui faire faire plusieurs manipes en même temps)

Maintenant, inspectez la répartition des barrettes mémoire

dmidecode memory | 
grep -E '(Size|Bank|Locator:)' | 
grep -v -E '(Runtime|ROM|Maximum|Minimum|Range)' | 
sed 's/^\t*//g' | 
grep -v '^Installed Size' |
sed 's/ /_/g ; s/:_/ /' |
while read f v ; do 
   if [ "$f" = "Size" ] ; then echo ; fi
   echo -n " $v"
done | 
sed 's/^ //' |
grep -v '^$' | 
awk '{print($3" "$2" "$1)}' 

Ce qui dans mon cas donne

BANK0 DIMM_00 No_Module_Installed
BANK0 DIMM_01 2048_MB
BANK0 DIMM_02 No_Module_Installed
BANK0 DIMM_03 No_Module_Installed
BANK1 DIMM_10 No_Module_Installed
BANK1 DIMM_11 2048_MB
BANK1 DIMM_12 No_Module_Installed
BANK1 DIMM_13 No_Module_Installed
BANK2 DIMM_20 2048_MB
BANK2 DIMM_21 No_Module_Installed
BANK2 DIMM_22 No_Module_Installed
BANK2 DIMM_23 No_Module_Installed
BANK3 DIMM_30 2048_MB
BANK3 DIMM_31 No_Module_Installed
BANK3 DIMM_32 No_Module_Installed
BANK3 DIMM_33 No_Module_Installed

Allez ensuite vérifier dans le manuel de la carte mère que cette configuration est correcte pour des performances optimales : Horreur ! Eh ben non! evidemment dans une telle configuration la mémoire ne peut pas fonctionner en double canal car il n’y a pas symétrie parfaite entre les quatre banques.
Appelez donc votre hebergeur et dites lui de vous mettre les barettes comme suit :

BANK0 DIMM_00 2048_MB
BANK0 DIMM_01 No_Module_Installed
BANK0 DIMM_02 No_Module_Installed
BANK0 DIMM_03 No_Module_Installed
BANK1 DIMM_10 2048_MB
BANK1 DIMM_11 No_Module_Installed
BANK1 DIMM_12 No_Module_Installed
BANK1 DIMM_13 No_Module_Installed
BANK2 DIMM_20 2048_MB
BANK2 DIMM_21 No_Module_Installed
BANK2 DIMM_22 No_Module_Installed
BANK2 DIMM_23 No_Module_Installed
BANK3 DIMM_30 2048_MB
BANK3 DIMM_31 No_Module_Installed
BANK3 DIMM_32 No_Module_Installed
BANK3 DIMM_33 No_Module_Installed

Dans mon cas, les DIMM 0 de chaque banque étaient repérés en blanc sur la carte mère. n’hésitez pas à mentionner ces détails à votre hebergeur, ils ont parfois la tête dure.

Remarquez que pour une configuration 12Go de RAM il faut employer 4x2Go + 4x1G de façon à conserver la symetrie et non 6x2Go comme que j’ai souvent vu. Le plus simple reste de fonctionner avec 8 ou 16Go de RAM mais pas de solutions intermédiaires.

Petits tournevis et grosses paluches

 Reflexion de geek  Commentaires fermés sur Petits tournevis et grosses paluches
Sep 072009
 

Pourquoi les tournevis faits pour les petites vis ont ils toujours de manches minuscules ???
C’est la vis qui est petite, pas ma main !

Policy routing sous linux

 Trucs et astuces techniques  Commentaires fermés sur Policy routing sous linux
Sep 072009
 

Une fonction sympa avec linux, c’est qu’en faire un routeur fait partie des fonctions de base.
Par contre, si vous avez plusieurs lignes internet, il peut être intéressant de router sur l’une ou l’autre non pas en fonction de destinations comme le permet la table de routage « normale » mais en fonction du service demandé.

Par exemple, vous pouvez aiguiller le SSH sur la connexion lente mais peu utilisée et donc très réactive. et aiguiller le gros FTP lourdingue sur la grosse connexion rapide où passent déjà vos gros downloads de films X vos documents volumineux.

L’astuce, c’est d’employer la fonction « policy routing » du noyau et d’employer la marque netfilter pour aiguiller le trafic.

Vous n’aurez ensuite qu’a ajouter des règles de ce genre dans la table mangle

/sbin/iptables --table mangle \
               --append PREROUTING $RegleDeFiltrage \
               --jump MARK --set-mark $Direction

(bien evidemment en remplaçant $RegleDeFiltrage par quelque chose de potable et $Direction par un chiffre.)

Concernant les routes, on les crées de cette façon là.

ip rule add fwmark 1 table ADSL1
ip rule add fwmark 2 table ADSL2
ip rule add fwmark 3 table ADSL3

ip route add default via $GW_EXTERNE_ADSL1 table ADSL1
ip route add default via $GW_EXTERNE_ADSL2 table ADSL2
ip route add default via $GW_EXTERNE_ADSL3 table ADSL3
ip route add default via $GW_EXTERNE_ADSL1

Attention cependant il il y une limitation de taille !!!!
Vous ne POUVEZ pas faire conjointement du NAT « Masquerade » sur les 3 connexions.
Ca ne marchera pas.
Vous ne pouvez faire de nat et en particulier de connexion tracking que sur la route par defaut.

Dans mon exemple précédent, il faudra donc que le trafic à destination des ADSL 2 et 3 soit simplement routé et naté par la machine suivante (n’importe quelle box ADSL)

Pour avoir des infos système

 Trucs et astuces techniques  Commentaires fermés sur Pour avoir des infos système
Sep 072009
 

Une petite ligne sympa pour récupérer tout plein d’informations sur le hardware d’un système linux:

dmidecode -s 2>&1 | 
   grep '^  ' | 
   sed 's/^ *//' | 
   while read s ; do 
      echo "$s : $(dmidecode -s $s)" ; 
   done

Évidemment vous pouvez tout mettre bout à bout sur une seule ligne