<?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>Hosting Al Descubierto &#187; apache</title>
	<atom:link href="http://hostingaldescubierto.com/wordpress/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://hostingaldescubierto.com/wordpress</link>
	<description>Ayuda plesk  hosting, servidores dedicados y virtuales. ¿ problemas con spam, migraciones, installar aplicaciones ? podemos ayudarte</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:44:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[php] Depurando / Profiling en php ( II )</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-depurando-profiling-en-php-ii</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:42:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apd]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/?p=371</guid>
		<description><![CDATA[En este caso analizamos un hecho real, una web que tarda en cargar aleatoriamente entre 10 y 12 segundos. El problema es que al medir los tiempos en otro servidor no llega a 2 segundos. Después de revisar conectividad, carga de sistema, carga de apache &#8230; y demás parámetros habituales; todo estaba perfecto. Así que [...]]]></description>
			<content:encoded><![CDATA[<p>En este caso analizamos un hecho real, una web que tarda  en cargar aleatoriamente entre 10 y 12 segundos. El problema es que al medir los tiempos en otro servidor no llega a 2 segundos. Después de revisar conectividad, carga de sistema, carga de apache &#8230; y demás parámetros habituales; todo estaba perfecto. Así que decidimos relizar el profiling de la web para localizar el cuello de botella dentro de los scripts php.</p>
<p>En el artículo anterior <a href="http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/">[php] Depurando / Profiling en php ( I )</a> dejamos instalado el módulo APD para capturar la información necesaria y luego procesarla. Recordamos que hay que usar la función <span style="color: #000000;"> <em>apd_set_pprof_trace();</em></span> para que se generen los datos. En nuestro caso hemos seleccionado la ruta /tmp en donde se almacenarán estos ficheros.</p>
<p>Ejecutamos unos cuantas veces el script php que nos interesa. Generamos una captura de una ejecución en 1-2 segundos (<em>/tmp/pprof.32231.1</em>) y seguimos ejecutando hasta que conseguimos una captura de datos de una ejecución que tardó unos 10-11 segundos (<em>/tmp/pprof.01666.0</em>)</p>
<p>Vamos a comparar la captura de los datos :</p>
<p>La ejecución buena :</p>
<pre># pprofp -R /tmp/pprof.32231.1

Trace for /var/www/vhosts/hostingaldescubierto.com/httpdocs/index.php
Total Elapsed Time = 0.36
Total System Time  = 0.03
Total User Time    = 0.07

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.36  0.00 0.07  0.00 0.03     1  0.0000   0.3589            0 main
96.1 0.00 0.34  0.00 0.08  0.00 0.03     5  0.0000   0.0690            0 require_once
59.1 0.00 0.21  0.00 0.01  0.00 0.00     8  0.0000   0.0265            0 include
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2113            0 call_user_func_array
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2113            0 Pages-&gt;index
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2112            0 Pages-&gt;show
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2112            0 Template-&gt;build
58.8 0.00 0.21  0.00 0.01  0.00 0.00     2  0.0000   0.1054            0 MY_Loader-&gt;view
58.6 0.00 0.21  0.00 0.01  0.00 0.00     2  0.0000   0.1052            0 MY_Loader-&gt;_ci_load
56.8 0.00 0.20  0.00 0.00  0.00 0.00     1  0.0000   0.2038            0 weather_google_api
56.8 0.20 0.20  0.00 0.00  0.00 0.00     1  0.2037   0.2037            0 simplexml_load_file
29.4 0.00 0.11  0.00 0.05  0.00 0.02     1  0.0000   0.1054            0 Pages-&gt;Pages
29.2 0.00 0.10  0.00 0.05  0.00 0.02     1  0.0000   0.1048            0 Pages-&gt;Public_Controller
13.9 0.00 0.05  0.00 0.03  0.00 0.02     1  0.0000   0.0497            0 Pages-&gt;MY_Controller
13.4 0.00 0.05  0.00 0.02  0.00 0.03     2  0.0000   0.0241            0 MY_Loader-&gt;_ci_autoloader
12.2 0.00 0.04  0.00 0.01  0.00 0.00     3  0.0000   0.0146            0 Banners_model-&gt;get_by_section
11.7 0.00 0.04  0.00 0.00  0.00 0.00    25  0.0000   0.0017            0 CI_DB_mysql_driver-&gt;query
11.5 0.00 0.04  0.00 0.01  0.00 0.00     6  0.0000   0.0069            0 Banners_model-&gt;add_hit
11.4 0.04 0.04  0.03 0.03  0.01 0.01    65  0.0006   0.0006            0 defined
10.9 0.00 0.04  0.00 0.00  0.00 0.00    25  0.0000   0.0016            0 CI_DB_mysql_driver-&gt;simple_query
</pre>
<p>El fichero de 10-12 segundos : </p>
<pre># pprofp -R /tmp/pprof.01666.0

Trace for /var/www/vhosts/hostingaldescubierto.com/httpdocs/index.php
Total Elapsed Time = 10.34
Total System Time  = 0.02
Total User Time    = 0.08

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.1 0.00 10.35  0.00 0.09  0.00 0.02     5  0.0000   2.0692            0 require_once
100.0 0.00 10.34  0.00 0.08  0.00 0.02     1  0.0000   10.3394            0 main
99.1 0.00 10.24  0.00 0.01  0.00 0.00     8  0.0000   1.2802            0 include
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 call_user_func_array
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Pages-&gt;index
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Pages-&gt;show
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Template-&gt;build
99.0 0.00 10.24  0.00 0.01  0.00 0.00     2  0.0000   5.1202            0 MY_Loader-&gt;view
99.0 0.00 10.24  0.00 0.01  0.00 0.00     2  0.0000   5.1200            0 MY_Loader-&gt;_ci_load
99.0 0.00 10.23  0.00 0.00  0.00 0.00     1  0.0000   10.2335            0 weather_google_api
<strong>99.0 10.23 10.23  0.00 0.00  0.00 0.00     1  10.2333   10.2333            0 simplexml_load_file</strong>
0.7 0.00 0.08  0.00 0.06  0.00 0.01     1  0.0000   0.0766            0 Pages-&gt;Pages
0.7 0.00 0.08  0.00 0.05  0.00 0.01     1  0.0000   0.0761            0 Pages-&gt;Public_Controller
0.5 0.00 0.05  0.00 0.04  0.00 0.01     2  0.0000   0.0266            0 MY_Loader-&gt;_ci_autoloader
0.5 0.00 0.05  0.00 0.04  0.00 0.01     1  0.0000   0.0524            0 Pages-&gt;MY_Controller
0.4 0.04 0.04  0.04 0.04  0.01 0.01    65  0.0006   0.0006            0 defined
0.4 0.00 0.04  0.00 0.02  0.00 0.01    38  0.0000   0.0010            0 MY_Loader-&gt;helper
0.3 0.00 0.04  0.00 0.03  0.00 0.00    10  0.0000   0.0036            0 MY_Loader-&gt;model
0.3 0.00 0.03  0.00 0.02  0.00 0.01     1  0.0000   0.0312            0 Pages-&gt;Controller
0.3 0.00 0.03  0.00 0.02  0.00 0.01     1  0.0000   0.0311            0 Pages-&gt;_ci_initialize
</pre>
<p>Vemos claramente esta linea que es la que penaliza el tiempo de ejecución del script:</p>
<pre><strong>99.0 10.23 10.23  0.00 0.00  0.00 0.00     1  10.2333   10.2333            0 simplexml_load_file</strong></pre>
<p>Perfecto, ya sabemos lo que tenemos que buscar el uso de la función <strong>simplexml_load_file</strong>. Buscamos los ficheros que usan esta funcion, por ejemplo así :</p>
<pre>find -name "*php" -exec grep -l simplexml_load_file {} \;</pre>
<p>Entre los resultados encontramos uno, que llama especialmente la atención, en el que solicita un fichero xml de google <strong>http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8</strong>.<br />
Vamos a medir cuanto tiempo tarda en descargarlo :</p>
<pre># time wget 'http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8'
--2010-07-26 18:27:47--  http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8
Resolving www.google.com... 66.249.92.104
Connecting to www.google.com|66.249.92.104|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: `api?weather=madrid&amp;oe=utf-8.1'

[ &lt;=&gt;                                                                                                                                      ] 1,291       --.-K/s   in 0s

2010-07-26 18:27:57 (12.0 MB/s) - `api?weather=madrid&amp;oe=utf-8.1' saved [1291]

real    0m10.157s
user    0m0.002s
sys    0m0.001s</pre>
<p>Parece bastante claro que la ejecución se ralentiza por la petición a google&#8230; una caché que se actualice cada día, hora o cada minuto solucionaría este problema.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F07%2F28%2Fphp-depurando-profiling-en-php-ii%2F&amp;title=%5Bphp%5D%20Depurando%20%2F%20Profiling%20en%20php%20%28%20II%20%29" id="wpa2a_2">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[magento] PHP Fatal error:  Exception thrown without a stack frame in Unknown on line 0</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 09:43:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[magneto]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/</guid>
		<description><![CDATA[Estos últimas días hemos tenido que optimizar la carga de servidores con Magento. Una de las tareas es usar un sistema de caché que acelere los scripts php. Usamos apc por compatibilidad con Magento y por que ya viene paquetizado en los repositorios de Debian. El problema, aparece en el pié de página: &#8220;PHP Fatal [...]]]></description>
			<content:encoded><![CDATA[<p>Estos últimas días hemos tenido que optimizar la carga de servidores con Magento. Una de las tareas es usar un sistema de caché que acelere los scripts php. Usamos apc por compatibilidad con Magento y por que ya viene paquetizado en los repositorios de Debian.</p>
<p>El problema, aparece en el pié de página:<b> &#8220;PHP Fatal error:&nbsp; Exception thrown without a stack frame in Unknown on line 0&#8243;</b>.<br />
Este error aparece cuando <i>se ha lanzado una excepcion en un lugar donde se no se puede lanzar una excepción por no tener &#8216;stack frame</i>&#8216;. </p>
<p>Los manejadores de excepciones &#8216; <i>exception handlers</i>&#8216; y los destructores no tienen &#8216;<i>stack frame</i>&#8216;.<br />
Por lo que combinar por ejemplo un &#8216;<i>execption handler</i>&#8216; con un &#8216;<i>error preporting</i>&#8216;&nbsp; o lanzar un <i>execption</i> en un <i>destructor</i> puede provocar que aparezcan. Os podeis documentar más en este interesante enlace <a href="http://www.compdigitec.com/labs/2009/08/02/solving-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/" rel="bookmark" title="Permanent Link: Solving “Fatal error: Exception thrown without a stack frame in Unknown on line 0″">Solving “Fatal error: Exception thrown without a stack frame in Unknown on line 0″</a></p>
<p>En nuestro caso, tan solo hizo falta acutalizar la version del apc con un simple apt</p>
<p><source><br />
apt-get install php-apc</p>
<p>En la máquina estaba previamente instalado el apc vía pecl</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F07%2F08%2Fmagento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0%2F&amp;title=%5Bmagento%5D%20PHP%20Fatal%20error%3A%20%20Exception%20thrown%20without%20a%20stack%20frame%20in%20Unknown%20on%20line%200" id="wpa2a_4">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Warning:  [eAccelerator] Can not create shared memory area in Unknown on line 0</title>
		<link>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0</link>
		<comments>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 17:13:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[openvz]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[proc]]></category>
		<category><![CDATA[sh]]></category>
		<category><![CDATA[shared]]></category>
		<category><![CDATA[userbean_counter]]></category>
		<category><![CDATA[userbena]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/</guid>
		<description><![CDATA[eAccelertor es una solución de cache para php. Con este software conseguimos guardar una copia de scripts ya interpretados, de esta forma cada vez que el servidor web tenga que lanzar este script ahorrará una parte de tiempo y carga de cpu. Con este software puede ocurrir que nos econtremos con el siguiente error: PHP [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eaccelerator.net/">eAccelertor</a> es una solución de cache para php. Con este software conseguimos guardar una copia de scripts ya interpretados, de esta forma cada vez que el servidor web tenga que lanzar este script ahorrará una parte de tiempo y carga de cpu.</p>
<p>Con este software puede ocurrir que nos econtremos con el siguiente error:</p>
<pre>
PHP Warning:&nbsp; [eAccelerator] Can not create shared memory area in Unknown on line 0PHP Fatal error:&nbsp; Unable to start eAccelerator module in Unknown on line 0</pre>
<p>&nbsp;&nbsp; &nbsp;<br />Por defecto el tamaño de memoria compartida ( <b>shared memory</b> ) en un kernel 2.6 es de 32mb. Este parámetro se encuentra en el fichero <b>/proc/sys/kernel/shmmax</b> de forma que puedes comprobar si está en el límite. Para modificarlo existen dos formas :</p>
<p>* Cambio on-fly, con esto duplicaremos el tamaño actual</p>
<pre>echo $(( `cat /proc/sys/kernel/shmmax` * 2 ))&nbsp; &gt; /proc/sys/kernel/shmmax</pre>
<p>* Cambio permamente, modificando <b>/etc/sysctl.conf </b>
<pre>kernel.shmmax=VALOR_DESEADO

# aplicar los cambios reiniciando o con este comando:sysctl -p 
</pre>
<p> En el caso de los vps habŕa que comprobar si la memoria asignada es suficiente ( share memory and socket buffers ). Para ello podemos verificar el fichero <b>/proc/user_beancounter</b> donde muestra todos los parámetros que tenemos y la última columna referente a failcnt, es la cantidad de veces que se han superado estos límites. Seguramente aparecerá la fila&nbsp; <b>PRIVVMPAGES</b> con el contador distinto de 0. Habrá que ampliar este valor en ese caso.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2008%2F11%2F06%2Fphp-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0%2F&amp;title=PHP%20Warning%3A%20%20%5BeAccelerator%5D%20Can%20not%20create%20shared%20memory%20area%20in%20Unknown%20on%20line%200" id="wpa2a_6">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

