<?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>tail -f &#124; sysadmin &#187; 32 bits</title>
	<atom:link href="http://www.tail-f.com.ar/tag/32-bits/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tail-f.com.ar</link>
	<description>Noticias y recursos para sysadmins Unix</description>
	<lastBuildDate>Mon, 28 Nov 2011 21:44:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PAE (Physical Address Extension) en Linux</title>
		<link>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html</link>
		<comments>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:49:40 +0000</pubDate>
		<dc:creator>elbarto</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[32 bits]]></category>
		<category><![CDATA[64 bits]]></category>
		<category><![CDATA[PAE]]></category>
		<category><![CDATA[RAM]]></category>

		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=215</guid>
		<description><![CDATA[Como sucede a menudo, una situación inesperada me hizo toparme con algo nuevo para aprender, que creo bueno compartir. Hace algún tiempo vendimos un servidor dedicado con un CPU Xeon X3210 (quad-core), para el cual solicitamos una instalación estándar de CentOS 5 con Directadmin. Ayer necesitamos agregarle un poco más de RAM (llegando a 4GB) [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_162" class="wp-caption alignright" style="width: 160px"><a href="http://www.tail-f.com.ar/wp-content/uploads/big-tux.png"><img class="size-thumbnail wp-image-162" title="big-tux" src="http://www.tail-f.com.ar/wp-content/uploads/big-tux-150x150.png" alt="GNU/Linux" width="150" height="150" /></a><p class="wp-caption-text">GNU/Linux</p></div>
<p>Como sucede a menudo, una situación inesperada me hizo toparme con algo nuevo para aprender, que creo bueno compartir. Hace algún tiempo vendimos un servidor dedicado con un CPU Xeon X3210 (quad-core), para el cual solicitamos una instalación estándar de CentOS 5 con Directadmin. Ayer necesitamos agregarle un poco más de RAM (llegando a 4GB) y nos enteramos que el sistema operativo instalado era de 32 bits.</p>
<p>Personalmente creo que a esta altura ya no se justifica instalar un SO de 32 bits sobre un servidor con arquitectura de 64 bits porque implica un desperdicio de los recursos del sistema y porque la mayoría de las aplicaciones que uno puede llegar a utilizar en máquinas con esta función, trabajan correctamente sobre 64 bits. Es más discutible para una máquina de escritorio, pero últimamente incluso en este caso ya no es tan relevante (sobre todo desde los lanzamientos de Wine o el plugin de Flash para 64 bits en Linux). De hecho yo hace unos dos años que utilizo Linux de 64 bits en mi máquina de escritorio y siempre pude sobrellevar los problemas que ello implicó. Al respecto es interesante <a href="http://forums.amd.com/devblog/blogpost.cfm?threadid=93648&amp;catid=317">este artículo de AMD</a>.</p>
<p>Por si no llegaron a la conclusión, el problema en este caso de tener un sistema operativo de 32 bits es que no permite la asignación de más de 4 GB de memoria física. De hecho, en la práctica el límite suele ser inferior (alrededor de 3.5 GB) por la memoria que de por sí necesita el sistema operativo para algunos dispositivos (<a href="http://www.codinghorror.com/blog/archives/000811.html">acá hay un interesante artículo de Coding Horror sobre este tema en Windows</a>).</p>
<p>Pero existe una solución que se llama PAE: <a href="http://en.wikipedia.org/wiki/Physical_Address_Extension">Physical Address Extension</a> (<a href="http://es.wikipedia.org/wiki/Extensi%C3%B3n_de_direcci%C3%B3n_f%C3%ADsica">Extensión de dirección física</a>). Se trata de una funcionalidad incluida en los procesadores x86 y x86-64 que permite asignar más de 4 GB de memoria física (hasta 64 GB). El tema es que para hacer uso de esta funcionalidad es necesario que el kernel de nuestro sistema operativo sepa cómo hacerlo. En Windows esto se llama <a href="http://en.wikipedia.org/wiki/Address_Windowing_Extensions">AWE</a> y por supuesto Linux tiene el correspondiente soporte si se lo compila con el flag adecuado.</p>
<p>En el caso de mi problema, como no podía reinstalar el servidor porque hubiera sido riesgoso (está en Estados Unidos y ni sé quién lo hubiera hecho) y perdería bastante tiempo de uptime, esta funcionalidad me resultó indispensable para poder hacer uso de los recursos del servidor. La opción más linda para los que nos gusta experimentar hubiera sido recompilar el kernel por mi mismo, pero las circunstancias para ello no eran las mejores, así que siendo CentOS tuve que recurrir a la basura de yum. Y el procedimiento es tan sencillo como:</p>
<pre># yum install kernel-PAE</pre>
<p><strong>Importante:</strong> La instrucción la vi en <a href="http://www.cyberciti.biz/tips/redhat-enterprise-linux-4gb-plus-ram-support.html">este post</a>, pero no mencionaba un detalle. Lógicamente este procedimiento descarga e instala un nuevo kernel (con el flag activado). Pero, al menos en mi caso, no hizo el cambio adecuado en el GRUB. Por lo cual edité el archivo /etc/grub.conf:</p>
<pre># grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.22.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.22.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.1.22.el5PAE.img
title CentOS (2.6.18-92.1.13.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.13.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.1.13.el5.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-92.el5.img</pre>
<p>Donde tuve que cambiar la línea que dice &#8220;default=1&#8243; por &#8220;default=0&#8243;, para que inicie con el kernel que tiene el soporte para PAE activado. Luego corremos &#8220;grub&#8221; de nuevo y reiniciamos.</p>
<pre># grub
# reboot</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tail-f.com.ar/sistemas-operativos/gnu-linux/pae-physical-address-extension-en-linux.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

