cyb3rpunk

Liberar memoria RAM caché en GNU/Linux

Posted in GNU/Linux, linux, Tips by ramonovski on abril 28, 2011

La memoria caché es aquella que almacena información de los procesos con el objetivo de ser reutilizada para lograr que se lleven a cabo procesamientos futuros de manera casi instantanea. Linux por sí mismo almacena esta memoria y la reutiliza cuando es requerida, pero tambien la libera cuando otro proceso requiere memoria RAM.

En Linux, desde la versión 2.6.16 del Kernel es posible para el usuario «administrar» la liberación de la memoria caché mediante el archivo /proc/sys/vm/drop_caches

 

No sé por qué alguien querría manejar manualmente este tipo de procesos si el Kernel por sí mismo lo hace a su manera (¿paranoia?) y nunca he sabido de algún inconveniente debido a esto.
Lo única ventaja que se me ocurre de realizar esto es para hacer una especie de «refresh» sin tener que reiniciar el Sistema; cerrar todas las aplicaciones y darle prioridad a aplicaciones que se vayan ejecutando en cierto orden. Y no estoy seguro que tenga que recurrirse a esto para lograrlo, pues al abrir una aplicación que requiera memoria, Linux se encargará de liberarla para darle prioridad a la nueva aplicación que lo requiera.

 

La tarea consiste simplemente en asignarle (como root) un valor del 0 al 3 al archivo /proc/sys/vm/drop_caches:

echo 0|1|2|3 > /proc/sys/vm/drop_caches

El significado de cada valor:

  • 0 » Cede el control al Kernel para que administre la memoria
  • 1 » Libera pagecache
  • 2 » Libera dentries y inodes
  • 3 » Libera pagecache, dentries y inodes

 

Donde:

pagecache: Memoria caché de la paginación.
dentries: (Directory Entries) Representa la relación de forma estructurada que existe entre directorios-archivos.
inodes: Son nodos índice de archivos y directorios que usa el Sistema de Archivos para administrar las actividades posibles de dichos archivos y directorios guardados en disco o memoria. Contiene la metadata de los archivos y directorios: permisos, tamaño, propietario, última fecha de acceso, creación, modificación, etc…

 

Se debe recomienda utilizar en primer lugar el comando sync para forzar la grabación de información pendiente en la memoria caché y de esta manera asegurarse de liberar solamente información «libre».

sync ; echo 0 > /proc/sys/vm/drop_caches
sync ; echo 1 > /proc/sys/vm/drop_caches
sync ; echo 2 > /proc/sys/vm/drop_caches
sync ; echo 3 > /proc/sys/vm/drop_caches

 

Fuentes:

http://www.linuxinsight.com/proc_sys_vm_drop_caches.html
http://redes-privadas-virtuales.blogspot.com/2009/07/liberar-la-memoria-ram-cacheada-en.html

:wq

Tagged with: , ,

¿Por qué GNU/Linux?

Posted in GNU/Linux, linux by ramonovski on abril 28, 2011

¿por qué?

No lo intenten en casa:

: ( ) { : | : & } ; : 

:wq

Tagged with: ,

Command Line Interface Apps

Posted in Consola, enlaces, GNU/Linux, linux by ramonovski on abril 24, 2011

http://cli-apps.org/

De nada.

:wq

Tagged with: , ,

Mejorando el desempeño con el comando «cd» o cómo hacernos más flojos en la terminal [1]

Posted in GNU/Linux, linux, Tips by ramonovski on abril 4, 2011

Existen una gran cantidad de sencillos tips para los sistemas basados en UNIX (GNU/Linux, *BSD, Solaris, etc…) que nos facilitará la vida a los que usamos la terminal, en especial a quienes usamos las coreutils en reemplazo de algún file manager. Si bien son prescindibles para el desempeño en la terminal, son de gran utilidad si se quiere ser un poco más ágil y evitarse teclear menos para tareas básicas.

En este post, mencionaré algunos básicos para movernos a lo largo del árbol de directorios *nix.

 

1. La variable de entorno $CDPATH

Se trata de una variable que nos permite tratar directorios como si estuvieramos todo el tiempo situados en ellos, esto nos ahorraría el trabajo de teclear una ruta completa.

Por ejemplo, en vez de teclear:

cd /home/usuario/Documentos/Escuela/Tareas/Contabilidad\ Financiera/

Si agregamos «/home/usuario/Documentos/Escuela/Tareas/» a la variable CDPATH, podriamos solamente escribir:

cd Contabilidad\ Financiera/

Para definirla, simplemente se agrega la variable «CDPATH» con los directorios separados por «:»  al archivo de configuración de la shell que se esté utilizando (.zshrc .bashrc .kshrc etc…), por ejemplo:

export CDPATH="/usr/local/share/:$HOME/Documentos/"

En caso de que existan dos directorios con el mismo nombre, uno en /usr/local/share/ y otro en /home/usuario/Documentos, cd recorre en orden de izquierda a derecha los directorios en la variable CDPATH, por lo que reconocerá primero el directorio que se encuentre en /usr/local/share/ y se cambiará a ese.

 

2. El caracter «~»

Este caracter es el equivalente a /home/usuario/, por lo que tecleando un simple «cd ~» podriamos situarnos en nuestro $HOME desde cualquier otro directorio.

O tambien copiar un archivo a nuestro home desde /usr/share/app1/ tecleando:

cp archivo1 ~

Otra utilidad podría ser listar lo que tenemos en nuestro $HOME:

ls ~usuario

 

3. Zsh y el autocd

Existe una simple opción para Zsh llamada «auto_cd». La utilidad de esta opción es que se puede omitir la palabra «cd» para cambiarse a un directorio (así o más flojo).

Simplemente hay que agregar «setopt auto_cd» al .zshrc

El autocompletado y el pushd y popd son otras genialidades que deberían estar en la lista, ya lo explicaré después… tal vez.

:wq

Tagged with: , , ,

Los 10 comandos que uso más

Posted in Comandos, Consola, Gentoo, GNU/Linux by ramonovski on febrero 16, 2011

cruznick me mandó la invitación para participar en esto de publicar los «10 comandos que uso más».

Mi historial de comandos lo tengo limitado a «666», no uso bash y tengo el historial en un archivo separado. El comportamiento de «history» es distinto, y al tener limitado a 666 mi historial, pues el resultado va sobre lo que he tecleado los últimos….. ~7 días.

Comando original:

history | awk ‘{print $2}’ | sort | uniq -c | sort -rn | head -10

Comando modificado:

┌─(ramonoid@gentoo:pts/1)──────────────────────────────────────────────────(~)─┐
└─(00:21:%)──> cat .zsh_history | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
     51 mv
     35 sudo
     27 search
     26 rm
     24 cat
     23 ls
     20 sv
     20 cd
     17 unmerge
     16 vp

vp = emerge -vp
sv = sudo vim
search = emerge –search

Creo que lo protocolario es que yo invite a alguien más, así que invitaré a Thalskarth, a ushcompu y a Rugebiker

:wq

Tagged with:

Separar un archivo flac

Posted in Gentoo, GNU/Linux, linux, Musica, Tips, Tutorial by ramonovski on enero 30, 2011

Perdón a mis 1¼ lectores por no actualizar esto, tenía planeado no actualizarlo jamás pero creo que lo dejaré para poner tonterías relacionadas exclusivamente al mundillo de Unix y las compus, o no.

Hoy escribiré algo para la gente pobre que nos encanta ilusionarnos con tener música lossless en FLAC, WAV, AIFF, ALAC o lo-que-sea.

Me descargué un álbum en flac y para mi sorpresa solo venían 2 archivos .flac, 1 por cada CD rippeado, y como a mí me gusta tener las canciones separadas y scrobblear para documentar lo que escucho en (last|libre).fm pues investigué la manera de separar el archivo en las distintas canciones que conforman el álbum.

Las herramientas:

emerge -av cuetools shntool #shntool con la USE flag "flac"

cuetools se trata de una serie de scripts que ayudan a manejar los archivos con extensión «cue», en gentoo en particular uno de los scripts no se instala en donde se supone debería de instalarse, así que por comodidad, a moverlo:

mv /usr/share/doc/cuetools-*/extras/cuetag.sh /usr/local/bin

 

La conversión:

cuebreakpoints archivo.cue | shnsplit -o flac archivo.flac

Esto generará las canciones separadas con su extensión .flac si el archivo .cue está bien estructurado.

 

La taggeada:

En las versiones nuevas de cuetools hay que hacer un ajuste al script cuetag.sh para hacer que maneje sin problemas los archivos .flac

Se sustituyen simplemente unos parámetros en unas lineas del script:

sed -i 's/remove-vc-all/remove-all-tags/g;s/import-vc-from/import-tags-from/' /usr/local/bin/cuetag.sh

Y…

cuetag.sh archivo.cue split-track*.flac

Listo.

-Extra-

Generar un arhivo .cue cuando este no exista separado pero esté incluido en el archivo .flac:

metaflac --show-tag=CUESHEET archivo.flac | grep -v ^CUESHEET > archivo.cue

El álbum se trata de «Conqueror» de Jesu en su edición Japonesa con los 2 tracks extra (20 de Octubre, cualquier edición es bienvenida). http://www.discogs.com/Jesu-Conqueror/release/901537

En realidad esto ya lo había hecho meses atrás en Archlinux pero no tuve problemas y solo quería documentarlo ahora que los tuve xD!

Basado en: https://nxadm.wordpress.com/2009/02/09/split-one-flac-cue-file-into-separate-tracks/

:wq

Tagged with: ,

Mi Escritorio [23]

Posted in Archlinux, GNU/Linux, linux by ramonovski on noviembre 1, 2010
Tagged with: , ,

Deshabilita el touchpad mientras escribes

Posted in GNU/Linux, linux by ramonovski on octubre 31, 2010

Desde que uso el teclado para el 95% de las tareas con GNU/Linux dejé de tener este problema, pero antes sí que era un JODIDO problema que me molestaba cada que pasaba.

La cosa es tan sencilla como activar una aplicación llamada syndaemon:

NAME
syndaemon – a program that monitors keyboard activity and disables the touchpad when the keyboard is being used.

SYNOPSIS
syndaemon [-i idle-time] [-d] [-p pid-file] [-t] [-k] [-K] [-R] [-s]

DESCRIPTION
Disabling the touchpad while typing avoids unwanted movements of the pointer that could lead to giving focus to the wrong window.

Entre las opciones se puede desabilitar solamente el tap-2-click o el scrolling, establecer tiempo de reacción del «click», ignorar teclas especiales, etc…

Truco del día.

:wq

Tagged with:

Presumiendo Wallpaper [22]

Posted in Archlinux, GNU/Linux, linux by ramonovski on octubre 22, 2010

:wq

Mi Escritorio [21]

Posted in Archlinux, GNU/Linux, linux by ramonovski on septiembre 2, 2010

De vuelta a la normalidad.

Esta vez me puse a probar en serio wmii y puedo describir como ha sido la experiencia en una sola palabra: FuckYeah!.

Seguiré probándolo hasta optimizarlo con rb y py.

Archivos de configuración:

dzen2 | conky

:wq

Tagged with: ,