Páginas

viernes, 13 de julio de 2012

Acelerar optimizar sistema

Fuentes:
http://wiki.sabayon.org/index.php?title=How_to_optimize_and_accelerate_your_system
http://www.linuxeando.org/foros/index.php?topic=729.0

Optimizar y acelerar sistema gentoo.

Muchas por no decir todas estas reglas serán aplicables (seguramente), a casi todas las distribuciones Linux, aunque tengo que decir que la mayoría no las necesitará porque los programadores y mantenedores de esas distros (las basadas en Red Hat y Debian, por ejemplo), las incorporan por defecto. Ubuntu, Debian, Centos, etc. Desde el portátil que escribo (Dell Inspiron con Ubuntu 8.04 preinstalado en sda2 y gentoo en sda3)  he podido comprobar que esta optimización no es necesaria en ubuntu.

$ ls -l /dev/disk/by-label

total 0
lrwxrwxrwx 1 root root 10 jul 13 07:41 boot -> ../../sda1
lrwxrwxrwx 1 root root 10 jul 13 07:40 datos -> ../../sda9
lrwxrwxrwx 1 root root 10 jul 13 08:09 gentoo_h -> ../../sda7
lrwxrwxrwx 1 root root 10 jul 13 08:09 gentoo_r -> ../../sda3
lrwxrwxrwx 1 root root 10 jul 13 07:40 ubuntu_h -> ../../sda6
lrwxrwxrwx 1 root root 10 jul 13 07:40 ubuntu_r -> ../../sda2

He instalado (en otro disco duro pero en esta misma máquina), la distribución Centos 6.2 incluida en Linux Magazine del mes de March 2012 que me enviaron de regalo después de pasar el examen LPIC-1 y la verdad viene optimizada al máximo y con mucho software pre-instalado. Centos es una maravilla de distro para usuario final y extremadamente potente y segura en Servidores, con mucha documentación en diferentes idiomas.

El mérito de este artículo es de los chicos de Saboyan (derivada de Gentoo). Vease la url en la parte superior.

Detales de mi máquina:

$ uname -a
Linux zeus 3.3.8-gentoo #1 SMP Thu Jul 12 04:19:51 CEST 2012 x86_64 Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz GenuineIntel GNU/Linux.

$ cat /proc/meminfo|grep -i memtotal
MemTotal:        4045372 kB

Disco duro, Sata II 500 Gb 5400 RPM. 5MB memoria interna (un disco normalito).

Arrancar servicios Openrc en paralelo

Cambiar
# vi /etc/rc.conf

rc_parallel="YES"
rc_logger="NO"

Los servicios necesarios del sistema no deben desactivarse pero otros si. Puede conocerlos con la utilidad
# rc-update show
Rendimiento del disco duro:
# vi /etc/conf.d/hdparm
hda_args="-a16 -c1 -k1 -u1 -S0"
cdrom0_args="-c1 -k1 -u1

Agrego hdparm al arranque del sistema:
# rc-update add hdparm boot

preload es un demonio readhead adaptado que supervisa los programas más utilizados. Parte de esos programas los almacena en cache y aumentar la velocidad de carga:

# emerge -av preload
# rc-update add preload default

Los archivos temporales se borran durante el apagado, se puede colocar sus lugares de almacenamiento en la memoria RAM. Esto reduce el número de operaciones de disco , haciendo más rápido programas que utilizan carpetas temporales.

# vi /etc/fstab

 tmp     /tmp      tmpfs rw,mode=1777 0 0
 vartmp  /var/tmp  tmpfs rw,mode=1777 0 0


Retraso de la repetición del teclado, sin recompilar X11:
# vi /etc/X11/xorg.conf

Por defecto el tiempo de repetición de 500 milisegundos, y el tiempo de respuesta por defecto de 30 milisegundos. Esto cambia a 530 y 0, respectivamente.
....
Section "InputDevice"
Identifier "logitech"
Driver "kbd"
  Option "AutoRepeat" "530 0"
EndSection

En este sistema específico no implementé el resto de optimizaciones. Por si fuera útil incluyo los archivos /etc/sysctl.conf y /root/rules.sh (firewall) y como arrancarlo al iniciar el sistema.
Archivo /etc/sysctl.conf.

# cat /etc/sysctl.conf |grep ^[^#] | colorlog.pl
kernel.printk = 4 4 1 7
fs.inotify.max_ ser_watches = 524288
vm.mmap_min_add  = 65536
fs.file-max = 1 384
kernel.threads- ax = 2048
net.ipv4.conf.e h0.arp_ignore = 1
net.ipv4.conf.e h0.arp_announce = 2
net.ipv4.conf.a l.arp_ignore = 1
net.ipv4.conf.d fault.rp_filter = 1
net.ipv4.ip_for ard = 0
net.ipv4.icmp_e ho_ignore_broadcasts = 1
net.ipv4.conf.a l.rp_filter = 1
net.ipv4.conf.a l.send_redirects = 0
net.ipv4.conf.a l.accept_redirects = 0
net.ipv4.conf.a l.accept_source_route = 0
net.ipv4.conf.a l.arp_announce = 1
vm.swappiness = 5
Un firewall básico para un host con iptables.
# ls -l /root/rules.sh 
-rwx------ 1 root root 1229 jul 12 07:08 /root/rules.sh
# cat /root/rules.sh 

IPT=/sbin/iptables

# Flush old rules, old custom tables
echo " * flushing old rules"
$IPT --flush
$IPT --delete-chain

# Set default policies for all three default chains
echo " * setting default policies"
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# Enable free use of loopback interfaces
echo " * allowing loopback devices"
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# All TCP sessions should begin with SYN
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Allow established and related packets
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open the following ports
echo " * allowing ssh on port 22"
$IPT -A INPUT -p tcp --dport 22  -m state --state NEW -j ACCEPT

echo " * allowing dns on port 53"
$IPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT

echo " * allowing http on port 80"
$IPT -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT

echo " * allowing https on port 443"
$IPT -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT

echo " * allowing ping responses"
$IPT -A INPUT -p ICMP --icmp-type 8 -j ACCEPT

# DROP everything else and Log it
$IPT -A INPUT -j LOG
$IPT -A INPUT -j DROP
#
# Save settings
#
echo " * saving settings"

Ejecutar script:

# /root/rules.sh
 * flushing old rules
 * setting default policies
 * allowing loopback devices
 * allowing ssh on port 22
 * allowing dns on port 53
 * allowing http on port 80
 * allowing https on port 443
 * allowing ping responses
 * saving settings

Guardar la configuración actual:
# /etc/init.d/iptables save
iptables      | * Saving iptables state ...                                 [ ok ]

Iniciar iptables con el sistema:
# rc-update add iptables default
 * service iptables added to runlevel default

Linux es genial!.

No hay comentarios:

Publicar un comentario