Saturday, January 23, 2010

Instalacion de Memcached para la optimizacion de CMS [perdorros]

A veces, cuando tenemos un sitio que recibe una cantidad importante de visitas, nuestro servidor empieza a pedir socorro, ya que por ejemplo, en el caso de un sitio que utilice Drupal, Joomla, WP, o algun otro manejador de contenido, por cada pagina visitada tenemos cientos (sino miles) de consultas a nuestra querida y cascoteada base de datos.



Una buena opcion es la instalacion de un sistema de cacheo de objetos, que es a lo que vamos a dedicarnos ahora.



Memcached es un motor de cacheo de objetos en memoria, pensado para incrementar la velocidad de webs dinamicas (Segun Danga, su desarrollador).

El mismo es usado por gran cantidad de sitios reconocidos (siendo el ejemplo mas notorio Facebook, que utiliza una version tocada del mismo).



Pero ahora vamos a lo divertido! A levantar nuestro demonio memcache!!!



En este ejemplo usaremos CentOS 5.4 y memcached 1.1.4 que son las ultimas versiones al momento



  • Instalar libevent y libevent-dev

  • Esto lo haremos, en nuestro caso, usando yum:

    # yum install libevent libevent-dev



  • Bajar los fuentes de memcached actuales

  • # wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz

    # tar xvvf memcached-1.4.4.tar.gz

    # cd memcached-1.4.4



  • Una vez dentro, le damos los pasos comunes y corrientes de una compilacion normal:

  • # ./configure [--enable-64bit]


    Donde:

    --enable-64bit -- Construimos una version de 64Bits de Memcached



    # make

    # make install




    Si todo salio bien, una vez hecho esto tendremos el ejecutable de memcached en /usr/local/bin/memcached

    Ahora tendremos que crear el /etc/init.d correspondiente para iniciarlo:

    # vim /etc/init.d/memcached




    #!/bin/sh

    case "$1" in

    start) /usr/local/bin/memcached -d -u root -m 512 -p 11211

    ;;

    stop) killall memcached

    ;;

    esac




    Donde:

    -d -- Iniciarlo como demonio

    -u root -- Usuario con el que se iniciara el proceso de memcached

    -m 512 -- Cantidad de memoria asignada al cache

    -p 11211 -- Puerto de red al que memcached escuchara por comandos o peticiones


    Luego de haber iniciado el demonio, debemos instalar la extension de PECL a fin de que Memcached pueda ser utilizado con PHP:

  • Bajamos y descomprimimos el fuente del modulo:

  • # wget http://pecl.php.net/get/memcache

    # tar xvvf memcache

    # cd memcache-X.X.X


  • Y empezamos a construir...

  • # phpize

    # ./configure

    # make

    # make install




    Luego agregamos nuestro recien creadito modulo en nuestra configuracion de PHP, colocando las siguientes lineas en nuestro php.ini:

    extension=memcache.so

    Y voila, ya tenemos nuestro memcached instalado para que sea utilizado por, por ejemplo, Drupal y sus modulitos locos...

    Wednesday, January 20, 2010

    Esta es una prueba desde BloGTK... Esta bastante bueno!!!

    Thursday, December 17, 2009

    El Retorno del (Quete)Jedi

    Hey! Estimados!!!

    He vuelto, no se por cuanto, no se por que... Ya extrañaba un poco escribir b*******s informaticas, pero bueno... Volvi para escribir y recopilar cosas con las que tal vez me tope en el laburo y me llevo un tiempito descular... O cosas que me parecen utiles... O simplemente COSAS.


    Estos ultimos meses cambie de laburo un par de veces, ahora encontrandome trabajando en la empresa CMD... Lindo lugar, con mucho que aprender y buena gente que acompaña...

    Cambiaron varias cosas... Pase de amar Debian (que aun lo hago), a querer un poco mas a Red Hat, y su hijo gratis: CentOS. Lo que me llevo a esto ultimo es que al laburar con servidores onda HP ProLiant ML380, o DELL PowerEdge, sufri mucho la falta de modulos de hardware, que parecen haber desaparecido en la release Lenny de Debian.

    Por eso, de aca para adelante, tal vez vean mucho "yum"... Mucho "rpm"... Etc...
    O tal vez pkgadd... Si, cai en las garras de Solaris :D

    Bueno... Estimo postear por lo menos una vez por semana, con cosas interesantes -espero- para todos!

    Si... Volvi... Y en forma de fichas

    Tuesday, April 22, 2008

    Aguante Stallman

    Aguante Stallman

    Yo y mis pares estamos acá
    para dar lo que hay que dar
    por sentimiento locura y pasión
    se nos ve de negro vestidos.

    Soy debianero por propia elección
    no me rompa las bolas oficial
    a fondo blanco estoy festejando
    lo mejor del software en libertad

    Vamos muchachos una vez más
    cantemos todos, así escuchan bien
    los trajeaditos de Microso'
    los slackeros y los del Red Hat!

    Soy debianero por propia elección
    no me rompa las bolas oficial
    a fondo blanco estoy festejando
    lo mejor del software en libertad

    A ver muchachos una vez más
    cantemos todos, así escuchan bien
    los trajeaditos de Microso'
    los slackeros y los del gentoo

    Aguante Stallman
    Aguante Stallman

    A ver muchachos una vez más
    cantemos todos, así escuchan bien
    los trajeaditos que venden guindous
    los slackeros y los del ututo!

    (Cancion: Aguante Bonavena - Letras y musica originales por R. Iorio / Almafuerte)

    Wednesday, April 16, 2008

    Manejando Servicios en Fedora
    (O como traicionar a Debian a la fuerza)

    Como sysadmin, siempre nos tenemos que habituar a algun sistema, que si bien esta dentro de los UNIX-Like, son un tanto diferentes en la disposicion de sus configuraciones, y de las herramientas para modificarlas
    Este es un howto bastante basico sobre como configurar los servicios a correr en los diferentes runlevels, a la vez que se enumeran los servicios mas comunes que se encuentran.

    Para manejar la activacion de servicios de acuerdo al runlevel que se invoque, se utiliza una herramienta llamada chkconfig, que es algo asi como un update-rc.d de Debian, salvo que tiene operaciones de listado de servicios por runlevel.

    La manera de invocarlo es:

    #/sbin/chkconfig --level [123456S] [on|off]
    Para listar que servicios tiene cada runlevel:

    #/sbin/chkconfig --list [servicio] <-- Se puede agregar el nombre del servicio para ver solamente el estado de ese servicio

    Como ven, es simple.

    Por otra parte, podemos ver el estado de un servicio ya corriendo, reiniciarlo, pararlo, o iniciarlo a piacere con el comando service:
    #/sbin/service [start|stop|reload|status] o demas estados si el servicio lo soporta
    Por ejemplo:
    #/sbin/service crond status
    crond (pid 1604) is running...

    Ese es todo el misterio que hay en el manejo de servicios en Fedora.

    Ahora, los sospechosos de siempre:

    acpid
    Advance Configuration and Power Interface daemon - El demonio que maneja las interfaces de energia (como el boton de encendido, el sleep, la tapa de las laptops)

    anacron, atd, cron
    Los schedulers favoritos de todos! Que hariamos sin estos bebes!?

    apmd
    Advanced Power Management daemon - Si tenemos una maquina vieja, o una laptop medio incompatible, usamos este servicio en vez de acpid para el power management

    autofs
    Monta automaticamente los filesystems extraibles (como pendrives USB, etc)

    avahi-*
    Detecta servicios y dispositivos de red. Es una implementacion de zeroconf

    bluetooth
    Maneja los dispositivos bluetooth en sistemas que lo tengan, generalmente desactivado

    cpuspeed
    Para hacer throttling del CPU. Las desktop generalmente no usan esto, asi que podemos sacarlo :P

    cupsd
    Queres imprimir? "Tal vez" el servicio Common UNIX Printing System te ayude... No se... :P

    firstboot
    Realiza tareas pertinentes al primer booteo de Fedora, luego de esa instancia puede ser desactivado

    iptables
    El Firewall por excelencia (y por defecto!) de Linux. Se recomienda dejarlo encendido (aunque no tenga ninguna regla seteada)

    kudzu
    Este servicio se encarga de hacer "probes" de hardware. Algo asi como modprobe de Debian.

    messagebus
    Servicio de comunicacion entre procesos. Es un componente critico del sistema

    smbd
    Demonio de SAMBA

    sshd
    Nuestro amigo el Secure Shell

    xinetd
    El Superservidor! (Si, parece un superheroe) :P

    C'est tout sobre servicios en Fedora.
    Espero que les sirva de algo

    Thursday, April 10, 2008

    RSA + SSH
    No mas dolor de OGT al loguearse remotamente

    Situacion:
    Lunes, 9 a.m.
    Locacion:
    Mi casa - Living
    Actores:
    -Joven desgarbado y super dormido con un cafe en la mano
    -Laptop corriendo Linux ;). A partir de ahora Lappi

    Escena I
    Abre el telon...
    Jefa de Joven Degarbado: Che! Por favor! Fijate rapido que parece que la base de datos del webserver esta caida, me tira un error que pide correr 'mysqladmin flush-hosts'. Podes solucionarlo rapido?
    Joven Desgarbado: Ok, ya me estoy logueando y lo miro.

    Entonces nuestro joven se quiere loguear por ssh...


    #ssh root@ni_en_pedo_voy_a_poner_la_IP_aca
    Password:


    Ete aqui, que con el sueño que tenia, ponia cualquier cosa. Y el joven no se podia loguear.

    ...Bueno, en realidad, despues de intentar como 5 veces pudo...

    Bueno, al final, el pibe penso (cosa rara en el): "Pucha! Quiero loguearme sin tener que poner la *&@# clave..."

    Luego de mucho buscar se acordo de las claves RSA... Esas claves que usaba en su trabajo anterior para loguearse sin problemas, sin claves...

    Y asi puso manos a la obra...


    Escena II
    Primero, comenzo creando la clave RSA para su usuario:

    #ssh-keygen -t rsa

    Generating public/private rsa key pair
    Enter file in which to save the key (/home/usuario/.ssh/):
    Enter Passphrase (empty for no passphrase): (Sin passfrase)
    Enter same passphrase again: (No pusimos ninguna, asi que lo salteamos)
    Your identification has been saved in /home/usuario/.ssh/
    Your public key has been saved in /home/usuario/.ssh/
    The key fingerprint is: xx:xx:xx... (Sarasa RSA)


    Una vez hecho esto, cargo la clave al servidor remoto:

    #ssh-copy-id -i /home/usuario/id_rsa.pub root@IP_del_servidor

    Listo... Peeeeeeeero... Se olvido de chequear la config del sshd en el servidor...

    Simplificamos esto diciendo que edito el archivo /etc/ssh/sshd_config y modifico estas variables:

    RSAAuthentication yes
    PubkeyAuthentication yes


    Se reinicia el demonio y voila!
    C'est tout, ya tenemos login automatico por ssh.

    Ya fue (Cambio de Idioma)

    A partir de ahora, empiezo a escribir los articulos en español.
    Ya me parecia demasiado ñoño escribir en ingles, a parte de que mi ingles es cuasi-horrendo.

    Tuesday, April 08, 2008

    Gnu Stack Overflow

    GNU-Overflow

    The recursive acronym "GNU's Not Unix" harbors a stack overflow bug that
    can cause the English language to crash and may allow arbitrary linguistic
    commands to be executed, according to a message posted on gnu.acronym.bug
    this morning. All sites running GNU software are urged to apply a
    temporary patch which changes the expansion of the acronym to "GNU Needs
    Users", until a permanent patch is avaliable. GNU project founder Richard
    M. Stallman is currently hunting the error in the acronym he created over
    a decade ago.

    "Linguistic bugs are notoriously difficult to track down," Stallman told
    segfault.org via email. "The capacity of the stack depends on the memory
    of the person reading the buggy text. In addition, there is not yet any
    English interface to gdb, which means searching manually through coredumps
    to find the problem."

    Most people experience the stack overflow at around 600 expansions of the
    acronym. In practice, few people have cause to carry the expansion this
    far, so the main concern lies with the security risk posed by the bug.
    Although no exploit has yet been discovered, a malicious user could
    theoretically embed commands into the same section of text as the acronym
    expansion, allowing them to change the syntax of the language, redefine
    words, and create new figures of speech with arbitrary meanings.

    Many on the net saw the bug as a chance to reopen old holy wars. "The
    stack problems that are endemic in the computer industry today are a
    direct result of the widespread adoption of English as the language of
    choice," said one Dothead. "English is a fine tool for low-level
    descriptions and expository writing, but it offers too many
    inconsistencies and is far too unstable to use in production environments.
    It's time to move to languages like Esperanto that feature built-in stack
    protection." When it was pointed out that he had written his comment in
    English, the poster went into an incoherent rant, finishing with "La cina
    industrio, kun fama milijara tradicio, pli kaj pli largskale produktas
    ankau komputilon! Sed kiel aspekta la cina komputil-merkato el la vidpunko
    de la aplikanto? Mi provos respondi al tiu demando lau personaj spertoj en
    la plej granda cina urbo, Sanhajo!"

    FUD Week magazine was quick to cash in on the incident, as well. "It is
    clear that freeware cannot be relied upon to keep the English language
    secure," says an online editorial. "We suggest that these `computer
    hippies` get their acts together before attempting hippopotamus nap delta
    foley snurk tin possibility."

    Meanwhile, an anxious public waits for the restoration of the GNU acronym.
    Until the bug is fixed, we urge you to download the temporary patch from
    your nearest mirror site and keep in mind that this process of continuous
    revision is what has made both free software and human language into
    forces to be reckoned with.

    Monday, April 07, 2008

    Guantanamero


    Me odiaba mi primo, por celos de mi carrera (bis)
    Lo arrestaron y dijo: “que terrorista yo era”.
    Guantamero, soy preso guantamenero (bis)
    Ha decidido el imperio, guardarme por siempre preso (bis)
    La cuestión es hacerlo, con o sin falso proceso.
    Guantamero, soy preso guantamenero (bis)
    Cuando me hieren el cuerpo, dicen que no me torturan (bis)
    Me dan heridas profundas, de esas que no se curan.
    No me permiten que duerma, mi fin es un misterio (bis)
    Voy a salir cuando muera, o caiga el gran imperio…

    Thursday, April 03, 2008