Friday, February 16, 2007

sistemas criticos funcionando con sistemas operativos de juguete (?)

Si sirve de consuelo ... ver que no solamente en estos lares abunda la mediocridad en quienes toman decisiones de IT.

"Quebec health officials are battling a fast-spreading virus that struck its entire computer network system late Tuesday." link

Lisp? nahh...

Friday, February 02, 2007

M'rd Donalds ... por qué lo amaré tanto ?

Si un día viendo tele sentís un deseo irresistible de transarte al "payasito" de M'rd Donalds quizás sea por algo como ésto (T=00:35).

Quién te dice ... por ahí terminás siendo un existoso manager, así que podés ir entrenando



Enjoy :-P

Wednesday, January 10, 2007

[en] Throughput tests WRTSL54GS v1.1 vs WRT54GS v3.0

Throughput tests WRTSL54GS v1.1 vs WRT54GS v3.0


The goal of this test is to measure and compare the NAT'ing/routing/switching behavior of these two WRT54G's [1] running OpenWRT Whiterussian RC6 [5]:




models/nCPUflash/RAMeth switch
WRTSL54GS v1.1 [2]CJK11xxxxxxxBroadcomm 4704rev9 266Mhz8/32MBinCPU
WRT54GS v3.0 [3]CGN5xxxxxxxBroadcomm 5352 200Mhz8/32MBBCM5325


IMPORTANT: nbd ( openwrt developer) pointed a problem with "entropy gathering which fills /dev/random from wifi" in WR rc6 and suggested me trying a newer build (09test); I'll try it an repost the results (specially the wifi ones)
--jjo; Jan 10, 2007.


