- Afinando Linux para un mejor rendimiento
Tal vez sientas que puedes exprimir mas tu sistema Linux y tu hardware. Bien, eso es correcto, y no hace falta ser un experto para alcanzar un mejor rendimiento de nuestro sistema Linux.
Los aspectos a mejorar para obtener un mejor rendimiento en nuestro sistema comienzan antes de instalar Linux. Al instalar alguna distro en nuestro sistema debemos seleccionar que sistema de archivos utilizaremos en nuestro disco duro. También debemos ser cuidadosos con los servicios que queremos iniciar al arranque del sistema.
Otros aspectos que también podemos mejorar son: el acceso a nuestros discos, los parametros adecuados para una óptima utilización de la memoria y otros más que veremos a continuación.
Sistema de Archivos Adecuado
Núcleo adecuado a nuestra CPU
Acelerando nuestros discos
Optimizar los servicios
Memoria Swap
- SISTEMA DE ARCHIVOS ADECUADO
Elegir el sistema de archivos adeacuado a nuestras necesidades puede tener un alto impacto en el desempeño de nuestro sistema. Debe tener presente los puntos fuertes y desventajas que tiene cada sistema de archivos.
Dependiendo de los datos que manejaremos en el sistema, dependerá nuestra inclinación por uno u otro. Linux nos ofrece una amplia gama de sistemas de archivos, algunos de ellos son: ext2, ext3, ReiserFS, JFS, XFS.
El sistema recomendado para utilizar el máximo del espacio del disco duro se recomienda utilizar los sistemas de archivos ReiserFS, JFS o XFS.
Para creación, montado y desmontado rápido de sistemas de archivos se recomienda utilizar JFS o XFS.
Para operaciones rápidas en archivos grandes, se recomienda utilizar JFS o XFS. Si además se necesita minimizar el uso de CPU, sería JFS.
Para operaciones rápidas en un gran árbol de archivos, puedes elegir Ext3 o XFS. Los resultados sugieren que, para estas tareas, los sistemas de archivos pueden ser agrupados en: Rápidos y exigentes con el uso de CPU (ReiserFS y XFS) y Más lentos pero con un menor uso de CPU (Ext3 y JFS).
QUE SISTEMA DE ARCHIVOS UTILIZAR
XFS: Parece tener un buen balance con resultados relativamente rápidos y un uso moderado de CPU.
Ext3: Reducida capacidad de disco y y mayor tiempo de creación del sistema de archivos.
ReiserFS: Tiempos de montado mayores y alta falla de páginas de ReiserFS en la mayoría de las operaciones usuales sobre archivos.
JFS: Es el sistema de archivos de menor uso de CPU.
Evaluando las características de cada sistema de archivos, un administrador debería elegir el sistema de archivos que mejor rendimiento ha dado en pruebas realizadas por diferentes especialistas, XFS cumple con las necesidades de un servidor casero o de una pequeña oficina:
Utiliza la máxima capacidad de los discos duros
Es el más rápido en crear, montar y desmontar el sistema de archivos
Es el sistema de archivos más veloz para operaciones en archivos grandes (mayores a 500 Mb)
Es un gran segundo lugar para operaciones en una gran cantidad de archivos o directorios pequeños o de mediano tamaño
Demuestra un buen equilibrio entre uso de CPU y tiempo de respuesta para grandes listados de directorios o búsquedas de archivos
No es el sistema de archivos con menos uso de CPU pero se observa un aceptable uso de los recursos del sistema para hardware antiguo.
- NÚCLEO ADECUADO A NUESTRA CPU
Una cosa que se puede asumir con seguridad es que la mayoría de las personas simplemente corren Linux después de instalarlo desde los CDs de alguna distro. La máquina probablemente se ejecutara confiable y rápidamente, comparada con cualquier versión de los sistemas propietarios y comerciales de Microsoft Windows. La mayoría de los usuarios saben que el núcleo de Linux y un montón de utilidades instaladas desde los CDs de la distro son versiones muy generalizadas adaptadas para funcionar bien en una diversidad de configuraciones.
El usuario debe tener presente que el kernel instalado por algunas distros fue compilado para procesadores Intel x386, y que recompilando para una cpu específica puede obtener un mejor rendimiento y mayor confiabilidad. El administrador de sistema también puede aligerar el núcleo del sistema: si no tiene ningún hardware SCSI instalado en el equipo, tiene poco sentido tener controladores para ellos en el núcleo. Lo mismo se puede aplicar a otro tipo de hardware, como tarjetas de red, tarjetas de sonido, etc.
Una vez que tengas un núcleo adecuado a tu procesador actual, puedes hacer un afinamiento más fino (fine-tune) al núcleo de tu Linux de acuerdo a la carga de trabajo y tus preferencias. La mayoría de las variantes de Unix de la actualidad tiene capacidades de auto-afinamiento que generalmente trabajan bien. ¿Cómo hace un sistema operativo para afinarse asimismo te preguntaras?
Durante la fase de arranque el núcleo consulta al sistema para encontrar cuanta memoria RAM y espacio de memoria virtual están disponibles, y que tan rápida es la CPU. Una vez que obtiene esa información, el núcleo hace los ajustes al tamaño del cache y los parámetros de la memoria virtual.
- El administrador de sistemas puede refinar estos procesos de auto-afinamiento o anularlos después del arranque, durante la ejecución. Esto a veces puede ser recomendable porque el administrador de sistema tiene un conocimiento más acabado de la clase de carga de trabajo de su máquina, experiencia obtenida durante el transcurso de un día promedio de trabajo. Sin embargo, debe tener presente: jugar con núcleos sensibles requiere cierto conocimiento básico de las entrañas del sistema operativo. Modificar algunos valores puede causar un degradamiento del sistema, o incluso en situaciones extremas puede causar el cuelgue del sistema completo.
Si tu sistema obtiene una degradación total como resultado de tu "afinamiento", no te preocupes, la situación es reversible, en el siguiente arranque, los viejos ajustes vuelven, ya que algunos afinamientos duran hasta el siguiente arranque del sistema.
Linux ofrece dos maneras de ajustar el sistema dinamicamente durante el tiempo de ejecución. Una de ellas son las llamadas al sistema "sysctl" (puede consultar man sysctl). Estas llamadas al sistema pueden ser usadas desde la línea de comandos o desde un programa gráfico (con la apropiada autorización del superusuario root) y se aplicarán inmediatamente los cambios solicitados.
- ACELERANDO NUESTROS DISCOS
El DMA (Direct Memory Access) permite que los periféricos no entreguen su información directamente al procesador, sino que la dejen en un lugar de la memoria RAM especialmente designado para ese efecto, mejorando el desempeño del sistema.
Abre una consola o terminal
Cambia de usuario a root
Digita el siguiente comando: hdparm -d1 -c1 -k1 /dev/hda
Ya sabes, /dev/hda para el primer disco (IDE0 Maestro), /dev/hdb para el segundo disco (IDE0 Esclavo), etc.supermicrotek:/home/alex # hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 1168 MB in 2.00 seconds = 582.80 MB/sec
Timing buffered disk reads: 112 MB in 3.05 seconds = 36.74 MB/sec
supermicrotek:/home/alex # hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1184 MB in 2.00 seconds = 591.96 MB/sec
Timing buffered disk reads: 180 MB in 3.01 seconds = 59.84 MB/sec
supermicrotek:/home/alex #
Para más información sobre el comando hdparm digite man hdparm en una ventana de consola, es necesario que consultes la documentación ya que algunas modificaciones pueden dañar tu disco.
- OPTIMIZAR LOS SERVICIOS
Según qué distribución tengamos, habrá varios servicios (programas que corren en segundo plano para realizar distintos tipos de tareas) que se ejecutarán al inicio del sistema. Muchos de ellos no serán de uso cotidiano, y además de consumir recursos, pueden afectar su estabilidad y seguridad. Lo mejor será, entonces, dejar sólo aquellos servicios que usemos habitualmente. Por ejemplo, si no estamos en una red o no compartimos nuestros archivos con una red Windows, podemos desactivar el servidor Samba; luego, si llegamos a necesitarlo, lo único que deberemos hacer será iniciarlo.
Miren bien la lista de servicios que se ejecutan al inicio y detengan aquellos que no suelen usar. Algunos servicios pueden ser daemons HTTP (servidor web), POP3/IMAP (e-mail), un servidor de bases de datos (MySQL), etc. Algunos de estos son innecesarios para muchos usuarios y pueden ofrecer rutas por las que infiltrarse a un atacante potencial. Deberás examinarlos uno por uno y luego detener y deshabilitar todos aquellos que no necesites.
Recuerden que los servicios son programas que se ejecutan en segundo plano, por lo que consumen tiempo de procesador y parte de la memoria, además de que pueden hacer vulnerable nuestro computador a ataques o cuelgues.
Utilizando sólo los servicios que necesitamos, ahorraremos recursos del sistema y estaremos más seguros. Cuando queramos iniciar algún servicio especial, podremos usar alguna de las herramientas que nos proporciona el sistema o, simplemente, recurrir a la línea de comandos.
- PARAR Y DESHABILITAR LOS SERVICIOS INNECESARIOS
Las distribuciones mas comunes y populares probablemente contarán con una aplicación gráfica para configurar estos servicios; prueba a buscar en los menús Configuración o Sistema de tu aplicación de escritorio. En Suse lo puedes encontrar en el Centro de Control (YaST), Sistema y luego Editor de niveles de ejecución. En Mandriva Linux podemos hacerlo desde DrakXServices, una utilidad del paquete DrakConf. En RedHat o Fedora podems utilizar a linuxconf.
Otra forma es utilizar services-admin de Gnome. Los servicios que tienen un tilde a su izquierda son los que se inician por defecto. Para parar un servicio, hacemos clic en el botón Propiedades del servicio y elegimos la opción Iniciar; para pararlo, hacemos lo mismo pero escogemos Detener.
Puedes usar la utilidad de línea de comandos para configurar los servicios que se llama chkconfig. Para obtener una lista del estado actual de todos los servicios instalados, ejecuta (como root):chkconfig --list
- Aparecerá algo parecido al siguiente listado:Makefile 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:off 5:on 6:off
alsasound 0:off 1:off 2:on 3:on 4:off 5:on 6:off
apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autoyast 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bluetooth 0:off 1:off 2:off 3:off 4:off 5:off 6:off
boot.udev 0:off 1:off 2:on 3:on 4:off 5:on 6:off B:on
ccpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
cron 0:off 1:off 2:on 3:on 4:off 5:on 6:off
cups 0:off 1:off 2:on 3:on 4:off 5:on 6:off
cupsrenice 0:off 1:off 2:off 3:off 4:off 5:on 6:off
dbus 0:off 1:off 2:off 3:on 4:off 5:on 6:off
dhcpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
earlykbd 0:off 1:off 2:off 3:off 4:off 5:on 6:off
earlykdm 0:off 1:off 2:off 3:off 4:off 5:on 6:off
earlysyslog 0:off 1:off 2:off 3:off 4:off 5:on 6:off
esound 0:off 1:off 2:off 3:off 4:off 5:off 6:off
fam 0:off 1:off 2:off 3:off 4:off 5:off 6:off
fbset 0:off 1:on 2:on 3:on 4:off 5:on 6:off
gpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off
gssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
haldaemon 0:off 1:off 2:off 3:on 4:off 5:on 6:off
hplip 0:off 1:off 2:off 3:off 4:off 5:off 6:off
idmapd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
isdn 0:off 1:off 2:off 3:off 4:off 5:off 6:off
kbd 0:off 1:on 2:on 3:on 4:off 5:on 6:off
ksysguardd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
lirc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
lm_sensors 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdadmd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mdnsd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
microcode 0:off 1:on 2:on 3:on 4:off 5:on 6:off
mysql 0:off 1:off 2:on 3:on 4:off 5:on 6:off
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netdaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:off 5:on 6:off
nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off
nfsboot 0:off 1:off 2:off 3:on 4:off 5:on 6:off
nfsserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nmb 0:off 1:off 2:off 3:on 4:off 5:on 6:off
nscd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ntp 0:off 1:off 2:off 3:off 4:off 5:off 6:off
openct 0:off 1:off 2:off 3:off 4:off 5:off 6:off
pcscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
portmap 0:off 1:off 2:off 3:on 4:off 5:on 6:off
postfix 0:off 1:off 2:off 3:on 4:off 5:on 6:off
powersaved 0:off 1:off 2:on 3:on 4:off 5:on 6:off
random 0:off 1:off 2:on 3:on 4:off 5:on 6:off
raw 0:off 1:off 2:off 3:off 4:off 5:off 6:off
resmgr 0:off 1:off 2:on 3:on 4:off 5:on 6:off
rpasswdd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rpmconfigcheck 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyncd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
running-kernel 0:off 1:off 2:on 3:on 4:off 5:on 6:off
sane-dev 0:off 1:off 2:off 3:off 4:off 5:off 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
setserial 0:off 1:off 2:off 3:off 4:off 5:off 6:off B:on
slpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off
smbfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off
smpppd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
spamd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
splash 0:off 1:on 2:on 3:on 4:off 5:on 6:off
splash_early 0:off 1:off 2:on 3:on 4:off 5:on 6:off
squid 0:off 1:off 2:off 3:on 4:off 5:on 6:off
sshd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
svcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
syslog 0:off 1:off 2:on 3:on 4:off 5:on 6:off
sysstat 0:off 1:off 2:off 3:off 4:off 5:off 6:off
vmware 0:off 1:off 2:on 3:on 4:off 5:on 6:off
xdm 0:off 1:off 2:off 3:off 4:off 5:on 6:off
xfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd based services:
chargen: off
chargen-udp: off
cups-lpd: off
cvs: off
daytime: off
daytime-udp: off
echo: off
echo-udp: off
fam: off
netstat: off
rsync: off
sane-port: off
servers: off
services: off
swat: off
systat: off
time: off
time-udp: off
vnc: off
- Los números (0 a 6) que preceden a los dos puntos representan el "nivel de ejecución" del sistema. Los niveles de nuestro interés son 3 y 5; si tu sistema arranca en consola (sin interfaz gráfica) entonces se ejecuta en nivel 3 y si arranca con una interfaz gráfica se ejecuta en nivel 5.
Para activar un servicio (por ejemplo squid) en los niveles de ejecución 2,3,4 y 5 debes digitar (como root):chkconfig --level 2345 squid on
Para deshabilitar un servicio (por ejemplo sshd) en los niveles 3 y 5 debemos digitar (como root):chkconfig --level 35 sshd off
Si no sabes qué hace alguno de los servicios que tengas activados, intenta buscar información en internet o usar el comando man con el nombre del servicio como palabra clave (man -k).
El comando chkconfig activará/desactivará los servicios la próxima vez que arranques tu equipo pero no tendrá ningun efecto sobre los servicios que se esten ejecutando actualmente. Los cambios tendrán efecto cuando reinicies el sistema.
Bajo RedHat/Fedora, se utiliza el comando service para iniciar/detener/reiniciar los servicios de la siguiente forma:service nombre_servicio start
service nombre_servicio stop
service nombre_servicio restart
service nombre_servicio status
Donde nombre_servicio será el que nos indique chkconfig --list.
También puedes utilizar el metodo más tradicional para iniciar/detener/reiniciar/consultar los servicios en forma manual, escribimos en la línea de comandos lo siguiente:/etc/initd/nombre_servicio start
Para detenerlos:/etc/initd/nombre_servicio stop
Para reiniciarlos:/etc/initd/nombre_servicio restart
Y para consultar el estado:/etc/initd/nombre_servicio status
Ademas puedes ejecutar netstat -l después de deshabilitar todos los servicios innecesarios para asegurarte de que has acabado con todos (este comando comprueba qué sockets están escuchando esperando conexiones). Para cada uno de los servicios que aún estén ejecutándose, asegurate de que están configurados correctamente (y de la forma más restrictiva posible).netstat -l
- Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:msnp *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:ndmp *:* LISTEN
tcp 0 0 *:ipp *:* LISTEN
tcp 0 0 *:socks *:* LISTEN
tcp 0 0 *:ndl-aas *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 *:52380 *:* LISTEN
tcp 0 0 *:6588 *:* LISTEN
tcp 0 0 *:microsoft-ds *:* LISTEN
tcp 0 0 *:www-http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
udp 0 0 *:filenet-tms *:*
udp 0 0 *:filenet-rpc *:*
udp 0 0 localhost:filenet-nch *:*
udp 0 0 *:filenet-rmi *:*
udp 0 0 192.168.2.1:netbios-ns *:*
udp 0 0 192.168.124.:netbios-ns *:*
udp 0 0 supermicrote:netbios-ns *:*
udp 0 0 192.168.0.10:netbios-ns *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 192.168.2.1:netbios-dgm *:*
udp 0 0 192.168.124:netbios-dgm *:*
udp 0 0 supermicrot:netbios-dgm *:*
udp 0 0 192.168.0.1:netbios-dgm *:*
udp 0 0 *:netbios-dgm *:*
udp 0 0 *:52380 *:*
udp 0 0 localhost:35370 *:*
udp 0 0 localhost:35255 *:*
udp 0 0 *:icpv2 *:*
udp 37040 0 *:bootpc *:*
udp 0 0 *:filecast *:*
udp 0 0 localhost:35280 *:*
udp 0 0 localhost:35298 *:*
udp 0 0 localhost:35302 *:*
udp 0 0 *:mdns *:*
udp 0 0 *:mdns *:*
udp 0 0 *:mdns *:*
udp 0 0 *:mdns *:*
udp 0 0 *:sunrpc *:*
udp 0 0 localhost:35312 *:*
udp 0 0 localhost:35313 *:*
udp 0 0 *:ipp *:*
raw 0 0 *:icmp *:* 7
- Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 13682 /var/run/xdmctl/dmctl/socket
unix 2 [ ACC ] STREAM LISTENING 13727 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 11397 /var/run/mdnsd
unix 2 [ ACC ] STREAM LISTENING 13736 /var/run/xdmctl/dmctl-:0/socket
unix 2 [ ACC ] STREAM LISTENING 157589 @/tmp/fam-alex-
unix 2 [ ACC ] STREAM LISTENING 12170 public/cleanup
unix 2 [ ACC ] STREAM LISTENING 12177 private/rewrite
unix 2 [ ACC ] STREAM LISTENING 12181 private/bounce
unix 2 [ ACC ] STREAM LISTENING 12185 private/defer
unix 2 [ ACC ] STREAM LISTENING 12189 private/trace
unix 2 [ ACC ] STREAM LISTENING 12193 private/verify
unix 2 [ ACC ] STREAM LISTENING 15683 /tmp/ksocket-alex/kdeinit__0
unix 2 [ ACC ] STREAM LISTENING 15685 /tmp/ksocket-alex/kdeinit-:0
unix 2 [ ACC ] STREAM LISTENING 12197 public/flush
unix 2 [ ACC ] STREAM LISTENING 12201 private/proxymap
unix 2 [ ACC ] STREAM LISTENING 12205 private/smtp
unix 2 [ ACC ] STREAM LISTENING 12209 private/relay
unix 2 [ ACC ] STREAM LISTENING 12213 public/showq
unix 2 [ ACC ] STREAM LISTENING 12217 private/error
unix 2 [ ACC ] STREAM LISTENING 12221 private/discard
unix 2 [ ACC ] STREAM LISTENING 12225 private/local
unix 2 [ ACC ] STREAM LISTENING 12229 private/virtual
unix 2 [ ACC ] STREAM LISTENING 12237 private/anvil
unix 2 [ ACC ] STREAM LISTENING 12233 private/lmtp
unix 2 [ ACC ] STREAM LISTENING 11436 /var/run/netapplet.socket
unix 2 [ ACC ] STREAM LISTENING 185484 socket
unix 2 [ ACC ] STREAM LISTENING 13761 /var/run/vmnat.5706
unix 2 [ ACC ] STREAM LISTENING 15992 /tmp/.ICE-unix/6222
unix 2 [ ACC ] STREAM LISTENING 12241 private/scache
unix 2 [ ACC ] STREAM LISTENING 12245 private/maildrop
unix 2 [ ACC ] STREAM LISTENING 12249 private/cyrus
unix 2 [ ACC ] STREAM LISTENING 11557 /var/run/acpid.socket
unix 2 [ ACC ] STREAM LISTENING 19061 /tmp/xmms_alex.0
unix 2 [ ACC ] STREAM LISTENING 12253 private/uucp
unix 2 [ ACC ] STREAM LISTENING 12257 private/ifmail
unix 2 [ ACC ] STREAM LISTENING 12261 private/bsmtp
unix 2 [ ACC ] STREAM LISTENING 10289 /var/run/.resmgr_socket
unix 2 [ ACC ] STREAM LISTENING 12341 /var/lib/mysql/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 10078 /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 11660 /var/run/nscd/socket
- MEMORIA SWAP
La memoria de intercambio sirve como RAM adicional. Entonces, en un computador que ya tenga mucha memoria RAM, ¿hace falta swap?
Aunque puede funcionar bien sin tener ningún área de intercambio, es muy recomendable crearla. La razón es que siempre es bueno quitar de la memoria los procesos poco usados, ya que eso permite usar la RAM para otras tareas, como por ejemplo la memoria caché de las operaciones de entrada/salida, como el acceso al disco.
Un ejemplo: supongamos que un usuario abre en un programa una imagen muy grande, que le consume el 80% de la memoria RAM, y después, sin cerrarla, se pone a hacer varias búsquedas de archivos por su disco duro. Si no se puede llevar a disco ese proceso grande, quiere decir que ha de mantenerse en memoria física; por tanto, las búsquedas sólo tendrán menos del 20% de la memoria RAM para hacer de caché, y por eso serán poco eficientes. Con swap, se podría llevar a disco el proceso grande (o al menos una parte), hacer esas búsquedas usando toda la RAM como caché, y luego restaurar el proceso, si hace falta.
Hay algunos procesos que, debido a la función que realizan, están poco activos, y puede ser recomendable que estén en el área de intercambio para liberar un poco la memoria RAM. Por ejemplo, un servidor SSH (mecanismo de control remoto del computador) tiene que estar siempre activo para atender las posibles peticiones, pero sólo empezará a trabajar de verdad cuando un usuario se conecte- fuente:microteknologias.cl
No hay comentarios.:
Publicar un comentario