Afinando Linux para un mejor rendimiento (parte 2)
Afinando Linux para un mejor rendimiento (parte 2)
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. En esta segunda parte continuaremos afinando nuestro Linux.
SYSSTAT
Existe un paquete llamado Sysstat que contiene herramientas para monitorizar el rendimiento del sistema y la actividad. Sysstat contiene la utilidad sar, común en muchos Unix comerciales, y herramientas que puedes programar via cron para recolectar datos de rendimiento y actividad y así mantener un historial. Se utilizan tradicionalmente en sistemas Unix para medir rendimientos, averiguar cuellos de botella, detectar configuraciones erroneas, etc.
El paquete Sysstat esta compuesto de las siguientes herramientas:
iostat: Muestra estadísticas de la CPU y estadisticas de entrada/salida para dispositivos y particiones.
mpstat: Muestra estadísticas individuales o combinadas relacionadas con procesadores.
sar: Recopila, muestra y salva información sobre la actividad del sistema.
isag : Visualiza gráficos de la actividad del sistema.
IOSTAT
IOSTAT (Input Output statistics) proporciona información sobre las E/S (escrituras/lecturas) en el sistema.
Sintaxis basica: iostat opciones intervalo contador
opciones : permite especificar de cual dispositivo se necesita información como disco o cpu. (-d , -c). La opción x entrega estadisticas extendidas.
intervalo : es el periodo de segundos entre dos muestras.
contador : es el numero de veces que se recolectaran datos.
isag : Visualiza gráficos de la actividad del sistema.
Salida para iostat:iostat
Linux 2.6.13-15.12-default (supermicrotek) 07/10/06
cpu-med: %user %nice %sys %iowait %idle
11,68 6,13 12,67 0,78 68,74
Device: tps Blq_leid/s Blq_escr/s Blq_leid Blq_escr
fd0 0,00 0,00 0,00 8 0
sda 6,90 279,07 117,31 24455839 10280157
hda 0,15 0,27 0,72 23670 63024
iostat -c 5 2
Linux 2.6.13-15.12-default (supermicrotek) 07/10/06
Tiempo: 19:00:31
cpu-med: %user %nice %sys %iowait %idle
11,67 6,12 12,65 0,78 68,78
Tiempo: 19:00:36
cpu-med: %user %nice %sys %iowait %idle
0,40 0,00 0,20 0,20 99,20
iostat -dx 5 2
Linux 2.6.13-15.12-default (supermicrotek) 07/10/06
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s ... avgqu-sz await svctm %util
fd0 0,00 0,00 0,00 0,00 0,00 0,00 ... 0,00 24,00 24,00 0,00
sda 169,00 14,83 4,16 2,71 277,06 116,95 ... 0,05 7,69 1,65 1,13
hda 0,12 0,71 0,14 0,01 0,27 0,71 ... 0,00 2,92 1,12 0,02
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s ... avgqu-sz await svctm %util
fd0 0,00 0,00 0,00 0,00 0,00 0,00 ... 0,00 0,00 0,00 0,00
sda 0,00 2,59 0,00 0,40 0,00 23,95 ... 0,00 0,00 0,00 0,00
hda 0,00 0,00 0,00 0,00 0,00 0,00 ... 0,00 0,00 0,00 0,00
Diferentes resultados obtenidos en mi sistema con un disco duro SATA de 160gb
RESULTADOS Y SOLUCIONES PARA IOSTAT
Los valores vistos en la salida de iostat son:
Lecturas (read) y Escrituras (write) por segundo (r/s y w/s)
Tiempo de espera en milisegundos para las peticiones de I/O (lectura/escritura) en el dispositivo (await)
Tiempo de servicio promedio (svctm) para las peticiones de I/O enviadas al dispositivo.
Porcentaje de tiempo de CPU usado durante las peticiones de I/O en el dispositivo (%util). Saturación de dispositivos ocurren cuando este valor se encuentra cerca del 100%.
Si un disco muestra consistentemente altas lecturas/escrituras con el porcentaje de ocupado (%util) del disco mayor que 5% y el promedio de tiempo de servicio (svct) es mayor a 30 milisegundos, entonces debe realizar una de las siguientes acciones:
Ajustar la aplicación para realizar lecturas/escrituras mas eficientemente modificando las consultas a disco y usando la cache disponible para apoyar las aplicaciones en los servidores.
Dividir el sistema de archivos del disco actual en dos o mas discos.
Mover el sistema de archivo a otro disco más rápido o reemplazar el disco existente por otro más rápido.
VMSTAT
VMSTAT (Virtual Memory Statistics) es una herramienta que entrega un reporte estadístico de la memoria virtual, procesos, paginación, actividad de la CPU, etc.
Salida para vmstat:procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 70892 9728 5292 120144 0 1 140 59 416 409 18 13 69 1
Detalles de la información obtenida:
Procs:
r: El número de procesos esperando su tiempo de ejecución.
b: El número de procesos en espera ininterrumpible.
Memory:
swpd: la cantidad de memoria virtual empleada (kB).
free: la cantidad de memoria inactiva (kB).
buff: la cantidad de memoria empleada como búferes (kB).
cache: la cantidad de memoria empleada como cache (kB).
Swap:
si: Cantidad de memoria traída del espacio swap desde disco (kB/s).
so: Cantidad de memoria almacenada en el swap del disco (kB/s).
IO:
bi: Bloques enviados a un dispositivo de bloques (bloques/s).
bo: Bloques recibidos desde un dispositivo de bloques (bloques/s).
System:
in: El número de interrupciones por segundo, incluyendo al reloj.
cs: El número de cambios de contexto por segundo.
Éstos son porcentajes de tiempo total de CPU.
us: tiempo de usuario
sy: tiempo de sistema
id: tiempo de inactividad
wa: tiempo de espera
RESULTADOS Y SOLUCIONES PARA VMSTAT
Si el numero de procesos en cola de ejecucion (procs r) son constantemente mayores que el numero de CPUs en el sistema, se retrasará el sistema pues hay mas procesos que CPU disponibles.
Si el numero es mayor de 4 veces el numero de CPUs disponibles en el sistema, entonces el sistema se enfrenta a una escasez de poder de CPU y retrasará enormemente los procesos.
Si el tiempo de inactividad (cpu id) es constantemente 0 y si el tiempo de sistema (cpu sy) es el doble del tiempo de usuario (cpu us) el sistema se enfrenta a una escasez de recursos de CPU.
Solución
La solución a este tipo de problemas implica ajustar los procesos de las aplicaciones para hacer un uso más eficiente de la CPU y como último recurso incrementar la potencia de la CPU o agregar más CPUs al sistema.
TOP: MONITORIZANDO EL SISTEMA EN LA LINEA DE COMANDOS
El usuario puede utilizar los comandos PS, TOP y FREE para monitorizar el sistema desde la línea de comandos. PS indica los procesos que se estan ejecutando en el sistema, TOP muestra los procesos que más CPU consumen y FREE reporta el uso de la memoria RAM, SWAP y Libre en el sistema.
top:
top proporciona una visión continuada de la actividad del procesador en tiempo real. Muestra un listado de las tareas que hacen un uso más intensivo de la CPU en el sistema, y puede proporcionar una interfaz interactiva para manipular procesos. Puede clasificar las tareas por uso de CPU, uso de memoria y tiempo de ejecución. Para más información digite man top en la consola.top - 20:07:15 up 2:23, 3 users, load average: 0.04, 0.05, 0.02
Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.2% us, 4.5% sy, 0.0% ni, 88.4% id, 0.0% wa, 0.9% hi, 0.0% si
Mem: 515784k total, 496156k used, 19628k free, 8940k buffers
Swap: 265064k total, 3336k used, 261728k free, 185740k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5603 root 16 0 126m 49m 5696 R 7.3 9.9 5:49.93 X
6481 alex 15 0 31072 16m 13m S 1.8 3.3 0:13.72 konsole
1 root 16 0 688 260 224 S 0.0 0.1 0:00.96 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.16 events/0
4 root 14 -5 0 0 0 S 0.0 0.0 0:00.01 khelper
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
395 root 10 -5 0 0 0 S 0.0 0.0 0:00.05 kblockd/0
430 root 15 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
431 root 15 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
433 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
432 root 15 0 0 0 0 S 0.0 0.0 0:00.14 kswapd0
1025 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
1150 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 ata/0
1155 root 25 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
1156 root 25 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1
1303 root 15 0 0 0 0 S 0.0 0.0 0:00.15 kjournald
2275 root 16 0 2572 1212 848 S 0.0 0.2 0:00.00 mount.ntfs-3g
ps:
muestra una instantánea de los procesos actuales. Si quiere una actualización contínua, use top. Para más información digite man ps en la consola.alex@supermicrotek:~> ps
PID TTY TIME CMD
6826 pts/0 00:00:00 bash
9472 pts/0 00:00:00 ps
alex@supermicrotek:~> ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 688 260 ? S 17:43 0:00 init [5]
root 2 0.0 0.0 0 0 ? SN 17:43 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S<> free
total used free shared buffers cached
Mem: 515784 242584 273200 0 13484 132316
-/+ buffers/cache: 96784 419000
Swap: 265064 0 265064
MONITORIZANDO GRAFICAMENTE EL SISTEMA
gKrellM: es un programa que nos permite monitorizar el sistema, a través de una pila de monitores para la memoria principal, la memoria swap, uso de la CPU, procesos abiertos, uso del disco duro, trafico de red, cantidad de usuarios conectados en el sistema, el tiempo activo del sistema (uptime). Ademas se pueden ampliar sus funciones a traves de plugins

