Aufs – la evolució del unionfs
En les properes setamenes hauré de tornar-me a posar les piles amb els sistemes de fitxers COW(Copy-On-Write), ja havia jugat molt amb unionfs per tal de montar un player linux de digital signage fa uns 2 anys. Però ara estic fent una integració amb MeeGo que porta per defecte el sistema de fitxers BRTFS el qual presenta moltíssimes diferencies en comparació a un sistema de fitxers amb journaling normal com podria ser ext3 i ext4.
La qüestió és que em cal intentar assegurar el bon funcionament d’un sistema operatiu a cada arrencada i havia pensat que potser això podia ser una bona idea, bé ja aniré explicant els resultats del experiments quan toquin. Ara només volia avançar-vos algunes de les funcionalitats i millores que suposa aufs respecte unionfs.
- permet unir diferents directoris en un directori virtual nou, a cada directori se l’anomenarà una ‘branch’
- a cada ‘branch’ li podem especificar una ‘flag’ diferent: ‘readonly’, ‘readwrite’ i ‘whiteout-able’
- gràcies a al nou directori virtual podem simular la capacitat de modificar, afegir i borrar elements en un directori de només lectura
- suporta la capacitat d’afegir/treure ‘branch’ d’un directori virtual en calent
La llista de funcionalitats és força més llarga però el més important és que el nou aufs és molt més ràpid i confiable que el unionfs.
benchmarking: gearman, couchdb i redis
No es tracta d’unes proves de rendiment serioses i estríctes, però almenys en el meu cas m’han servit per tenir una idea del rendiment d’aquestes aplicacions i poder dissenyar diferents arquitectures amb una mica més de coneixement de causa.
Per si no coneixeu les eines:
- gearman: servidor de tasques
- couchdb: sistema de bases de dades no relacional
- redis: sistema de caché similar a memcached, però molt millor sota el meu punt de vista
Sistema sobre el que s’han fet les proves:
- HP ML110 G5 – Xeon 2GHz – 4GB RAM – HD via NFS
- Rendiment del disc: Timing buffered disk reads: 26 MB in 3.00 seconds = 8.66 MB/sec
- SO Hypervisor: VMWare ESXi 3.5
- Servidor virtual: 1 CPU 2GHz i 512Mb RAM
- SO Guest: Ubuntu 8.04 Hardy
Resultats de les proves:
- client de gearman, fa 5.000 requests al servidor:
- gearman backend: default, cua no persistent
- cmd: gearmand -vvv -u root
- temps: ~32s – rendiment: ~156req/s
- gearman backend: sqlite3, cua persistent
- cmd: gearmand -vvv -u root –libsqlite3-db=/tmp/gearman_sqlite3.cache -q libsqlite3
- temps: ~11m10s – rendiment: ~0.8req/s
- gearman backend: tokyo cabinet btree, cua persistent
- cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=/tmp/gearmand.tcb -vvv -u root
- temps: ~2m3s – rendiment: ~40req/s
- gearman backend: tokyo cabinet hash, cua persistent
- cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=/tmp/gearmand.tch -vvv -u root
- temps: ~2m5s – rendiment: ~40req/s
- gearman backend: tokyo cabinet RAM, cua no persistent
- cmd: gearmand -q libtokyocabinet –libtokyocabinet-file=”*” -vvv -u root
- temps: ~17s – rendiment: ~294req/s
- gearman backend: default, cua no persistent
- insertem 5.000 documents a couchdb:
- temps: ~14s – rendiment: ~357req/s
- redis fem 10.000 operacions de tipus:
- SET: temps: ~0.35s – rendiment: ~28.375req/s
- GET: temps: ~0.59s – rendiment: ~16.920req/s
- PING: temps: ~0.33s – rendiment: ~30.471req/s
avui ja en faig 33
m’hi acabo de fixar, 33 com el canal 33… si és que jo també em fixo amb unes coses més extranyes.
Doncs bé, com sempre passa en aquests dies no m’he aixecat massa diferent que cap altre, tot i que he de reconeixer que el “Petit Chardonnay de Jean Leon” del sopar ha fet estragos aquesta nit. Afegir a més la recomanació del restaurant Lledoners a Sant Quintí de Mediona ja hi havia anat a dreginar uns quants cops amb el Francesc però ahir el vaig poder provar en el seu màxim esplendor i ens va agradar molt. A més com a anècdota comentar que m’hi vaig trobar el Joan Olvieres que havia estat tutor meu a 3er de BUP a més de delegat de l’equip d’hoquei patins on erem companys amb el seu fill, per fer-ho més recargolat compartia taula amb l’ex-alcalde de Torrelavit entre d’altres cares conegudes.
Pel que fa als regals destacar la raqueta de tenis que tan desitjava que m’arribes que com no podia ser d’altre forma m’ha regalat el meu “amoriuo”, una Babolat Pure Drive.
Per continuar el dia amb el bon peu que l’he començat ara toca una bona i emocionant cursa de F1 al circuit de casa, a Montmeló. Això si des del sofà de casa, que de moment fer-ho des del circuit continua sent una assignatura pendent, però tot arribarà. De fet, des de que vaig ser a la final de la Copa Davis d’aquest any diria que ja tot és possible.
Que no se m’oblidi comentar-ho també, el meu autoregal aquest any ha estat una tauleta gràfica, exactament una Wacom Bamboo Pen & Touch.
Bàsicament les funcions que li vull donar són:
- fer esquemes a mà alçada, sense haver d’invertir tan de temps passant-los a net amb Visio, per exemple.
- deixar de fer podcasts per passar a fer screencasts al blog, o sigui, anar fent petits esquemes o dibuixos sobre els temes que toco als podcast, ja que pel que m’han comentat es fan difícils de seguir sense un esquema.
- per temes de feina sovint mantic llargues converses telefòniques, ja sigui, via VoIP, per fixe o mòbil; les temàtiques sovint són molt tècniques i difícils de traslladar només amb la veu espero que compartint l’escriptori i fent esquemes això pugui ser més senzill.
Així doncs, el pretenc és millorar les meves eines de comunicació telemàtica recolzant-me amb aquesta nova forma d’interactuar amb l’ordinador. Per si tot això fos poc, ja fa dies que estic donant voltes a com reordenar el meu workspace ja que no acabo d’estar del tot còmode i crec que no acabo de treure-li tot el partit que deuria, així doncs li segueixo donant voltes.
Fa 7 anys que vaig tornar a neixer…
Avui torna a ser un dia memorable, malgrat sovint només hem felicita la meva parella i algún que altre amic proper per mi continua sent un dia tan o més especial que el dia del meu aniversari, que com passa des de fa 7 anys és dos dies després del dia d’avui.
Quan tens una experiència d’aquest tipus tot canvia, però a vegades com avui et preguntes si ho fa prou. Malgrat això el que em continua dient que vaig per bon camí és la sensació de felicitat que porto dins el cor i al veure aquestes fotografies la pell es continua posant de gallina:
Aquest any he decidit celebrar ambdós aniversaris en la intimitat, és a dir, a diferència de la resta d’anys intentaré que siguin unes jornades de reflexió tranquila sense les grans festes amb els amics que he fet els darrers anys.
A més demà passat faré 33 anys que no només és l’edat en que va morir el meu pare. O sigui, que per mi té un significat especial aquesta edat i per tant espero poder a partir d’ara poder disfrutar de la vida més que mai per intentar compensar el que el destí li va arrencar al meu pare.
Bé doncs, gràcies a tots per ser on sou i per ser com sou… jo continuo al peu del canó com sempre i amb la moral de ferro.
Webs 2.0 interessants: formspring, doodle i uwish
Aquest mes he publicat articles una mica densos i pesats de seguir, així doncs per relaxar una mica l’ambient abans de seguir els que tinc preparats que no són menys durs ús deixo amb tres referències que trobo molt interessants:
formspring
- URL: http://formspring.me
- Descripció: servei molt simple, que permet que la gent ens pregunti coses, nosaltres podem contestar i queda un registre de les preguntes i respostes. Això ens permet elaborar un FAQ sense gairebé cap esforç, a més de contestar les preguntes que realment interessen a la gent i no només les que se’ns acudeixen a nosaltres. Si per casualitat em voleu preguntar alguna cosa: http://www.formspring.me/oriolrius
doodle
- URL: http://doodle.com
- Descripció: alguna vegada ja l’havia usat però mai me l’havia mirat amb calma, és una eina genial per quan has de prendre una decisió entre un grup de gent. La decisió pot ser sobre una pregnuta o sobre una data. A més també es poden organitzar votacions per un tema, o crear llistes perquè la gent s’afegeixi i els usuaris es pronunciïn sobre la qüestió. Alguns exemples: quina data quedem per sopar amb la gent de l’escola? quin disseny ús agrada més? qui vindrà a esquiar aquest cap de setmana?
uwish
- URL: http://uwi.sh
- Descripció: le descobert per casualitat llegint un blog, que ni recordo quin era. El servei permet tenir la nostre ‘wish list‘ publicada perquè tothom sapigue què desitgem tenir. Malgrat ser una versió molt inicial, la socialització de la idea la trobo molt interessant i útil. Realment una idea i implementació boníssimes. Si voleu veure la meva wish list: http://uwi.sh/oriolrius. Trànquils no aspiro a que ningú hem regali res, però m’agrada tenir referenciades les coses que m’agradaria comprar-me.
Integració continua: buildbot + codespeed + guppy-pe + resource
Degut a un requeriment que teniem a la feina he montat un entorn d’integració continua. En escència el que es busca és el següent:
- Llençar de forma automàtica tests sobre els commits que es fan al codi (buildbot)
- Tenir un repositori dels resultats dels tests fàcil de consultar (web) (buildbot)
- Suportar tests sobre rendiment (profiling) automàtics (guppy-pe + resource)
- Poder comprovar quina és l’evolució d’aquests tests de rendiment amb una eina visual (codespeed)
Per tal d’aconseguir aquests objectius s’ha usat:
- buildbot: que permet automatitzar l’entorn de compilació i testeix dels commits que es van fent al repositori. (esta programat en python). Per entendre millor buildbot, ús recomano llegir l’apartat: system architecure del seu manual.
- codespeed: és una eina feta amb python+django+mysql a través d’una interficie HTTP+JSON pot injectar informació a la BBDD i a través de la GUI ens mostra:
- overview: a través d’una taula mostra les tendències dels resultats dels benchmark associats a un executable.
- timeline: mostra en una gràfica l’evolució dels resultats arxivats sobre un benchmark concret fets sobre un host.
- guppy-pe: ens permet extreure dades referents als recursos de sistema que esta consumint una part del codi: classe, funció, variable, etc.
- resource: és un módul de python que permet saber (resource.getrusage(PID)) quins recursos esta consumint un PID en un moment donat.
Com que la documentació que he fet per la feina l’he hagut de filtrar per no revelar informació interna, la documentació que publico esta en format OpenOffice i PDF perquè sigui senzill per tothom llegir-la i modificar-la si vol.
- Paquet .tar.gz, conté:
- fitxer de configuració buildbot, master.cfg
- codi d’exemple per provar l’entorn, buildbot-test
- codi del tobami-codespeed modificat perquè sigui més generalista que la versió original
- integracion-continua-instalacion.odt: document amb notes sobre els procediments que he seguit per la instal·lació de tot plegat.
- integracion-continua-manual.odt: manual d’usuari de tot plegat. (també la versió en pdf)
- integracion-continua-manual.pdf: enllaço de forma directa aquest manual per si hi voleu donar un cop d’ull per saber si ús interessa el tema.
Enllaços relacionats: