lundi 15 novembre 2010

1ere étape (4) optimisation

Pour ceux qui suivre c'est la suite de l'analyse de la consommation électrique en temps réel.

J'avais équipé mon linutop d'un disque dur de 30 Go étant un peu limité au 1Go de disque ssd interne et pénalisé par le système de fichier de l'OS d'origine du linutop.

J'ai testé la dernière version de l'OS 4.0.2, mais c'est toujours galère pour mettre à jour l'OS sans perdre de place. Je suis donc passé au minimal cd d'ubuntu et adapté les paquets installés, j'ai une conf qui tourne avec mysql, apache, etc en me laissant encore 250 Mo ...

L'autre difficulté c'est le manque de puissance du processeur 996 bogomips comparé au 2X4788 de mon portable soit 10 fois moins :(

Je ressentais le manque de puissance lors de la génération des graphiques de consommation. La lib jpgraph sous php sollicitait trop le linutop.

Donc j'ai opté pour la génération en ligne via les api de google chart (http://code.google.com/intl/fr/apis/chart/)

version jpgraph avec 98% cpu :
jpp@laptop:~$ time wget http://192.168.0.18/php/aff-inst.php
real   0m24.788s
user   0m0.004s
sys    0m0.004s






version avec google et une consommation quasi nulle
jpp@laptop:~$ time wget http://192.168.0.18/php/google.php
real   0m0.031s
user   0m0.000s
sys    0m0.008s


Ça calme ! Merci google.


Ayant plus de 50000 enregistrements par jour, (une mesure toute les 1,6 secondes en moyenne) j'optimise la place disque en supprimant chaque nuit les enregistrements inutiles (en ne gardant que ceux des trois derniers jours et ceux de la première minute quelque soit le jour, pour faire des stats de consommation).

J'ai donc rajouté rajoutant cette ligne dans la crontab :
0 0 * * * echo "delete FROM teleinfo WHERE (rec_time < '023:59:30' or rec_time > '00:00:30') AND timestamp < $(($(date +%s)-3600*24*3));" |mysql -u root --password=***** compteur

Aucun commentaire: