El Software y el conocimiento debe ser Libre
Posts tagged Kernel
Parámetro del kernel Linux – file-max
Feb 4th
Parámetro del kernel de Linux – file-max.
El kernel de Linux asigna los identificadores de archivos de forma dinámica y el valor de file-max denota el número máximo de manejadores de archivos que el kernel de Linux puede asignar. Cuando aparece muchos mensajes de error sobre la “escasez de controladores de archivos”, el aumento de este límite será de ayuda. Para cambiar, el valor, simplemente escribimos el nuevo número en el archivo de la siguiente manera:
[root@todosconsoftwarelibre.com root]# cat /proc/sys/fs/file-max 8192 [root@todosconsoftwarelibre.com root]# echo 943718 > /proc/sys/fs/file-max [root@todosconsoftwarelibre.com root]# cat /proc/sys/fs/file-max 943718
Este valor puede cambiarse utilizando el comando sysctl. Para que el cambio sea de forma permanente, añadimos la entrada en el fichero /etc/sysctl.conf
[root@todosconsoftwarelibre.com root]# cat /etc/sysctl.conf fs.file-max = 943718
El parámetro file-nr.
[root@todosconsoftwarelibre.com root]# cat /proc/sys/fs/file-nr 1020 0 28428
Los tres valores en /proc/sys/fs/file-nr denota el numero de ficheros que maneja, el número de recursos asignados pero no utilizados por el descriptor de archivos, y el máximo número de descriptores (handles). Usted puede monitorizar y comprobar los identificadores de archivo (file handles).
El Buffer Cache
Jun 2nd
La lectura desde el disco (excepto un disco RAM, por obvias razones) es mas lenta en comparación con el acceso a memoria (real). Además, es común leer la misma parte del disco varias veces durante periodos relativamente cortos de tiempo. Por ejemplo, uno podría leer primero un mensaje del correo electrónico, después leer la misma carta con un editor de texto cuando uno la esta respondiendo, y finalmente hacer que el programa la lea de nuevo cuando le indicamos copiarla a una carpeta. O, considere cuan seguido el comando ls es ejecutado en un sistema con muchos usuarios. Leyendo la información del disco una sola vez y luego manteniéndola en la memoria hasta que no sea necesaria, puede acelerar todas las lecturas posteriores con respecto a la primera. Esto es llamado “buffering” de disco (disk buffering), y la memoria usada para ese propósito es llamada buffer cache.
Debido a que la memoria es, desafortunadamente finita, y por lo tanto, un recurso escaso, el “buffer cache” usualmente no puede ser demasiado grande (no puede mantener todos los datos que uno siempre quiere usar). Cuando la “cache” se completa, los datos que no han sido usados por un periodo de tiempo prolongado son descartados y así la memoria es liberada para ser utilizada con nuevos datos.
El buffering de disco trabaja cuando existen escrituras también. Por un lado, los datos que son escritos son leídos nuevamente con mucha frecuencia (por ej. el código fuente de un programa es guardado a un archivo, y después es leído por el compilador), entonces, colocar los datos que son escritos en la caché es una buena idea. Por otro lado, colocar los datos en la caché, sin escribirlos a disco inmediatamente, acelera al programa que los guarda. Las escrituras pueden ser realizadas en segundo plano, sin disminuir la velocidad de ejecución de los otros programas.
La mayoría de los sistemas operativos tienen “buffer caché” (aunque algunas veces son llamados de manera diferente), pero no todos funcionan de acuerdo a los mismos principios. Algunos son de escritura directa (write-through): los datos son escritos a disco inmediatamente (y obviamente, son mantenidos en la caché). Otros son de escritura posterior (write-back), ya que las escrituras son realizadas momentos después. Escritura posterior es más eficiente que escritura directa, pero es más susceptible a errores: si la máquina cae, el suministro eléctrico es interrumpido en un mal momento, o un medio extraíble es removido sin ser desmontado, entonces usualmente los cambios realizados en la caché se pierden. Esta situación puede significar que el sistema de archivos (si existiese uno) no trabaje completamente bien, tal vez debido a que los datos que no pudieron ser escritos sean cambios importantes para el mantenimiento del sistema.
Debido a esto, nunca debería apagar el equipo sin emplear los procedimientos adecuados, como tampoco quitar un disco flexible de la unidad hasta que haya sido desmontado (si fue montado), o antes de que cualquier programa que esta haciendo uso del dispositivo no indique que ha terminado y, el “led” de la unidad de disquete ya no esta encendida. El comando sync descarga el buffer (flushes), por ejemplo, fuerza que los datos aun no grabados sean escritos al disco, y puede ser usado cuando uno quiere asegurarse que todas las escrituras se hayan realizado.En los sistemas UNIX tradicionales, hay un programa llamado update que esta ejecutándose en segundo plano, el cual se encarga de ejecutar el comando sync cada 30 segundos, por esto usualmente no es necesario usar sync. Linux tiene un demonio adicional, bdflush, el cual efectúa un sync mas imperfecto, pero con mas frecuentemente para evitar el repentino congelamiento debido a la sobrecarga de I/O que algunas veces “sync” produce.
Bajo Linux, bdflush is iniciado por update. No existen usualmente razones para preocuparse por bdflush, pero si bdflush termina su ejecución por alguna causa, el kernel alertará sobre esto, por lo que debe iniciarlo a mano (/sbin/update).
La caché no realiza realmente buffer de archivos, pero sí de bloques, los cuales son las unidades mas pequeñas de E/S a disco (en Linux usualmente son de 1 kB). De esta manera, también los directorios, super bloques, otros datos relacionados con en el sistema de archivos, y discos sin sistema de archivos son mantenidos en caché.
La eficacia de una caché es decidida principalmente por su tamaño. Una caché pequeña es casi inservible: tiene muy pocos datos, por lo que todos los datos en la caché serán descartados antes de que sean reutilizados. El tamaño crítico depende de la cantidad de datos escritos y leídos, y de cuan frecuente los mismos datos son accedidos. La única manera de saber el tamaño útil de una caché es experimentando.
Si la “cache” es de tamaño fijo no es muy bueno que sea demasiado grande porque eso podría hacer que la memoria libre sea demasiado pequeña y ocasionar “swapping” (lo cual es también muy lento). Para hacer que el uso de la memoria real sea mas eficiente, Linux usa automáticamente toda la memoria RAM como “buffer cache”, pero también, automáticamente, disminuye el tamaño de la “cache” a medida que los programas van necesitando mas memoria.
Bajo Linux, usted no necesita configurar nada para hacer utilizar “cache”, esto sucede de forma completamente automática. A excepción de los adecuados procedimientos a seguir para “cerrar?apagar?desconectar?bajar?deshabilitar” o quitar ¿diskettes? usted no tiene necesidad de preocuparse por nada.
Script – Eliminando Kernels antiguos
May 19th
Pequeño Script que permite seleccionar que kernel deseas eliminar (para Debian, Ubuntu o derivados).
#!/bin/bash if [ $USER != root ]; then echo -e "Tienes que ser root" echo -e "Saliendo..." exit 0 fi echo -e "---Kernel Instalados---" dpkg --get-selections | grep linux-image echo -e "Que kernel quieres eliminar?" read NOMBRE echo -e "Has elegido: $NOMBRE" echo -e "Seguro que deseas eliminar $NOMBRE?" OPCIONES="Si No" select opt in $OPCIONES; do if [ "$opt" = "Si" ]; then dpkg --purge $NOMBRE exit elif [ "$opt" = "No" ]; then echo -e "Saliendo..." exit else clear echo opción errónea fi done
El kernel de Debian 6 ya estara 100% libre de codigo propietario
Dec 16th
La próxima versión de Debian 6.0 Squeeze tendrá, por fin, un kernel totalmente libre de código propietario, algo que los desarrolladores de esta distribución tienen como objetivo desde antes del lanzamiento de su versión 4.0 Etch (2007).
Si incluirá los fricara propietarios en los repositorios non-free y seguramente algún kernel opcional con dichos drivers.