xload: Presenta un histograma del promedio de carga del sistema. Puede resultar decorativo, e incluso indicativo en algún momento, pero no da muchos detalles ni puede hacerse un estudio basándose en él solamente
KSysGuard: Mucho mas completo que xload, muestra graficos con indicadores de uso de CPU, carga, memoria RAM y SWAP
Monitor del sistema Gnome: Mucho mas completo que xload y KSysGuard, muestra los procesos en memoria, graficos con indicadores de uso de CPU, memoria RAM/SWAP y tráfico de red, además muestra información de los dispositivos
DISMINUIR LOS TERMINALES VIRTUALES
No todas las distros traen de manera predeterminada 6 terminales virtuales (las que se obtienen presionando simultaneamente CTRL+ALT+F1 por ejemplo), pero tu no necesitas tantos. Si necesitas solo uno o dos, puedes modificar el archivo inittab y asi obtener un poco mas de memoria libre.
Abre un terminal y modifica el archivo:sudo vi /etc/inittab
Busca las siguientes lineas y modificalas:# getty-programs for the normal runlevels
# :::
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
Comenta los terminales que no utilices agregando una # al principio de la linea:# getty-programs for the normal runlevels
# :::
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
Estos son los resultados que obtuve con free antes y despues de la modificacion (y reinicio del sistema):
Estado del sistema:
Memoria ocupada
Memoria libre
Antes
301.424
214.360
Despues
241.848
273.936
EXTRA: ACELERAR LA NAVEGACION DE FIREFOX
En la barra de direcciones de Firefox escriba lo siguiente:about:config
Aparecerá la página de configuración avanzada de Firefox. Busque los siguientes nombres de preferencias y modifiquelos:network.http.pipelining
network.http.proxy.pipelining
Modificar esas preferencias de la siguiente manera: haga doble clic sobre ellas y cambiarán sus valores de ‘falso’ (false) a ‘verdadero’ (true).
Luego busque y cambie el valor de la siguiente preferencia de 4 a 20 (o un numero superior):network.http.pipelining.maxrequests
Esto hará que el navegador realice 20 peticiones de forma simultánea.
Normalmente Firefox realiza una petición a una página a la vez. Cuando activas el "pipelining" harás que Firefox haga varias peticiones a la vez, lo que acelera notablemente la carga de la página.
Opcionalmente puedes indicarle a Firefox que muestre la información descargada inmediatamente. Sigue los siguientes pasos:
Hacer clic con el botón derecho en cualquier lugar de la página y selecciona "Nuevo" " Entero". Nombra al nuevo campo como:nglayout.initialpaint.delay
Y asignale un valor de 0
fuente microteknologias.cl
No hay comentarios.:
Publicar un comentario