Optimized Network Settings

23 09 2013

From RedHat Performance Tuning Guide:

Performance tuning is usually done in a pre-emptive fashion. Often, we adjust known variables before running an application or deploying a system. If the adjustment proves to be ineffective, we try adjusting other variables. The logic behind such thinking is that by default, the system is not operating at an optimal level of performance; as such, we think we need to adjust the system accordingly. In some cases, we do so via calculated guesses.

As mentioned earlier, the network stack is mostly self-optimizing. In addition, effectively tuning the network requires a thorough understanding not just of how the network stack works, but also of the specific system’s network resource requirements. Incorrect network performance configuration can actually lead to degraded performance.

For example, consider the bufferfloat problem. Increasing buffer queue depths results in TCP connections that have congestion windows larger than the link would otherwise allow (due to deep buffering). However, those connections also have huge RTT values since the frames spend so much time in-queue. This, in turn, actually results in sub-optimal output, as it would become impossible to detect congestion.

When it comes to network performance, it is advisable to keep the default settings unless a particular performance issue becomes apparent. Such issues include frame loss, significantly reduced throughput, and the like. Even then, the best solution is often one that results from meticulous study of the problem, rather than simply tuning settings upward (increasing buffer/queue lengths, reducing interrupt latency, etc).

https://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/?locale=en-US

Advertisements




Instalar munin-node en RedHat / CentOS 5

10 09 2012

Para instalar munin-node en una máquina RedHat o CentOS 5 hay que utilizar los repositorios dag y forzar algunos paquetes, ya que no se encuentran todos disponibles para ésta release del sistema.

Aquí van los pasos, básicamente, crear un repo nuevo, bajar varios rpm e instalarlos a mano y finalmente instalar munin-node:

cat > /etc/yum.repos.d/dag.repo << FIN
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
FIN
cd /var/cache/yum/dag/packages/
wget 'http://pkgs.repoforge.org/perl-Net-Server/perl-Net-Server-0.90-2.el5.rf.noarch.rpm&#039;
yum install perl-Net-Server-0.90-2.el5.rf.noarch.rpm -y
wget 'http://pkgs.repoforge.org/perl-Socket6/perl-Socket6-0.23-1.el5.rfx.x86_64.rpm&#039;
yum install perl-Socket6-0.23-1.el5.rfx.x86_64.rpm -y
wget 'http://pkgs.repoforge.org/perl-Crypt-DES/perl-Crypt-DES-2.05-3.2.el5.rf.x86_64.rpm&#039;
yum install perl-Crypt-DES-2.05-3.2.el5.rf.x86_64.rpm -y
wget 'http://pkgs.repoforge.org/perl-Net-SNMP/perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm&#039;
rpm -ivh --force perl-Net-SNMP-5.2.0-1.2.el5.rf.noarch.rpm --nodeps
yum -y install munin-node
/etc/init.d/munin-node restart





Instalar munin en RedHat x64

29 09 2011

Munin no se encuentra por defecto en los repositorios de RedHat, por lo que hay que usar otros, para RedHat 6:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpmY para RedHat 5 o 5.5:
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

y una vez hecho lo anterior, ya se puede instalar:
# yum install munin-nodeSi no funciona, como puede ser habitual, mirar la documentación de munin:
http://munin-monitoring.org/wiki/LinuxInstallation#InstallationonCentOS5





Configurar la red en RedHat

1 08 2011

Tenemos dos opciones:

Con:
# system-config-network-tui

O editar el archivo en /etc/sysconfig/network-scripts/ifcfg-eth0:

# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
BROADCAST=22.23.112.255
HWADDR=01:09:4B:7F:6C:E3 # Dirección MAC
IPADDR= 64.34.55.50 # Ip de la interfaz de red
NETMASK= 255.255.255.0 # Máscara de red
NETWORK= 64.34.55.0 # Red en la que se encuentra
ONBOOT=yes # Arranque automático al inicio del sistema
GATEWAY= 64.34.55.1 # Puerta de enlace
TYPE=Ethernet





Crear paquete .rpm

28 03 2011

Para crear un paquete rpm primero instalar los paquetes necesarios:
# yum install rpm-build rpm-devel

