<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Rubén Ortiz &#187; Software</title> <atom:link href="http://www.rubenortiz.es/category/software/feed/" rel="self" type="application/rss+xml" /><link>http://www.rubenortiz.es</link> <description>Blog personal de Rubén Ortiz</description> <lastBuildDate>Mon, 16 Jan 2012 08:09:38 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <item><title>Zabbix &#8211; reducir tamaño base de datos</title><link>http://www.rubenortiz.es/2012/01/16/zabbix-reducir-tamano-base-de-datos/</link> <comments>http://www.rubenortiz.es/2012/01/16/zabbix-reducir-tamano-base-de-datos/#comments</comments> <pubDate>Mon, 16 Jan 2012 08:09:38 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[zabbix]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=3583</guid> <description><![CDATA[A continuación un comentario breve sobre la base de datos de Zabbix y su peso, comentar que el tema es la tabla history pero con estos tips podemos aligerar el tema. No lo toméis al pie de la letra. 12345678-bash-3.2# du -hs * 105M ibdata1 65M ib_logfile0 65M ib_logfile1 768K mysql 0 mysql.sock 4.0K test [...]]]></description> <content:encoded><![CDATA[<p>A continuación un comentario breve sobre la base de datos de Zabbix y su peso, comentar que el tema es la tabla history pero con estos tips podemos aligerar el tema. No lo toméis al pie de la letra.<br
/> <span
id="more-3583"></span></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">-bash-3.2# du -hs *<br
/> 105M ibdata1<br
/> 65M ib_logfile0<br
/> 65M ib_logfile1<br
/> 768K mysql<br
/> 0 mysql.sock<br
/> 4.0K test<br
/> &lt;strong&gt;46G zabbix&lt;/strong&gt;</div></td></tr></tbody></table></div><p>Paramos el servidor de Zabbix</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># /etc/init.d/zabbix_server stop</div></td></tr></tbody></table></div><p>Optimizamos los datos con mysqlcheck (hay que tener innodb-file-per-table en la configuración)</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># mysqlcheck -uuser -ppassword -o --all-databases</div></td></tr></tbody></table></div><p>Después de la optimización de espacio realizada con el optimize vemos la reducción importante de espacio de la bbdd.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">-bash-3.2# du -hs *<br
/> 105M ibdata1<br
/> 65M ib_logfile0<br
/> 65M ib_logfile1<br
/> 768K mysql<br
/> 0 mysql.sock<br
/> 4.0K test<br
/> 37G zabbix</div></td></tr></tbody></table></div><p>Entonces, realizamos un dump con mysqldump de la misma base de datos, pues vamos a mover la base de datos a una instancia MySQL donde se ejecutará aislada. Volcamos el dump y comprobamos el tamaño final después del proceso:</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">-bash-3.2# du -hs *<br
/> 1.6G ibdata1<br
/> 5.1M ib_logfile0<br
/> 5.1M ib_logfile1<br
/> 900K mysql<br
/> 0 mysql.sock<br
/> 1016K test<br
/> &lt;strong&gt;19G zabbix&lt;/strong&gt;</div></td></tr></tbody></table></div><p>Resumen del proceso:</p><p>1. Paramos Zabbix Server<br
/> 2. Optimización<br
/> 3. Dump<br
/> 4. Volcado<br
/> 5. 69% menos de peso en la base de datos</p> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2012/01/16/zabbix-reducir-tamano-base-de-datos/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Varnish &amp; WordPress &#8211; Ips y comentarios</title><link>http://www.rubenortiz.es/2012/01/10/varnish-wordpress-ips-y-comentarios/</link> <comments>http://www.rubenortiz.es/2012/01/10/varnish-wordpress-ips-y-comentarios/#comments</comments> <pubDate>Tue, 10 Jan 2012 11:50:40 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[varnish]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=5017</guid> <description><![CDATA[Hace unos meses publiqué un tip sobre WP &#038; Varnish, por un tema concreto, el registro correcto de ips en nuestro sistema instalando un módulo, el Rpaf. Es un módulo útil cuando tenemos algún tipo de proxy, o caché, como en este caso varnish. Hace poco he tenido un &#8220;problema&#8221; con un cliente. Al hacer [...]]]></description> <content:encoded><![CDATA[<p>Hace unos meses publiqué un tip sobre WP &#038; Varnish, por un tema concreto, el registro correcto de ips en nuestro sistema instalando un módulo, el Rpaf. Es un módulo útil cuando tenemos algún tipo de proxy, o caché, como en este caso varnish.</p><p><span
id="more-5017"></span></p><p>Hace poco he tenido un &#8220;problema&#8221; con un cliente. Al hacer el split de su backend y frontend, akismet plugin comenzó a filtrar todos los comentarios como spam. Yo no me acordaba de este detalle, el de las variables:</p><p>REMOTE_ADDR<br
/> X_FORWARDER_FOR</p><p>Para arreglar esto hemos de seguir una serie de pasos explicados <a
href="http://www.rubenortiz.es/2011/07/01/varnish-direccion-ip-cliente/">aquí</a> Y adicionalmente, para el tema de los comentarios de WP, hemos de editar (y si alguien sabe otra manera que la diga <img
src='http://www.rubenortiz.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) los archivos:</p><p>wp-includes/comment.php<br
/> wp-content/plugins/akismet/akismet.php</p><p>tendremos que editar estos dos archivos buscando la variable</p><p>REMOTE_ADDR</p><p>y editando por</p><p>HTTP_X_FORWARDED_FOR</p><p>Faltará reiniciar Varnish y ya lo tenemos.</p><p><strong>Links</strong><br
/> <a
href="http://mclear.co.uk/2010/12/03/wordpress-and-varnish-comment-ips/">http://mclear.co.uk/2010/12/03/wordpress-and-varnish-comment-ips/</a></p> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2012/01/10/varnish-wordpress-ips-y-comentarios/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Prestashop &#8211; habilitar modo debug</title><link>http://www.rubenortiz.es/2012/01/05/prestashop-habilitar-modo-debug/</link> <comments>http://www.rubenortiz.es/2012/01/05/prestashop-habilitar-modo-debug/#comments</comments> <pubDate>Thu, 05 Jan 2012 10:43:59 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Prestashop]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[prestashop]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=5010</guid> <description><![CDATA[Útil para cuando queremos investigar errores en Prestashop. En config/config.inc.php modificar estas lineas 12@ini_set('display_errors', 'off'); define('_PS_DEBUG_SQL_', false); por estas otras 12@ini_set('display_errors', 'on'); define('_PS_DEBUG_SQL_', true);]]></description> <content:encoded><![CDATA[<p>Útil para cuando queremos investigar errores en Prestashop. En config/config.inc.php modificar estas lineas</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@ini_set('display_errors', 'off');<br
/> define('_PS_DEBUG_SQL_', false);</div></td></tr></tbody></table></div><p>por estas otras</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@ini_set('display_errors', 'on');<br
/> define('_PS_DEBUG_SQL_', true);</div></td></tr></tbody></table></div> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2012/01/05/prestashop-habilitar-modo-debug/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Percona Server cotejamiento</title><link>http://www.rubenortiz.es/2011/11/11/percona-server-cotejamiento/</link> <comments>http://www.rubenortiz.es/2011/11/11/percona-server-cotejamiento/#comments</comments> <pubDate>Fri, 11 Nov 2011 11:55:32 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[MySql]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[percona]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4933</guid> <description><![CDATA[Estos días trabajamos en Rsystem (ITnet Consulting) el lanzamiento de un proyecto (start-up). El proyecto requería una base de datos MySQL. De inicio montamos Percona Server e hicimos la importación de la base de datos suya de su entorno viejo al nuestro actual. Y es ahí donde nos avisaron del problema. Por defecto, el cotejamiento [...]]]></description> <content:encoded><![CDATA[<p>Estos días trabajamos en Rsystem (ITnet Consulting) el lanzamiento de un proyecto (start-up). El proyecto requería una base de datos MySQL. De inicio montamos Percona Server e hicimos la importación de la base de datos suya de su entorno viejo al nuestro actual. Y es ahí donde nos avisaron del problema. Por defecto, el cotejamiento de Percona Servers es latin. Vamos a cambiarlo a utf para que los carácteres especiales se guarden bien.<br
/> <span
id="more-4933"></span></p><p>Comprobamos que valores tenemos antes de todo</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># mysqladmin -uroot -p variables |grep character<br
/> | character_set_results &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | latin1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_server &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| latin1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_system &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_sets_dir &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| /usr/share/mysql/charsets/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|ç</div></td></tr></tbody></table></div><p>Como podemos ver, latin1 es el _set_server. Vamos a editar my.cnf.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># vim /etc/my.cnf<br
/> character_set_server = utf8<br
/> collation_server = utf8_general_ci</div></td></tr></tbody></table></div><p>Sólo queda entonces rebotar el servicio y volver a comprobar</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/>9<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># mysqladmin -uroot -p variables |grep character<br
/> | character_set_client &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_connection &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_database &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| binary &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_results &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_server &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_set_system &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| utf8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br
/> | character_sets_dir &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| /usr/share/mysq/charsets/ |</div></td></tr></tbody></table></div> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/11/11/percona-server-cotejamiento/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>CACTI &#8211; monitorizar memcached</title><link>http://www.rubenortiz.es/2011/08/17/cacti-monitorizar-memcached/</link> <comments>http://www.rubenortiz.es/2011/08/17/cacti-monitorizar-memcached/#comments</comments> <pubDate>Wed, 17 Aug 2011 13:28:41 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[cacti]]></category> <category><![CDATA[memcached]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4762</guid> <description><![CDATA[Documento fácil y rápido para monitorizar Memcached a través de Cacti. 1234# yum install python-setuptools # wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz # tar xzf python-memcached-&#38;lt;ver&#38;gt;.tar.gz # python setup.py install 1234# wget http://s1.dlnws.com/dealnews/developers/cacti-memcached-1.0.tar.gz # tar xf cacti-memcached-1.0.tar.gz # cd cacti-memcached-1.0 # cp memcached.py /path/to/cacti/scripts/. Comprobamos que funciona 1# python &#60;cacti path&#62;/scripts/memcached.py &#60;hostname&#62; ahora, abrimos Cacti y vamos a Import [...]]]></description> <content:encoded><![CDATA[<p>Documento fácil y rápido para monitorizar Memcached a través de Cacti.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># yum install python-setuptools<br
/> # wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz<br
/> # tar xzf python-memcached-&amp;lt;ver&amp;gt;.tar.gz<br
/> # python setup.py install</div></td></tr></tbody></table></div><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># wget http://s1.dlnws.com/dealnews/developers/cacti-memcached-1.0.tar.gz<br
/> # tar xf cacti-memcached-1.0.tar.gz<br
/> # cd cacti-memcached-1.0<br
/> # cp memcached.py /path/to/cacti/scripts/.</div></td></tr></tbody></table></div><p>Comprobamos que funciona</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># python &lt;cacti path&gt;/scripts/memcached.py &lt;hostname&gt;</div></td></tr></tbody></table></div><p>ahora, abrimos Cacti y vamos a Import Templates e importamos el xml. En este punto, sólo quedará añadir los gráficos a los dispositivos ya creados o bien, añadir dispositivos de 0 con este template.</p><p>Resultado:</p><p><a
href="http://www.rubenortiz.es/wp-content/uploads/2011/08/memcached02.png"><img
src="http://www.rubenortiz.es/wp-content/uploads/2011/08/memcached02-300x121.png" alt="" title="memcached02" width="300" height="121" class="aligncenter size-medium wp-image-4767" /></a></p><p><strong>Links</strong><br
/> <a
href="http://dealnews.com/developers/cacti/memcached.html">http://dealnews.com/developers/cacti/memcached.html</a></p> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/08/17/cacti-monitorizar-memcached/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>MySQL replicación Master a Slave</title><link>http://www.rubenortiz.es/2011/07/08/mysql-replicacion-master-a-slave/</link> <comments>http://www.rubenortiz.es/2011/07/08/mysql-replicacion-master-a-slave/#comments</comments> <pubDate>Fri, 08 Jul 2011 08:42:04 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[MySql]]></category> <category><![CDATA[Software]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4603</guid> <description><![CDATA[Uno de los motivos de implementar replicación de MySQL Master-Slave, puede ser por ejemplo el disponer de una instancia de MySQL Server de nuestra base de datos, que sólo sirva para el acceso a lecturas (SELECT) para diversos fines (estadísticas, backups, repartir lecturas y liberar de carga al MASTER). Vamos a ver como implementarlo en [...]]]></description> <content:encoded><![CDATA[<p>Uno de los motivos de implementar replicación de MySQL Master-Slave, puede ser por ejemplo el disponer de una instancia de MySQL Server de nuestra base de datos, que sólo sirva para el acceso a lecturas (SELECT) para diversos fines (estadísticas, backups, repartir lecturas y liberar de carga al MASTER). Vamos a ver como implementarlo en MySQL 5.0.</p><p><span
id="more-4603"></span></p><p><strong>Metas y  Límites de la replicación</strong></p><ul><li>Distribución de datos</li><li>Balanceo de carga</li><li>Backup</li><li>HA y failover</li><li>Testear upgrades de MySQL</li></ul><ul><li>Una instancia de MySQL SLAVE puede tener sólo un MySQL MASTER</li><li>Cada SLAVE debe tener un único ID server</li><li>Un MASTER puede manejar varios SLAVES</li><li>Un SLAVE puede propagar cambios desde su MASTER y ser a su vez el MASTER de otros SLAVES si habilitas log_slave_updates</li></ul><p><strong>Pasos (BREVE)</strong></p><ul><li>Configurar cuentas de replicación en ambos servidores</li><li>Configurar master y esclavo (editar my.cnf)</li><li>Configurar esclavo para conectar y replicar desde el master</li></ul><p><strong>Escenario</strong></p><p>MASTER = 10.0.0.1, server id 100</p><p>SLAVE = 10.0.0.2, server id 101</p><p>Asumimos que partimos de un MASTER en servicio, es decir, el SLAVE y MASTER no parten ambos desde cero</p><p>&nbsp;</p><p><strong>1. Setup en MASTER</strong></p><p><strong>1.1 Creamos una cuenta de replicación con permisos en la BD master</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># mysql -uroot -p<br
/> # mysql&gt;; use mysql;<br
/> # mysql&gt;; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@’10.0.0.1%’ IDENTIFIED BY ‘replpassword’;</div></td></tr></tbody></table></div><p><strong>1.2. Habilitar binary login and server ID (editar my.cnf)</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># vim /etc/my.cnf<br
/> <br
/> # Replication Master Server (default)<br
/> # binary logging is required for replication<br
/> log-bin=mysql-bin<br
/> server_id=100</div></td></tr></tbody></table></div><p><strong>1.3. Reiniciar MYSQL</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service mysqld restart</div></td></tr></tbody></table></div><p><strong>1.4. Comprobar estado Master</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&gt;;show master status;<br
/> +------------------+----------+--------------+------------------+<br
/> | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br
/> +------------------+----------+--------------+------------------+<br
/> | mysql-bin.000001 | 103874 | | |<br
/> +------------------+----------+--------------+------------------+<br
/> 1 row in set (0.00 sec)</div></td></tr></tbody></table></div><p>Si obtenemos algo como esto es que el archivo de log binario se ha creado correctamente.</p><p><strong>2. Setup SLAVE</strong></p><p><strong>2.1 Creamos una cuenta de replicación con permisos en la BD master</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># mysql -uroot -p<br
/> # mysql&gt; use mysql;<br
/> # mysql&gt;; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@’10.0.0.2%’ IDENTIFIED BY ‘replpassword’;</div></td></tr></tbody></table></div><p>*** NOTA: realmente,  el usuario de replicación sólo necesita privilegios REPLICATION SLAVE en el MASTER y no necesita REPLICATION CLIENT, pero para este tutorial, seguiremos estos pasos</p><div><p><strong>2.2. Editamos my.cnf</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># vim /etc/my.cnf<br
/> <br
/> log-bin=mysql-bin<br
/> server_id=101<br
/> relay_log=mysql-relay-bin<br
/> log_slave_updates=1<br
/> read_only=1</div></td></tr></tbody></table></div><ul><li>relay_log: precisa la ruta y nombre del fichero de log relay</li></ul><ul><li>read _only: evita las writes en el esclavo</li></ul><ul><li>log_slave_updates: guarda los eventos del esclavo en un log</li></ul><p><strong>2.3 Reiniciamos esclavo</strong></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service mysqld restart</div></td></tr></tbody></table></div><p><strong>3. Iniciar replicación</strong></p><p>Necesitamos tres cosas para sincronizar un SLAVE con su MASTER:</p><ul><li>Un snapshot de los datos del maestro en algún punto concreto de tiempo</li><li>El archivo de log actual del master y el byte offset con el log en el punto de tiempo exacto en el que tomaste el snapshot. Nos referiremos a estos dos valores como <strong>coordenadas del archivo log</strong> porque juntas identifican la posición del archivo de log binario. Puedes encontrar las coordenadas del archivo log del master con el comando SHOW MASTER STATUS.</li><li>Los archivos logs binarios del master desde ese momento hasta el presente.</li></ul><p>Hay muchas formas de aplicar la copia de los datos: cold copy, warm copy, mysqldump, lvm snapshot, etc. En este tutorial cubriremos esta:</p><ul><li><strong>Coldcopy:</strong> parar el master, hacer un trasvase de los archivos físicos del master hacia el slave. Levantar el MASTER otra vez, lo que comenzará un nuevo archivo de log binario y utilizar CHANGE MASTER TO para iniciar el SLAVE al principio del archivo de log binario.</li></ul><p>Esta forma tiene un inconveniente MUY CLARO, hay que parar el MASTER en algún momento. Siguiendo la info de <a
href="http://dev.mysql.com/doc/refman/5.1/en/replication-howto-masterstatus.html">http://dev.mysql.com/doc/refman/5.1/en/replication-howto-masterstatus.html</a> tenemos explicado lo mismo de otra forma, vamos a seguir estos pasos:</p><p><strong>3.1 Parada de servicio en MASTER y copia de datos</strong><br
/> Inicia el cliente de MySQL y haz flush de todas las tablas bloqueando los writes ejecutando. No abandonar la consola de MySQL:</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&gt;FLUSH TABLES WITH READ LOCK;</div></td></tr></tbody></table></div><p>Las tablas INNODB también bloquean las operaciones de COMMIT.</p><pre>Warning: Leave the client from which you issued the FLUSH TABLES statement
running so that the read lock remains in effect. If you exit the client, the lock is released.</pre><p>A continuación, en la misma consola, obtenemos la posición de nuestro MASTER después del bloqueo de las tablas:</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&gt; SHOW MASTER STATUS;<br
/> +---------------+----------+--------------+------------------+<br
/> | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br
/> +---------------+----------+--------------+------------------+<br
/> | mysql-bin.003 | 73 | test | manual,mysql |<br
/> +---------------+----------+--------------+------------------+</div></td></tr></tbody></table></div><p>La columna FILE muestra el nombre del archivo de log y la posición muestra el offset del archivo. En este ejemplo, el archivo de log binario es mysql-bin.003 y el offset es el 73. Graba esos valores. Tu necesitarás esto más tarde cuando configures el slave. Esto representa las coordenadas del archivo log en las cuales el slave comenzara a procesar las nuevas actualizaciones desde el master.</p><p>En otra sesión, empeazamos el volcado de datos a un archivo físico con mysqldump</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">shell&gt; mysqldump --all-databases --lock-all-tables &gt; dbdump.sql</div></td></tr></tbody></table></div><p>Cuando el proceso finaliza, desbloqueamos las tablas en la primera sesión abierta en los pasos anteriores</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&gt;UNLOCK TABLES;</div></td></tr></tbody></table></div><p>De nuevo en el SLAVE, deberemos importar y configurar</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">shell&gt; mysql -uuser -ppassword &amp;lt; dbdump.sql</div></td></tr></tbody></table></div><p>Una vez hecho esto, configuramos el SLAVE y comenzamos la replicación. Recuperamos los datos que guardamos previamente en el MASTER cuando hicimos el SHOW MASTER STATUS (punto 3).</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;mysql&gt; CHANGE MASTER TO MASTER_HOST='10.0.0.1', MASTER_USER='repl', MASTER_PASSWORD='replpassword', MASTER_LOG_FILE='mysql-bin.000001 ', MASTER_LOG_POS='103874 ';<br
/> mysql&gt; START SLAVE;</div></td></tr></tbody></table></div><p><strong>Actualización 30/8/2011: </strong> en la parte de esta query, MASTER_LOG_POS=nnnnn, no se ponen comillas, si las ponemos nos devuelve un error</p><p>Revisamos el estado de nuestro SLAVE</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/>9<br
/>10<br
/>11<br
/>12<br
/>13<br
/>14<br
/>15<br
/>16<br
/>17<br
/>18<br
/>19<br
/>20<br
/>21<br
/>22<br
/>23<br
/>24<br
/>25<br
/>26<br
/>27<br
/>28<br
/>29<br
/>30<br
/>31<br
/>32<br
/>33<br
/>34<br
/>35<br
/>36<br
/>37<br
/>38<br
/>39<br
/>40<br
/>41<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&gt; SHOW SLAVE STATUS\G<br
/> *************************** 1. row ***************************<br
/> Slave_IO_State: Waiting for master to send event<br
/> Master_Host:10.0.0.1<br
/> Master_User: slave<br
/> Master_Port: 3306<br
/> Connect_Retry: 60<br
/> Master_Log_File: mysql-bin.000001<br
/> Read_Master_Log_Pos: 951<br
/> Relay_Log_File: mysqld-relay-bin.000001<br
/> Relay_Log_Pos: 251<br
/> Relay_Master_Log_File: mysql-bin.000001<br
/> Slave_IO_Running: Yes<br
/> Slave_SQL_Running: Yes<br
/> Replicate_Do_DB:<br
/> Replicate_Ignore_DB:<br
/> Replicate_Do_Table:<br
/> Replicate_Ignore_Table:<br
/> Replicate_Wild_Do_Table:<br
/> Replicate_Wild_Ignore_Table:<br
/> Last_Errno: 0<br
/> Last_Error:<br
/> Skip_Counter: 0<br
/> Exec_Master_Log_Pos: 951<br
/> Relay_Log_Space: 407<br
/> Until_Condition: None<br
/> Until_Log_File:<br
/> Until_Log_Pos: 0<br
/> Master_SSL_Allowed: No<br
/> Master_SSL_CA_File:<br
/> Master_SSL_CA_Path:<br
/> Master_SSL_Cert:<br
/> Master_SSL_Cipher:<br
/> Master_SSL_Key:<br
/> Seconds_Behind_Master: 382<br
/> Master_SSL_Verify_Server_Cert: No<br
/> Last_IO_Errno: 0<br
/> Last_IO_Error:<br
/> Last_SQL_Errno: 0<br
/> Last_SQL_Error:<br
/> 1 row in set (0.00 sec)</div></td></tr></tbody></table></div><p>A partir de este momento, los &#8220;Second Behind Master&#8221; disminuirán progresivamenet hasta 0.</p><p><strong>Links</strong></p><ul><li><a
title="Replication HowTo MySQL" href="http://dev.mysql.com/doc/refman/5.1/en/replication-howto-masterstatus.html">http://dev.mysql.com/doc/refman/5.1/en/replication-howto-masterstatus.html</a></li><li><a
title="Replication HowTo MySQL DUMP" href="http://dev.mysql.com/doc/refman/5.1/en/replication-howto-mysqldump.html">http://dev.mysql.com/doc/refman/5.1/en/replication-howto-mysqldump.html</a></li></ul><p>&nbsp;</p></div> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/07/08/mysql-replicacion-master-a-slave/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Varnish &#8211; dirección IP cliente</title><link>http://www.rubenortiz.es/2011/07/01/varnish-direccion-ip-cliente/</link> <comments>http://www.rubenortiz.es/2011/07/01/varnish-direccion-ip-cliente/#comments</comments> <pubDate>Fri, 01 Jul 2011 10:37:38 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Varnish]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4566</guid> <description><![CDATA[Por defecto, sino modificamos nada del comportamiento de Varnish, podemos tener algún problemilla, con el tema del acceso de las IPs. Hacemos una petición a la IP del servidor Varnish, Varnish la transmite al backend y la devuelve. Pero en los logs del backend, sino lo tenemos bien configurado, veremos como que la IP registrada [...]]]></description> <content:encoded><![CDATA[<p>Por defecto, sino modificamos nada del comportamiento de Varnish, podemos tener algún problemilla, con el tema del acceso de las IPs. Hacemos una petición a la IP del servidor Varnish, Varnish la transmite al backend y la devuelve. Pero en los logs del backend, sino lo tenemos bien configurado, veremos como que la IP registrada no es la nuestra, sino la del propio varnish server. O más sencillo, si trabajamos por ejemplo con un backend con PHP veremos que la variable REMOTE_ADDR nos devuelve la IP del servidor Varnish, no la IP del cliente original. Si trabajamos con Apache, nos será fácil corregir esto con el <strong>mod_rpaf</strong>. Además, hay que editar el archivo de VCL para modificar este comportamiento.<br
/> <span
id="more-4566"></span><br
/> Si leemos la documentación de Varnish, esto ya pertenece a la categoría de <a
href="https://www.varnish-cache.org/docs/2.1/faq/http.html">FAQs</a>.</p><blockquote><p>&#8220;We will need to add the IP address to a header used for the backend request, and configure the backend to log the content of this header instead of the address of the connecting client (which is the varnish server).&#8221;</p></blockquote><p>La parte del log no la veremos de momento. El entorno en el que trabajaremos es Varnish + Apache. Primero, probaremos a utilizar los consejos de las FAQs de Varnish. Editamos el fichero de VCL y reiniciamos el servicio para ver que cambios se producen. Para eso subiremos un archivo a web, para que podamos comprobar rápido los cambios.</p><p>1. Editamos el fichero VCL</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;strong&gt;# vim /etc/varnish/default.vlc&lt;/strong&gt;</div></td></tr></tbody></table></div><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sub vcl_recv {<br
/> # Configuramos un header unico que contiene la direccion del cliente<br
/> remove req.http.X-Forwarded-For;<br
/> set &nbsp; &nbsp;req.http.X-Forwarded-For = client.ip;<br
/> # [...]<br
/> }</div></td></tr></tbody></table></div><p>2. Reiniciamos y comprobamos la variable PHP(es una opción). Podemos subir este código para ver los cambios</p><div
class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/>9<br
/>10<br
/>11<br
/>12<br
/>13<br
/></div></td><td><div
class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span
style="color: #000088;">$clientip</span> <span
style="color: #339933;">=</span> <span
style="color: #000088;">$_SERVER</span><span
style="color: #009900;">&#91;</span><span
style="color: #0000ff;">'HTTP_CLIENT_IP'</span><span
style="color: #009900;">&#93;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$remoteaddr</span> <span
style="color: #339933;">=</span> <span
style="color: #000088;">$_SERVER</span><span
style="color: #009900;">&#91;</span><span
style="color: #0000ff;">'REMOTE_ADDR'</span><span
style="color: #009900;">&#93;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #000088;">$xforwardedfor</span> <span
style="color: #339933;">=</span> <span
style="color: #000088;">$_SERVER</span><span
style="color: #009900;">&#91;</span><span
style="color: #0000ff;">'HTTP_X_FORWARDED_FOR'</span><span
style="color: #009900;">&#93;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">echo</span> <span
style="color: #0000ff;">&quot;<br
/> &nbsp; &nbsp; &lt;li&gt;HTTP_CLIENT_IP: &nbsp;<span
style="color: #006699; font-weight: bold;">$clientip</span>&lt;/li&gt;<br
/> <span
style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">echo</span> <span
style="color: #0000ff;">&quot;<br
/> &nbsp; &nbsp; &lt;li&gt;REMOTE_ADDR: &nbsp;<span
style="color: #006699; font-weight: bold;">$remoteaddr</span>&lt;/li&gt;<br
/> <span
style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span
style="color: #339933;">;</span><br
/> <span
style="color: #b1b100;">echo</span> <span
style="color: #0000ff;">&quot;<br
/> &nbsp; &nbsp; &lt;li&gt;HTTP_X_FORWARDED_FOR: &nbsp;<span
style="color: #006699; font-weight: bold;">$xforwardedfor</span>&lt;/li&gt;<br
/> <span
style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span
style="color: #339933;">;</span><br
/> ?<span
style="color: #339933;">&amp;</span>gt<span
style="color: #339933;">;</span></div></td></tr></tbody></table></div><p>3. Casi seguro que, aún a pesar de haber modificado correctamente nuestro fichero VCL, no conseguimos ver correctamente nuestra IP. El &#8220;problema&#8221; como vemos está a caballo entre Apache y Varnish. Necesitamos un paso más, si queremos seguir utilizando la caché de Varnish conjuntamente con nuestro Apache. Se trata de instalar el mod Rpaf.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/>9<br
/>10<br
/>11<br
/>12<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># cd /root/<br
/> # wget http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz<br
/> # tar zxvf mod_rpaf-0.6.tar.gz<br
/> # cd mod_rpaf-0.6<br
/> # sed -i 's/APXS2=\$(shell which \(apxs2\))/APXS2=\$(shell which apxs)/' Makefile<br
/> # make rpaf-2.0 &amp;amp;&amp;amp; make install-2.0<br
/> # echo &quot;LoadModule rpaf_module modules/mod_rpaf-2.0.so&quot; &amp;gt;&amp;gt; /etc/httpd/conf.d/mod_rpaf.conf<br
/> # echo &quot;RPAFenable On&quot; &amp;gt;&amp;gt; /etc/httpd/conf.d/mod_rpaf.conf<br
/> # echo &quot;RPAFsethostname On&quot; &amp;gt;&amp;gt; /etc/httpd/conf.d/mod_rpaf.conf<br
/> # echo &quot;RPAFproxy_ips 127.0.0.1&quot; &amp;gt;&amp;gt; /etc/httpd/conf.d/mod_rpaf.conf<br
/> # echo &quot;RPAFheader X-Forwarded-For&quot; &amp;gt;&amp;gt; /etc/httpd/conf.d/mod_rpaf.conf<br
/> # service httpd restart</div></td></tr></tbody></table></div><p>4. Ahora deberíamos poder reiniciar Varnish y al comprobar de nuevo el código, observar que ya nos muestra la IP correcta.</p><p><strong>Links</strong></p><ul><li><a
href="https://www.varnish-cache.org/docs/2.1/faq/http.html">https://www.varnish-cache.org/docs/2.1/faq/http.html</a></li><li><a
href="http://www.stderr.net/apache/rpaf/download/">http://www.stderr.net/apache/rpaf/download/</a></li><li><a
href="http://giantdorks.org/alain/easily-get-the-correct-client-ip-with-mod_rpaf/">http://giantdorks.org/alain/easily-get-the-correct-client-ip-with-mod_rpaf</a></li><li><a
href="https://wiki.fourkitchens.com/display/PF/Workaround+for+Varnish+X-Forwarded-For+bug">https://wiki.fourkitchens.com/display/PF/Workaround+for+Varnish+X-Forwarded-For+bug</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/07/01/varnish-direccion-ip-cliente/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Varnish &#8211; mostrar configuracion</title><link>http://www.rubenortiz.es/2011/06/28/varnish-mostrar-configuracion/</link> <comments>http://www.rubenortiz.es/2011/06/28/varnish-mostrar-configuracion/#comments</comments> <pubDate>Tue, 28 Jun 2011 10:43:23 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Varnish]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4546</guid> <description><![CDATA[Para saber la configuración actual de nuestro Varnish, ejecutaremos: telnet &#60;IP&#62; &#60;Puerto&#62; Escape character is &#8216;^]&#8217;. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Varnish Cache CLI 1.0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Linux,-sfile,-hcritbit Type &#8216;help&#8217; for command list. Type &#8216;quit&#8217; to close CLI session. param.show y así nos printará por pantalla, la configuración actual de nuestro Varnish]]></description> <content:encoded><![CDATA[<p>Para saber la configuración actual de nuestro Varnish, ejecutaremos:</p><p>telnet &lt;IP&gt; &lt;Puerto&gt;</p><p><span
id="more-4546"></span></p><p>Escape character is &#8216;^]&#8217;.<br
/> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br
/> Varnish Cache CLI 1.0<br
/> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br
/> Linux,-sfile,-hcritbit</p><p>Type &#8216;help&#8217; for command list.<br
/> Type &#8216;quit&#8217; to close CLI session.</p><p>param.show</p><p>y así nos printará por pantalla, la configuración actual de nuestro Varnish</p> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/06/28/varnish-mostrar-configuracion/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP &#8211; APC tunning</title><link>http://www.rubenortiz.es/2011/06/23/php-apc-tunning/</link> <comments>http://www.rubenortiz.es/2011/06/23/php-apc-tunning/#comments</comments> <pubDate>Thu, 23 Jun 2011 10:23:40 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[Php]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[php]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4534</guid> <description><![CDATA[Recientemente, en una despliegue de infraestructura, he configurado APC como caché de PHP. En un primer momento, no le presté mucha atención. Más tarde, comprobé que no tenía un funcionamiento correcto. Con el paquete de APC, viene el fichero apc.php, un fichero que genera estadísticas en tiempo real sobre el rendimiento de la caché. Lo [...]]]></description> <content:encoded><![CDATA[<p>Recientemente, en una despliegue de infraestructura, he configurado <a
title="APC PHP" href="http://pecl.php.net/APC">APC</a> como caché de PHP. En un primer momento, no le presté mucha atención. Más tarde, comprobé que no tenía un funcionamiento correcto. Con el paquete de APC, viene el fichero apc.php, un fichero que genera estadísticas en tiempo real sobre el rendimiento de la caché. Lo que vi fue esto&#8230;</p><p><span
id="more-4534"></span></p><p><a
href="http://www.rubenortiz.es/wp-content/uploads/2011/06/APC-fragmentado.jpg"><img
class="aligncenter size-medium wp-image-4538" title="APC-fragmentado" src="http://www.rubenortiz.es/wp-content/uploads/2011/06/APC-fragmentado-300x160.jpg" alt="" width="300" height="160" /></a></p><p>Salta a la vista, el pésimo rendimiento por entonces de la caché. Básicamente, se trataba de un site con bastante tráfico y la configuración por defecto es de</p><p>apc.shm_size =&gt; 32M =&gt; 32M</p><p>lo cual se quedó corto y comenzó a afectar a la fragmentación de la caché en memoria. El único remedio que conseguí aplicar y que funcionó fue aumentar el tamaño de la caché asignada</p><p>apc.shm_size =&gt; 32M =&gt; 256M</p><p>A partir de entonces, después del reinicio del servidor web, la caché presentaba este aspecto, mucho más saludable.</p><p><a
href="http://www.rubenortiz.es/wp-content/uploads/2011/06/APC-nofragmentado.jpg"><img
class="aligncenter size-medium wp-image-4540" title="APC-nofragmentado" src="http://www.rubenortiz.es/wp-content/uploads/2011/06/APC-nofragmentado-300x133.jpg" alt="" width="300" height="133" /></a></p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/>9<br
/>10<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;strong&gt;# cat /etc/php.d/apc.ini&lt;/strong&gt;<br
/> extension=apc.so<br
/> [APC]<br
/> apc.enabled = 1<br
/> apc.shm_segments = 1<br
/> apc.shm_size = 256M<br
/> apc.optimization = 0<br
/> apc.ttl = 7200<br
/> apc.user_ttl = 7200<br
/> apc.num_files_hint = 1000</div></td></tr></tbody></table></div><p><strong>Links</strong></p><ul><li><a
href="http://www.techrepublic.com/article/cache-php-scripts-with-apc-module/6109703">http://www.techrepublic.com/article/cache-php-scripts-with-apc-module/6109703</a></li><li><a
href="http://www.howtoforge.com/apc-php5-apache2-fedora8">http://www.howtoforge.com/apc-php5-apache2-fedora8</a></li><li><a
href="http://chrisgilligan.com/tag/php-ini-apc-settings/">http://chrisgilligan.com/tag/php-ini-apc-settings/</a></li><li><a
href="http://www.christianmontoya.com/2008/10/01/upgrading-php-and-installing-apc-on-centos-5-with-plesk/">http://www.christianmontoya.com/2008/10/01/upgrading-php-and-installing-apc-on-centos-5-with-plesk/</a></li><li><a
href="http://www.imminentweb.com/technologies/tune-apc-improve-php-performance">http://www.imminentweb.com/technologies/tune-apc-improve-php-performance</a></li><li><a
href="http://techzeus.com/install-configure-fine-tune-apc-alternative-php-cache-to-cut-down-cpu-load-on-server.html">http://techzeus.com/install-configure-fine-tune-apc-alternative-php-cache-to-cut-down-cpu-load-on-server.html</a></li><li><a
href="http://2bits.com/articles/importance-tuning-apc-sites-high-number-drupal-modules.html">http://2bits.com/articles/importance-tuning-apc-sites-high-number-drupal-modules.html</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/06/23/php-apc-tunning/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>MySQL 5.5</title><link>http://www.rubenortiz.es/2011/05/24/mysql-5-5/</link> <comments>http://www.rubenortiz.es/2011/05/24/mysql-5-5/#comments</comments> <pubDate>Tue, 24 May 2011 11:56:58 +0000</pubDate> <dc:creator>Rubén Ortiz</dc:creator> <category><![CDATA[MySql]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[mysql]]></category> <guid
isPermaLink="false">http://www.rubenortiz.es/?p=4484</guid> <description><![CDATA[En otro post, trataremos la instalación de MySQL 5.5 en CentOS, que por cierto, la primera vez no es sencilla. MySQL 5.5 se convirtió en estable el 15 de diciembre de 2010. Ahora descubro que GA es Generally Available , vaya tela&#8230; En definitiva, algunos patchs de google incorporados a la suite 5.5, hacen más [...]]]></description> <content:encoded><![CDATA[<p>En otro post, trataremos la instalación de MySQL 5.5 en CentOS, que por cierto, la primera vez no es sencilla. MySQL 5.5 se convirtió en estable el 15 de diciembre de 2010. Ahora descubro que GA es Generally Available <img
src='http://www.rubenortiz.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , vaya tela&#8230; En definitiva, algunos patchs de google incorporados a la suite 5.5, hacen más que probable que 5.5 tenga un rendimiento bastante superior a otras versiones. Lo digo sin todavía haber hecho los pertinentes test. Pero tiene buenta pinta.<span
id="more-4484"></span></p><p><strong>Características principales</strong></p><p>El lanzamiento de MySQL 5.5 aporta mejoras en la personalización y escalabilidad.</p><p>Escalabilidad y mejora del rendimiento: MySQL Database y motor de almacenamiento InnoDB han sido mejorados para aportar un óptimo rendimiento y escalabilidad para aprovechar los últimos avances  en plataformas multi-CPU y multi-core (SMP).</p><p>En los entornos que soporten esta característica, se utilizan instrucciones atómicas de la CPU para mejorar el rendimiento de los RW-locks(mutex que permite múltiples lectores). Hay una variable de estado de MySQL que permite conocer si esta característica se soporta en nuestro sistema o instalación.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&amp;gt; show status like 'Innodb_have_atomic%';<br
/> +-----------------------------+-------+<br
/> | Variable_name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Value |<br
/> +-----------------------------+-------+<br
/> | Innodb_have_atomic_builtins | ON &nbsp; &nbsp;|<br
/> +-----------------------------+-------+<br
/> 1 row in set (0.00 sec)</div></td></tr></tbody></table></div><p>Nuevas variables a configurar para mejorar el rendimiento en base a múltiples threads de lectura y de escritura</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/>8<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&amp;gt; show variables like 'innodb_%_io_threads';<br
/> +-------------------------+-------+<br
/> | Variable_name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Value |<br
/> +-------------------------+-------+<br
/> | innodb_read_io_threads &nbsp;| 4 &nbsp; &nbsp; |<br
/> | innodb_write_io_threads | 4 &nbsp; &nbsp; |<br
/> +-------------------------+-------+<br
/> 2 rows in set (0.00 sec)</div></td></tr></tbody></table></div><p>Disponemos de innodb_io_capacity, otro patch de google, que permite configurar el número de operaciones de entrada/salida por segundos. Anteriormente, limitada por defecto a 100, ahora aumentada a 200.</p><div
class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table
cellspacing="0" cellpadding="0"><tbody><tr><td
style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br
/>2<br
/>3<br
/>4<br
/>5<br
/>6<br
/>7<br
/></div></td><td><div
class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql&amp;gt; show variables like 'innodb_io_%';<br
/> +--------------------+-------+<br
/> | Variable_name &nbsp; &nbsp; &nbsp;| Value |<br
/> +--------------------+-------+<br
/> | innodb_io_capacity | 200 &nbsp; |<br
/> +--------------------+-------+<br
/> 1 row in set (0.00 sec)</div></td></tr></tbody></table></div><p>mysql&gt;</p><p>InnoDB motor por defecto: Ahora, desde la versión MySQL 5.5, InnoDB es el motor de almacenamiento por defecto de la base de datos MySQL, entrega de transacciones ACID, integridad referencial y sistema de recuperación de desastres.</p><p>Alta-Disponibilidad: nueva replicación semi-sincrona, se supone que el sistema de replicación es ahora más eficaz y consistente</p><p>Usabilidad mejorada: índices mejorados y particionamiento de tablas, soporte SIGNAL/RESIGNAL y diagnósticos mejorados, incluyendo un nuevo PERFORMANCE_SCHEMA, mejorada la administración de MySQL 5.5.</p><p><strong>Mejoras en el rendimiento</strong><br
/> Teóricamente, la suite MySQL 5.5 ofrece mejoras en el rendimiento versus la suite 5.1. Hasta un 360 % de ganancia en operaciones Read/Write y hasta 200 % de mejoras sólo en Read Only.</p><p><strong>Links</strong></p><ul><li><a
href="http://www.oracle.com/us/corporate/press/195726">http://www.oracle.com/us/corporate/press/195726</a></li><li><a
href="http://dev.mysql.com/doc/refman/5.5/en/smp-improvements.html">http://dev.mysql.com/doc/refman/5.5/en/smp-improvements.html</a></li><li><a
href="http://mysqlha.blogspot.com/2008/10/more-background-io-threads-for-innodb.html">http://mysqlha.blogspot.com/2008/10/more-background-io-threads-for-innodb.html</a></li><li><a
href="http://mysqlha.blogspot.com/2008/12/innodb-insert-performance.html">http://mysqlha.blogspot.com/2008/12/innodb-insert-performance.html</a></li><li><a
href="http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html">http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html</a></li><li><a
href="http://systemadmin.es/2011/01/mysql-5-5-nuevas-caracteristicas">http://systemadmin.es/2011/01/mysql-5-5-nuevas-caracteristicas</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://www.rubenortiz.es/2011/05/24/mysql-5-5/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Dynamic Page Served (once) in 0.679 seconds -->

