Archive of January 2010
En resumen, nuestra clase política
- "No vamos a llegar a los cuatro millones de parados." Enlace
"El paro supera los cuatro millones de personas por primera vez en la historia" Enlace
- "Zapatero no aceptará "chantajes" ni "cantos cínicos" de los que le piden reducir el gasto social" Enlace
"El Gobierno aprobará hoy un plan de austeridad para recortar en 50.000 millones el gasto del Estado" Enlace
- "Zapatero dice que no tiene intención de subir los impuestos" Enlace
"El Gobierno subirá el IVA dos puntos a partir de julio de 2010" Enlace
- "El Gobierno desmiente a Ordóñez y dice que no peligran las pensiones" Enlace
"Zapatero ve "razonable" retrasar la jubilación para subir las pensiones mínimas y asegurar el futuro del sistema" Enlace
- "Zapatero cree precisas medidas de austeridad para superar la crisis" Enlace
"576 millones de euros hasta 2015 para ayudar al cine español" Enlace
- "El Gobierno inyectará 30.000 millones a bancos y cajas para que den créditos" Enlace
"Zapatero ayuda a la banca... y los directivos de los bancos se suben el sueldo" Enlace
- "No se va a cerrar ninguna página web" Enlace
"Aprobada la ley que permitirá cerrar y bloquear webs con autorización judicial" Enlace
- "No hay riesgo de crisis económica" Enlace
"Zapatero reclama un gran pacto social para superar la crisis" Enlace
- "Zapatero pide el voto para fortalecer los brotes verdes" Enlace
"La sangría continúa: 2010 arrancará destruyendo 250.000 empleos más" Enlace
Así funciona este país. Ahora es el PSOE el que se llena los bolsillos, luego será el PP, de nuevo volverá el PSOE... y de mientras la sociedad jaleando a uno o a otro como si de un partido de fútbol se tratase, sin darse cuenta que todos son LA MISMA PUTA MIERDA.
Particionado Lógico (Parte III)
Gracias a information_schema es posible saber el tamaño que ocupan las tablas de nuestras bases de datos.
Toda la información que nos ofrece information_schema en relación con las tablas es la siguiente:
mysql> desc tables; +-----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+-------+ | TABLE_CATALOG | varchar(512) | YES | | NULL | | | TABLE_SCHEMA | varchar(64) | NO | | | | | TABLE_NAME | varchar(64) | NO | | | | | TABLE_TYPE | varchar(64) | NO | | | | | ENGINE | varchar(64) | YES | | NULL | | | VERSION | bigint(21) | YES | | NULL | | | ROW_FORMAT | varchar(10) | YES | | NULL | | | TABLE_ROWS | bigint(21) | YES | | NULL | | | AVG_ROW_LENGTH | bigint(21) | YES | | NULL | | | DATA_LENGTH | bigint(21) | YES | | NULL | | | MAX_DATA_LENGTH | bigint(21) | YES | | NULL | | | INDEX_LENGTH | bigint(21) | YES | | NULL | | | DATA_FREE | bigint(21) | YES | | NULL | | | AUTO_INCREMENT | bigint(21) | YES | | NULL | | | CREATE_TIME | datetime | YES | | NULL | | | UPDATE_TIME | datetime | YES | | NULL | | | CHECK_TIME | datetime | YES | | NULL | | | TABLE_COLLATION | varchar(64) | YES | | NULL | | | CHECKSUM | bigint(21) | YES | | NULL | | | CREATE_OPTIONS | varchar(255) | YES | | NULL | | | TABLE_COMMENT | varchar(80) | NO | | | | +-----------------+--------------+------+-----+---------+-------+ 21 rows in set (0.00 sec)
Por ejemplo, si queremos calcular el tamaño de los índices:
mysql> select sum(index_length) from information_schema.tables; +-------------------+ | sum(index_length) | +-------------------+ | 11746971648 | +-------------------+ 1 row in set (3.32 sec)
El valor es en bytes, por lo que el tamaño de los índices es de aproximadamente 11 GB. No está nada mal.
Otra forma de sacar un buen resumen con más datos es la siguiente sentencia SQL que encontramos en mysqlperformanceblog.com:
mysql> SELECT -> count(*) TABLES -> ,concat(round(sum(table_rows)/1000000,2),'K') rows -> ,concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA -> ,concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx -> ,concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size -> ,round(sum(index_length)/sum(data_length),2) idxfrac -> FROM -> information_schema.TABLES; +--------+---------+--------+--------+------------+---------+ | TABLES | rows | DATA | idx | total_size | idxfrac | +--------+---------+--------+--------+------------+---------+ | 929 | 301.52K | 15.73G | 10.94G | 26.67G | 0.70 | +--------+---------+--------+--------+------------+---------+ 1 row in set (3.75 sec)
Tenemos el número de tablas, filas, tamaño de los datos, índices, tamaño total y la proporción índices/datos.
Si lo que deseamos es saber los datos de una tabla en particular, solo es necesario hacer una busqueda más concreta. De esta forma sabremos, por ejemplo, la tabla candidata para el particionado:
mysql> SELECT -> count(*) TABLES -> ,concat(round(sum(table_rows)/1000000,2),'K') rows -> ,concat(round(sum(data_length)/(1024*1024*1024),2),'G') DATA -> ,concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx -> ,concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size -> ,round(sum(index_length)/sum(data_length),2) idxfrac -> FROM -> information_schema.TABLES -> WHERE table_name LIKE '%log%'; +--------+---------+-------+-------+------------+---------+ | TABLES | rows | DATA | idx | total_size | idxfrac | +--------+---------+-------+-------+------------+---------+ | 8 | 192.81K | 7.05G | 8.94G | 15.99G | 1.27 | +--------+---------+-------+-------+------------+---------+ 1 row in set (1.76 sec)
En nuestro caso, prácticamente todos los datos pertenecen a la tabla log. Sus indices son mayores que la memoria RAM del equipo (4 GB) por lo que tendríamos una tabla perfecta para particionar. Cuando INDICES > RAM, particionar se hace más rápido que usar índices :)
Estadísticas de SlideShare
Hoy los de Slideshare me han enviado las estadísticas de las trasparencias que tengo publicadas en su web. La verdad es que los datos son interesantes y mucho mejores de lo que me esperaba:
In 2009, you uploaded 9 presentations and got:
17498 views
1944 average views per presentation
10 favorites
4 followers
Your most popular presentation was:
Administración Zimbra
Las 10 novedades de Wii para el 2010
A continuación, las 10 novedades de la consola más vendida entre casuals.
1- 2- 3- 4- 5- 6- 7- 8- 9- 10-
Realmente impresionante, estamos ante una revolución del mundo del videojuego.
Desactivar el Fixup Smtp de Cisco
Si tienes un firewall Cisco entre tu red y el resto del mundo, tendrás problemas con los correos salientes. Por ejemplo, hacer algo tan simple como un relay de tu smtp interno a uno externo no funcionará. Si tienes postfix, este será el mensaje que verás en el log:
postfix/smtp: enabling PIX workarounds: disable_esmtp delay_dotcrlf for ironmail.irontec.com:25
La solución es ejecutar lo siguiente en el Cisco:
en
conf t
no fixup smtp
^Z
wr mem
El origen de este problema es el uso de un Firewall Cisco bugeado:
smtp_pix_workarounds (default: disable_esmtp, delay_dotcrlf)
A list that specifies zero or more workarounds for CISCO PIX firewall bugs. These workarounds are implemented by the Postfix SMTP client. Workaround names are separated by comma or space, and are case insensitive. This parameter setting can be overruled with per-destination smtp_pix_workaround_maps settings.
delay_dotcrlf
Insert a delay before sending ".
disable_esmtp
Disable all extended SMTP commands: send HELO instead of EHLO.
This feature is available in Postfix 2.4 and later. The default settings are backwards compatible with earlier Postfix versions.