Y dentro de /usr/src/redhat encontraremos los siguientes directorios:
/usr/src/redhat/SOURCES - Cotiene las fuentes, parches e iconos.
/usr/src/redhat/SPECS - Contiene los archivos de specificaciones usados para crear el rpm.
/usr/src/redhat/BUILD - Lugar donde se desempaqueta y se compila el software.
/usr/src/redhat/RPMS - Contiene los rpm creados, cada uno dentro de su arquitectura.
/usr/src/redhat/SRPMS - Contiene las fuentes de los rpm que se han creado.

Un ejemplo de los directorios con contenido:
BUILD
RPMS
SOURCES
  mi-programa
    archivo1.txt
    archivo2.sh
    archivo3
    archivo4.1.gz
  mi-programa.tar.gz
SPECS
  mi-programa.spec
SRPMSBUILD
SRPMS

Ahí hemos puesto el contenido de nuestro programa dentro de SOURCES y a su vez dentro de una carpeta, esa carpeta se encuentra comprimida en el mismo directorio con el mismo contenido que tiene el directorio, ese tar.gz es el que se descomprime y finalmente se instala, los archivos sin comprimir quedan como referencia para crear el tar.gz.

Ahora se muestra como ejemplo el contenido del archivo mi-programa.spec, que es la receta con la que se creará el rpm.

Summary: Mi primer rpm
Name: NombreDelPrograma
Version: 1.0.0
Release: 1
Group: Applications/System
License: GPL3
Packager: Mi Nombre
Requires: perl, (nombre de paquetes necesarios para su funcionamiento separados por comas)
Source: mi-programa.tar.gz
%description
Programa de prueba para mi primer rpm.
%prep
%setup
%install
install -m 0755 -d /etc/miprograma
install -m 0755 -d /var/lib/miprograma
install -m 0644 archivo1.txt /etc/miprograma/archivo1.txt
install -m 0644 archivo2.sh /etc/miprograma/archivo2.sh
install -m 0644 archivo3 /var/lib/miprograma/archivo3
install -m 0644 archivo4.1.gz /usr/share/man/man1/archivo4.1.gz
%post
chkconfig --add miprograma
echo '45 * * * * root /usr/bin/miprograma' >> /etc/crontab
echo -e "¡Instalado!"
%preun
chkconfig --del miprograma
sed -i '\/usr\/bin\/miprograma/d' /etc/crontab
echo -e "¡Desinstalado!"
%files
%dir /etc/miprograma
%dir /var/lib/miprograma
/etc/miprograma/archivo1.txt
/etc/miprograma/archivo2.sh
/var/lib/miprograma/archivo3
/usr/share/man/man1/archivo4.1.gz
%changelog
* Fri Mar 25 2011 Nombre Apellido
- Inicio

Ahora solo falta crear el rpm:
# cd /usr/src/redhat/
# rpmbuild -ba SPECS/mi-programa.spec

Y ya tendremos el .rpm creado el directorio RPMS/(Arquitectura)/mi-programa-1.0.0-1.arquitectura.rpm y las fuentes del mismo dentro de SRPMS

Si se quiere comprobar cómo se han construido otros paquetes, se pueden bajar los src y abrir del siguiente modo:
# rpm2cpio test-1.23.src.rpm | cpio -id

Más información:
http://home.fnal.gov/~dawson/rpms/howto/RPM-Build.html
http://www.linuxparatodos.net/portal/staticpages/index.php?page=como-rpmbuild
http://www.madboa.com/geek/specs/





Debian rgrep -> egrep Centos

19 03 2011

El comando “rgrep” que busca recursivamente un texto dentro de un árbol de directorios tiene su equivalente en CentOS / RedHat en “egrep -r”.

# rgrep "texto" *
# egrep -r "texto"





Configurar arranque: ntsysv en redhat, sysvconfig en debian

23 12 2010

Para configurar los servicios del arranque de manera fácil desde la terminal, se puede usar:

En redhat:

# ntsysv

En debian:

# sysvconfigo en Debian 6
# rcconfy para añadir un nuevo script:
# update-rc.d mydaemon defaultso# update-rc.d-insserv apache2 defaults
Más información:
http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot