Posts Tagged ‘Apache’

Memcached

Wednesday, September 2nd, 2009

Wow!

I’m in charge of a site that uses a lot of resources, thousands of images, thousands of db rows and literally thousands of visitors each day. We are currently getting approximately 60 to 70 thousand visitors but the thing is that by the time we get to 60 thousand the server starts to slow down. The require for images, queries and number of petitions per second made us think of a redesign of the site.

First step was to load the balance between 2 servers for http request and for database queries. Each server will have its own database and web code. Over those servers we put a load balancer hardware.

Second step was clean the database, eliminate duplicated rows and reindex fields. Throw away those fields that were not used and improve queries.

Third step was cleaning up the code, delete lines of unused code and repurpose a couple of functions. We also set a template engine (Smarty).

Now it seems the site is working fine server speed improved but still the database queries were too slow… what was left to do? Memcache!

First install memcache on the server. In my case I’m running CentOS so I just had to do:

yum install memcached

Then install php’s memcache support:

yum install php-pecl-memcache

Restart httpd and then type the following command on your server’s console

memcached -d -u apache -m 512 -p 11211

What this does is that it starts the memcached daemon with apache user privileges usin 512 Mb of RAM memory and using port 11211.

Since you’ll be needing port 11211 don’t forget to check your iptables config so you may be able to use it.

That’s it! everything is ready, the only thing left is modify your php’s code and you’re on your way.

I haven’t tested it but to be honest I really think it will save us lot’s of resources from the server. I’ll post the result in a few days.

esgay.com

Monday, August 24th, 2009

Bueno, ya todo mundo conoce esta página muy famosa por la broma y por las dificultades por las que atravesó.
No quiero entrar en detalles pues la página explica muy detalladamente los problemas legales en los que se metió. Mi interés corre por la parte de su funcionamiento.
Para quien no lo sepa la broma funciona así: link
En mi trabajo les interesó muchísimo saber cómo se hace esto y pues obviamente me encargaron la tarea de hacer algo que funcionara igual.
Si no sabes nada de Apache y PHP este tema será muy confuso pero es muy sencillo y he podido reproducirlo.
El truco consiste en dos cosas:
1. Modificar un par de cosas del servidor web.
2. Generar un script que pinte lo que quieras.
En realidad ambos pasos son muy sencillos; para el primero basta decirle al servidor web que acepte cualquiser subdominio. Esto es que si tenemos un dominio como midominio.com nuestro servidor deberá aceptar tantos subdominios como a mí se me ocurra: juanito.midominio.com, el.subdominio.midominio.com, etc.
Cómo se hace? Mira aquí.
Para el punto 2 les dejo esta liga.
Para verla funcionando prueben poniendo su nombre separado por puntos antes de esgay.lamp-ios.com como por ejemplo (nombre ficticio, no alude a ninguna persona):jaime.godinez.martinez.esgay.lamp-ios.com
Quería continuar con el tema de ayer pero ya me dió sueño, al rato pondré más info.
Saludos