Testbed, methodology



  • Topology

  •                        --------> iperf test connection------>
    WIFI-NATed [CLIENT]+)) wifi (( +[ WRT ]+=== wan ===+[SERVER] (iptables MASQUERADE'd)
    LAN-NATed [CLIENT]+=== lan ===+[ WRT ]+=== wan ===+[SERVER] (iptables MASQUERADE'd)
    LAN-routed [CLIENT]+=== lan ===+[ WRT ]+=== wan ===+[SERVER] (plain routing)
    LAN-switched [CLIENT]+=== lan ===+[ WRT ]+=== lan ===+[SERVER] (hardware switching)

    "lan": any LAN (1of4) port
    "wan": WAN port
    "wifi": 802.11g link at 54Mbps (aprox 2mts distance between antennas)
    iptables MASQUERADE'd: default whiterussian setup (masquerade both wifi,lan to wan)
    plain routing: accomplished with iptables full "flushing" + server route to client via WRT

  • Hardware

    • client: IBM Thinkpad T42, lan: e1000 (10/100/1000), wifi: ipw2200
    • server: generic PC sempron 2200+, lan: 8139too
    • routers: (stated above)


  • Software
    • client, server: iperf [4] (-c, -s) on linux-2.6, glibc-2.3+.
    • routers: OpenWRT WhiteRussian RC6 [5].



Results


Throughput values in megabits per second taken from iperf's output. Please note that measured rates by iperf correspond to _application_, ie: they don't consider protocol headers, etc.

CPU usage % shown by top for ksoft_IRQd from a ssh logged session, this "top" session was not considered for throughput values (separately taken) to avoid "measuring load influence": 100% CPU usage was aprox= 90% ksoft_IRQd + 8% dropbear + 2% top.





Throughput (CPU usage %)
modelWIFI-NATedLAN-NATedLAN-routedLAN-switched
WRTSL54GS23.5mbit/s (65%)47.5mbit/s (90%+)55.8mbit/s (90%+)93.7mbit/s (0%)
WRT54GS 10.5mbit/s (14%)34.2mbit/s (90%+)40.4mbit/s (90%+)93.8mbit/s (0%)


Analisys


WRTSL54GS


WIFI-NATed at 23.5 mbits (802.11g @54Mbps) with ~65% CPU usage denotes "reasonable" CPU availability for this 802.11g saturated link.

LAN-NATed at 47.5 mbits shows the CPU bottleneck when routing+MASQUERADING, considering that ip_conntrack table has just a few entries this is a VERY optimistic max.

LAN-routed at 55.8 mbits is pretty poor, I think that ip_conntrack processing is ALSO affecting this scenario (if loaded it gets called even for non-nated streams); it would be veryVERY useful to have ip_conntrack optionally loaded by openwrt (currently static).

LAN-switched at 93.8 mbits is expectable given that hardware only switching is involved.

WRT54GS


LAN-NATed and LAN-routed values give about 75% when compared to its newer cousin, 75% is roughly 200/266, respective CPU clocks [MHz] (this confirms CPU saturation).

WIFI-NATed at 10.5 mbits (dbl-confirmed 802.11g @54Mbps) is a bad smelling frog, I double checked openwrt setup... nothing strange found; about 1mo ago I was running RC5 getting ~20mbits+ rates (informal, from rsync/ftp rates), so it maybe something with RC6 wifi in this hardware, dunno(?).

As expected, LAN-switched gave same results.

Conclusions


Both WRT's seem reasonable for 802.11g @54Mbps even when NAT'ing traffic (common usage), obviously depending on traffic patterns, how many clients, etc ... given the constrained RAM (and CPU) for NAT+conntracking ... NOT tested here.


On the contrast, their CPU is not powerful enough to saturate _both_ (LAN+WAN) 100mbps links simultaneously, even when "only" routing (55mbit/s max on WRTSL54GS); this could be enhanced by having ip_conntrack optionally (not)loaded by openwrt.

Out of band disclaimer


Ok ... I know, you agree: blogger sucks for writing technical reports .. sheesshhhh :-P

References


[1]http://en.wikipedia.org/wiki/WRT54G
[2]http://wiki.openwrt.org/OpenWrtDocs/Hardware/Linksys/WRTSL54GS
[3]http://wiki.openwrt.org/OpenWrtDocs/Hardware/Linksys/WRT54GS
[4]Iperf bandwidth measurement tool: http://dast.nlanr.net/Projects/Iperf/
[5]http://downloads.openwrt.org/whiterussian/rc6/


This thread at openwrt forums talks about openwrt experiences on Linksys WRTSL54GS model, and was the starting point to encourage loading openwrt on WRTSL54GS v1.1 model.

Wednesday, December 20, 2006

[devel] multi process posix mutex

Jugando con la posibilidad de usar los mecanismos de sincronización de POSIX para threads (pthread_mutex_t, sem_t, pthread_cond_t , etc) llegué a una mini aplicación que es capaz de crear un MUTEX multiproceso de "larga vida" mediante el uso de memoria compartida:

./mproc-mutex estelock i #init
./mproc-mutex estelock l #lock
./mproc-mutex estelock l #lock again: will wait until unlock or signal (eg: Ctrl-C)
./mproc-mutex estelock u #unlock
La clave del fuente está en las sig. líneas:

int fd; char *p;
fd=shm_open(argv[1], O_RDWR|O_CREAT, 0666);
ftruncate(fd, sizeof(pthread_mutex_t));
:
p=mmap(NULL, sizeof(pthread_mutex_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
:
pthread_mutex_init(p, NULL) ;


Más explicaciones en el src: http://www.lugmen.org.ar/~jjo/jjotip/jjotip-mproc-mutex/mproc-mutex.c

Tuesday, November 28, 2006

el sueño del (wifi) pibe

Meraki mini
Mesh, wifi, corre Linux, chiquito, acce$ible:
http://www.meraki.net/mini.html
Sumándole solar-power es posible llegar a cosas como ésta:
http://www.phaster.com/golden_hill_free_web/#solar_meraki

De sueño a realidad ? ... desde mendoza-wireless lo intentaremos :-D

Friday, November 17, 2006

algunos costos de "la diaria" en Europa (desde ojos argentinos)

Anduvimos por EU con mi 1/2naranja :-D
Sana recomendación MUY importante: NO vayas haciendo la conversión a pesos (que en nuestro caso actualmente es 4x!) cada vez que gastás y/o masticás un bocado :), ahorrá y disponé de un monto diario... y listo.

Según pude comprobar (sin contar alojamiento) podés comer+andar con
~eu$ 15 (minimorum, de supermercado) hasta eu$35 (almuerzo y cena en bar/rest. "normales").

A modo de referencia, aquí van algunos costos & tips:
(costos tomados en Madrid , agregar ~20% para Paris, Venecia).

@Supermercado
En la mayoría venden unos sandwiches ya armaditos de lo más variados, alcanzan perfectamente para un almuerzo liviano, con lo cual para dos personas un almuerzo/cena alike no baja de aprox eu$7.-:
  • sandwich: eu$ 2.50
  • gaseosa 1.5lt/ jugo natural 1lt: eu$2.0
  • pan en rodajas: eu$2.0
  • queso en fetas (~10): eu$2.0
  • bandeja de ensalada fresca: eu$2.5
  • yogurt bebible 1lt.: eu$2.0
@Restaurant
Restaurant simple (obvio):
  • Una pizza compartida para dos + dos jugos/gaseosa: eu$20
  • Un par de platos de spaguetti + jugo/gaseosa: eu$22
@FastFood
Ref: fastfood del Louvre (onda patio de comidas):
  • comida ppal (varias opciones)+postre(tarta)+gaseosa 1/2lt: eu$11,90
  • un helado mediano: eu$ 3
@Alojamiento
Hoteles ~3 estrellas:
  • single: eu$ 65-80, sumar eu$10-15 por cada persona adicional
@Transporte
El transporte público es muy bueno y --según dicen-- seguro (Madrid, Barcelona, Paris).
TIP: en Barcelona comprá un boleto "T10" que trae 10 pasaje pero cuesta ~6 nomás *Y* te sirve para
usarlo en metro+bus+tranvía el MISMO pasaje (dentro de 1:15hr del primer uso);
además no es personal (varios pueden usar el mismo T10).

  • metro(subte): eu$ 1.0
  • tren cercanía (depende de distancia): eu$ 1.2 para arriba
  • bus (1hr. de viaje , 40km): eu$ 3.0
@Museos
TIP: Algo que tienen muy piola es que podés salir/entrar durante el día con la sola entrada,
así que te conviene ir a la mañana temprano así te queda +tiempo.
  • del Prado: eu$6, GRATIS LOS DOMINGOS
  • Louvre: eu$8.5
  • Versalles: eu$6. GRATIS EL 1er DOMINGO de c/mes
@Auto
A pesar que no anduvimos en auto, anoté algunos precios:
  • nafta: eu$1.2 aprox
  • peajes: CARISIMOS, según me dijeron en gral costo peaje iguala al del combustible.