• Publicidad

Comparar líneas de archivos muy grandes

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Comparar líneas de archivos muy grandes

Notapor Stoner » 2012-09-10 16:49 @742

Hola de nuevo, perleros.

Tengo una duda muy básica.

Tengo que comparar dos archivos inmensos (16GB, aproximadamente, cada uno) con cada una de sus líneas separadas por columnas. Lo que quiero es comprobar si cada valor de la primera columna de cada línea está en el segundo archivo, y de "NO" ser así que me imprima en un tercer archivo esa línea completa.

Teniendo archivos pequeños, es sencillísimo de resolver: Meto en un hash el valor del primer archivo y con un bucle en el segundo archivo compruebo si existe esa llave/valor.

El problema, como ya os he dicho, es que la RAM no me da para meter en un hash un archivo entero (bueno, solo la primera columna). Cuando corro el script al rato el ordenador se ralentiza muchísimo y directamente se congela todo, incluyendo el ratón. Que me quedo sin memoria, vamos.

Buscando en el foro el usuario "salva" decía;
salva escribiste:Como te comenta explorer, si tienes memoria suficiente para leer el archivo pequeño en un hash, esa es la solución más fácil y rápida.

Si no, la solución clásica a este problema es ordenar los dos ficheros en disco por el campo clave (usando la utilidad sort o el módulo Sort::External, por ejemplo) para luego leer los dos ficheros ordenados en paralelo buscando coincidencias.


El problema es que ambos archivos no tienen por qué contener el mismo número de líneas, ni en cada línea tiene que haber los mismo campos. Quiero decir que no entiendo cómo podría ayudarme a extraer las líneas únicas de uno de los archivos ordenando ambos.

Por ejemplo. Archivo 1:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
pepe 43
juan 25
maria 37
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Archivo 2:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Oswaldo 56
maria 46
pepe 43
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El archivo que yo busco sería:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Oswaldo 56
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero siguiendo la solución de "sortear":

Archivo 1 ordenado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
juan 25
maria 37
pepe 43
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Archivo 2 ordenado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
maria 46
Oswaldo 56
pepe 43
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Si comparo línea a línea cada archivo "sorteado" obtendría un archivo vacío.
Stoner
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2011-03-31 08:41 @403

Publicidad

Re: Comparar líneas de archivos muy grandes

Notapor explorer » 2012-09-10 17:33 @772

Stoner escribiste:El problema, como ya os he dicho, es que la RAM no me da para meter en un hash un archivo entero (bueno, solo la primera columna). Cuando corro el script al rato el ordenador se ralentiza muchísimo y directamente se congela todo, incluyendo el ratón. Que me quedo sin memoria, vamos.
Bueno, actualmente hay servidores con 32Gb o más de memoria, así que la limitación es el dinero :)

Pero tu ya has dado la solución: dices que puedes meter en el hash solo el primer campo de uno de los archivos, y con eso ya es suficiente: vas leyendo el primer archivo, sacas la primera columna y la vas guardando como clave del hash, y cómo valores, pues un humilde '1'.

Luego, abres el segundo archivo, vas leyendo línea por línea. Si el primer campo de esa línea no está en el hash del primero, ya sabes que tienes que imprimir una línea. Si la línea a imprimir es del segundo archivo, pues la acabas de leer, así que la imprimes. Pero si es del primer archivo, entonces guardas la clave en un hash temporal. Finalmente, vuelves a abrir el primer archivo, e imprimes las líneas que coincidan con las claves de ese hash temporal.

Stoner escribiste:El problema es que ambos archivos no tienen por qué contener el mismo número de líneas, ni en cada línea tiene que haber los mismo campos. Quiero decir que no entiendo cómo podría ayudarme a extraer las líneas únicas de uno de los archivos ordenando ambos.
Ya lo dice salva: recorriendo las líneas de los archivos en paralelo.

En paralelo no quiere decir que vas leyendo una línea cada vez de cada archivo, sino que como sabemos que están ordenados alfabéticamente, podemos saber de qué archivo tenemos que ir leyendo: si del archivo 1 hemos leído una clave, y resulta que esa clave es menor alfabéticamente que la del segundo archivo, pues es el del primero de donde tenemos que leer la siguiente línea. Si al hacerlo, resulta que la clave ya es superior a la primera (alfabéticamente), entonces ya sabemos que podemos imprimir la línea del primero archivo (o del segundo, según), porque sabremos que no existe ninguna clave coincidente en el segundo archivo.

Stoner escribiste:Archivo 1 ordenado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
juan 25
maria 37
pepe 43
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Archivo 2 ordenado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
maria 46
Oswaldo 56
pepe 43
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
En este ejemplo, estamos suponiendo que tenemos que imprimir las líneas del archivo 2 si no hay coincidencia con las del 1.

  • Entonces, empezamos leyendo una línea de cada archivo y sacamos las claves: "juan" y "maria".
  • Como la clave "juan" es menor que la de "maria", debemos seguir leyendo líneas del archivo 1 hasta que las claves "alcancen" a "maria".
  • Leemos la siguiente línea de archivo 1 y tenemos "maria". Como esta clave es idéntica en los dos archivos, no nos interesa, así que leemos una nueva línea de cada archivo.
  • Leemos las siguientes, y tenemos "pepe" y "Oswaldo".
  • Como "pepe" es superior a "Oswaldo", quiere decir que no hemos encontrado ninguna clave en el archivo 1 que coincida con "Oswaldo", y como los archivos están ordenados, no encontraremos ninguno más en el resto del archivo 1, así que la clave del archivo 2 es única: imprimimos la línea de "Oswaldo".
  • Leemos la siguiente línea de archivo 2 y tenemos "pepe".
  • Lo mismo que antes, coinciden las claves, así que el siguiente paso es leer las líneas siguientes de los dos archivos.
  • En este caso ya hemos llegado al final, así que damos por termino el proceso. Si hubieran quedado líneas por leer del segundo archivo, serían líneas únicas, así que las sacaríamos directamente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comparar líneas de archivos muy grandes

Notapor Stoner » 2012-09-10 18:53 @828

explorer escribiste:
  • Entonces, empezamos leyendo una línea de cada archivo y sacamos las claves: "juan" y "maria".
  • Como la clave "juan" es menor que la de "maria", debemos seguir leyendo líneas del archivo 1 hasta que las claves "alcancen" a "maria".
  • Leemos la siguiente línea de archivo 1 y tenemos "maria". Como esta clave es idéntica en los dos archivos, no nos interesa, así que leemos una nueva línea de cada archivo.
  • Leemos las siguientes, y tenemos "pepe" y "Oswaldo".
  • Como "pepe" es superior a "Oswaldo", quiere decir que no hemos encontrado ninguna clave en el archivo 1 que coincida con "Oswaldo", y como los archivos están ordenados, no encontraremos ninguno más en el resto del archivo 1, así que la clave del archivo 2 es única: imprimimos la línea de "Oswaldo".
  • Leemos la siguiente línea de archivo 2 y tenemos "pepe".
  • Lo mismo que antes, coinciden las claves, así que el siguiente paso es leer las líneas siguientes de los dos archivos.
  • En este caso ya hemos llegado al final, así que damos por termino el proceso. Si hubieran quedado líneas por leer del segundo archivo, serían líneas únicas, así que las sacaríamos directamente.


Vale, entonces entiendo que para hacerlo de este modo después de ordenar los archivos tengo que hacer un doble bucle que recorra línea a línea cada archivo ordenado, ¿verdad?
Stoner
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2011-03-31 08:41 @403

Re: Comparar líneas de archivos muy grandes

Notapor explorer » 2012-09-11 05:35 @274

No. Con recorrer los archivos de esa manera ya obtienes de forma directa la solución.

No tienes por qué utilizar bucles, sino que cada lectura depende del orden de cada clave de las líneas.

El problema se reduce en conseguir ordenar las filas de esos archivos tan grandes. Y puede ser un problema igual de grande que el objetivo principal.

Hay otra opción, que es usar algún módulo que use nmap, y así accedes a los contenidos de los archivos en disco como si estuvieran en memoria principal. El acceso y lectura serán más lentos, pero no estarás limitado por la memoria.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comparar líneas de archivos muy grandes

Notapor Stoner » 2012-09-11 06:14 @301

Sigo perdido. Esta es mi sencillísima primera solución.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #use strict;                     # Desactivo estos tres módulos para optimizar el script
  3. #use warnings;    
  4. #use Data::Dumper;
  5.  
  6. my %hash;
  7.  
  8. open FILE1 , '<', 'archivo1';
  9.  
  10. while (<FILE1>)
  11. {
  12.         $hash{ (split /\t/, $_)[0] } = 1;
  13. }
  14.  
  15. close FILE1;
  16.  
  17. open FILE2 , '<', 'archivo2';
  18. open (OUTPUT, '>>','resultados');
  19. while (my $linea = <FILE2>)
  20. {
  21.         if ( not exists $hash{ (split /\t/, $linea)[0] } )
  22.         {
  23.         print OUTPUT $linea;
  24.         }
  25. }
  26. close OUTPUT;
  27. close FILE2;
  28.  
  29. END;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El problema, como ya he dicho es que me quedo sin memoria. El archivo1 tiene 67 millones de líneas, hacia los 55 millones de líneas del primer bucle la velocidad de entrada de claves->valores del hash disminuye mucho, y en los 60 millones ya se hace insoportable. Aunque solo cojo como claves la primera columna me quedo sin memoria.

Sobre la segunda solución, ordenando los archivos; no sé cómo recorrer dos archivos en paralelo sin utilizar bucles.

Voy a probar lo que comentas de usar nmap, explorer.
Stoner
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2011-03-31 08:41 @403

Re: Comparar líneas de archivos muy grandes

Notapor explorer » 2012-09-11 07:03 @335

60 millones de líneas no es nada...

¿Cómo son de grandes las claves que estás guardando en el hash?

Para resolver por la segunda forma, primero debes resolver cómo poder ordenar los dos archivos, de forma alfanumérica. Es muy posible que ni siquiera puedas hacerlo con otro programa Perl.

Prueba a ver con el comando sort del sistema...

Una forma de ordenar un archivo grande es:
* leer el archivo línea por línea
* según la primera letra de la línea, grabamos la línea en otro archivo que almacena todas las líneas que comienzan por esa letra

Al final tenemos tantos archivos como letras, mucho más pequeños que el original. Ahora puedes abrirlos uno por uno y ordenarlos alfabéticamente (o usar sort del sistema). Y una vez que están ordenados, ya solo queda leerlos en secuencia para generar un único archivo, pero esta vez ya estará ordenado.

Hacer lo mismo con el otro archivo, y ya se puede iniciar el segundo procedimiento de búsqueda de claves inexistentes.

P.D. ¿No estarás usando Windows, verdad? Esa puede ser una buena explicación de por qué te quedas sin memoria.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comparar líneas de archivos muy grandes

Notapor Stoner » 2012-09-11 10:07 @463

explorer escribiste:60 millones de líneas no es nada...

¿Cómo son de grandes las claves que estás guardando en el hash?

Para resolver por la segunda forma, primero debes resolver cómo poder ordenar los dos archivos, de forma alfanumérica. Es muy posible que ni siquiera puedas hacerlo con otro programa Perl.

Prueba a ver con el comando sort del sistema...

Una forma de ordenar un archivo grande es:
* leer el archivo línea por línea
* según la primera letra de la línea, grabamos la línea en otro archivo que almacena todas las líneas que comienzan por esa letra

Al final tenemos tantos archivos como letras, mucho más pequeños que el original. Ahora puedes abrirlos uno por uno y ordenarlos alfabéticamente (o usar sort del sistema). Y una vez que están ordenados, ya solo queda leerlos en secuencia para generar un único archivo, pero esta vez ya estará ordenado.

Hacer lo mismo con el otro archivo, y ya se puede iniciar el segundo procedimiento de búsqueda de claves inexistentes.

P.D. ¿No estarás usando Windows, verdad? Esa puede ser una buena explicación de por qué te quedas sin memoria.


Puff. Empiezo a desesperarme porque me pasan cosas "raras" :?

Para hacer honor a la verdad antes de postear ya tenía el problema solucionado desde el punto de vista teórico, si bien era haciendo "trampas".

Lo que había hecho era una solución como la del código que he escrito arriba pero partiendo uno de los archivos en trozos (para que el hash que se guarda en memoria no pese tanto), y correr scripts de forma secuencial.

Es decir, partía el archivo_1 en fragmentos mas pequeños, obtenía las líneas con columna única del archivo_2 respecto al primer trozo del archivo_1, y vuelvo a hacer lo mismo sucesivamente comparando el archivo resultado con el siguiente trozo.

El problema era, aún no sé por qué, no me daba el resultado esperado.

A partir de determinada línea del primer archivo se saltaba resultados. Es algo parecido a lo que me indicas con hacer archivos más pequeños ordenados alfabéticamente. Por eso intenté hacerlo todo "de golpe", sin partir el primer archivo y metiéndolo todo en un hash.

Pero ahora encima tengo otros problemas.

Uso Linux y no sé qué pasa con mi sistema que me quedo sin espacio en /home. El analizador de uso del disco me dice que me quedan 46 GB de espacio libre en /home, pero sin embargo me aparece el mensaje: «El volumen <<home>> solo tiene 459,8 MB de espacio en disco libre».

He borrado el caché, eliminado kernels que no utilizo...

Edito: vale, no tengo problemas con lo del disco duro. Mejor dicho, sí que lo tengo, pero por alguna razón que desconozco el analizador de disco duro no funciona correctamente. df -l y liberar espacio en /home.
Stoner
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2011-03-31 08:41 @403

Re: Comparar líneas de archivos muy grandes

Notapor Stoner » 2012-09-11 12:06 @546

Problema solucionado. Al final he seguido mi solución inicial. No me daba el resultado esperado porque tenía falta de espacio en disco (fallo tonto donde los halla :oops: ).

Pongo la solución completa por si a alguien le sirve:

Tengo dos archivos muy grandes (16GB cada uno) los cuales quiero comparar su primera columna, y en caso de que la primera columna de cada línea del segundo archivo no esté en el primero escriba esa línea en un tercer archivo resultado.

Lo primero que hice fue cortar mi primer archivo en fragmentos más pequeños, en concreto en 16 archivos de 4 millones de líneas cada uno más uno más pequeño con el comando;

Sintáxis: [ Descargar ] [ Ocultar ]
  1. split -l 4000000 archivo1 


Este comando me nombra los archivos como "xaa", "xab", "xac",.....

A continuación hago 17 scripts en Perl;

script_1;
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. open (OUTPUT, '>>','output1');      
  4.  
  5. my %hash;
  6.  
  7. open FILE1 , '<', 'xaa';
  8.  
  9. while (<FILE1>)
  10. {
  11.         $hash{ (split /\t/, $_)[0] } = 1;
  12. }
  13.  
  14. close FILE1;
  15.  
  16. open FILE2 , '<', 'archivo2';  #abro el segundo archivo de 16GB entero
  17.  
  18. while (my $linea = <FILE2>)
  19. {
  20.         if ( not exists $hash{ (split /\t/, $linea)[0] } )
  21.         {
  22.         print OUTPUT $linea;
  23.         }
  24. }
  25. close OUTPUT;
  26. close FILE2;
  27.  
  28. END;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4




script_2;
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. open (OUTPUT, '>>','output2');      
  4.  
  5. my %hash;
  6.  
  7. open FILE1 , '<', 'xab';
  8.  
  9. while (<FILE1>)
  10. {
  11.         $hash{ (split /\t/, $_)[0] } = 1;
  12. }
  13.  
  14. close FILE1;
  15.  
  16. open FILE2 , '<', 'output1';  #abro el archivo RESULTADO anterior
  17.  
  18. while (my $linea = <FILE2>)
  19. {
  20.         if ( not exists $hash{ (split /\t/, $linea)[0] } )
  21.         {
  22.         print OUTPUT $linea;
  23.         }
  24. }
  25. close OUTPUT;
  26. close FILE2;
  27. system "output1"; #elimino el archivo RESULTADO anterior que ya no voy a utilizar más
  28. END;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


script_3;
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. open (OUTPUT, '>>','output3');      
  4.  
  5. my %hash;
  6.  
  7. open FILE1 , '<', 'xac';
  8.  
  9. while (<FILE1>)
  10. {
  11.         $hash{ (split /\t/, $_)[0] } = 1;
  12. }
  13.  
  14. close FILE1;
  15.  
  16. open FILE2 , '<', 'output2';  #abro el archivo RESULTADO anterior
  17.  
  18. while (my $linea = <FILE2>)
  19. {
  20.         if ( not exists $hash{ (split /\t/, $linea)[0] } )
  21.         {
  22.         print OUTPUT $linea;
  23.         }
  24. }
  25. close OUTPUT;
  26. close FILE2;
  27. system "output2"; #elimino el archivo RESULTADO anterior que ya no voy a utilizar mas
  28. END;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


....


script_17;
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. open (OUTPUT, '>>','output17');      
  4.  
  5. my %hash;
  6.  
  7. open FILE1 , '<', 'xaq';
  8.  
  9. while (<FILE1>)
  10. {
  11.         $hash{ (split /\t/, $_)[0] } = 1;
  12. }
  13.  
  14. close FILE1;
  15.  
  16. open FILE2 , '<', 'output16';  #abro el archivo RESULTADO anterior
  17.  
  18. while (my $linea = <FILE2>)
  19. {
  20.         if ( not exists $hash{ (split /\t/, $linea)[0] } )
  21.         {
  22.         print OUTPUT $linea;
  23.         }
  24. }
  25. close OUTPUT;
  26. close FILE2;
  27. system "output16"; #elimino el archivo RESULTADO anterior que ya no voy a utilizar mas
  28. END;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Creo otro script Secuencial.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. system "perl script_1.pl";
  4. system "perl script_2.pl";
  5. system "perl script_3.pl";
  6. system "perl script_4.pl";
  7. system "perl script_5.pl";
  8. ...
  9. system "perl script_17.pl";
  10.  
  11. END;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Sé que es una manera muy poco elegante de resolverlo, pero si funciona, pues adelante Xd.
Muchísimas gracias, explorer, por tu ayuda.
Stoner
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2011-03-31 08:41 @403

Re: Comparar líneas de archivos muy grandes

Notapor explorer » 2012-09-11 12:50 @576

Stoner escribiste:Lo que había hecho era una solución como la del código que he escrito arriba pero partiendo uno de los archivos en trozos (para que el hash que se guarda en memoria no pese tanto), y correr scripts de forma secuencial.

Es decir, partía el archivo_1 en fragmentos mas pequeños, obtenía las líneas con columna única del archivo_2 respecto al primer trozo del archivo_1, y vuelvo a hacer lo mismo sucesivamente comparando el archivo resultado con el siguiente trozo.

El problema era, aún no sé por qué, no me daba el resultado esperado.
Claro: dada una clave en un archivo, deberías buscarla en todos los trozos del otro archivo. No vale con mirar trozo por trozo.

Stoner escribiste:A partir de determinada línea del primer archivo se saltaba resultados. Es algo parecido a lo que me indicas con hacer archivos más pequeños ordenados alfabéticamente. Por eso intenté hacerlo todo "de golpe", sin partir el primer archivo y metiéndolo todo en un hash.
La ventaja de ordenarles es que eliminas el problema gordo de hacer un doble bucle.

Stoner escribiste:Uso Linux y no sé qué pasa con mi sistema que me quedo sin espacio en /home. El analizador de uso del disco me dice que me quedan 46 GB de espacio libre en /home, pero sin embargo me aparece el mensaje: «El volumen <<home>> solo tiene 459,8 MB de espacio en disco libre».
Dentro de /home, ejecuta el comando du|sort -n y así sabrás cuáles son los directorios más ocupados.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Comparar líneas de archivos muy grandes

Notapor pvaldes » 2012-09-19 15:10 @674

Una alternativa mejor que acudir a un split() externo es incorporar las funciones de Perl read() o sysread() y dividir los archivos en trozos que vas procesando secuencialmente. Con estas funciones puedes decirle a Perl que lea los archivos en bloques de X megas desde el propio script de Perl. Hay diferencias sutiles entre ambas. sysread() acude a la llamada read() del propio sistema mientras que read() es una alternativa de esa llamada desde Perl. sysread() es más complicado de usar (no soporta mezclarse con print(), por ejemplo) pero algo más eficiente con algunos casos concretos.

> Uso Linux y no sé qué pasa con mi sistema que me quedo sin espacio en /home

El quedarse sin espacio teniendo mucho espacio libre es posible. Ocurre cuanto todos tus inodos se han agotado. Por ejemplo por crear millones de archivos de una sola línea. Sin más datos es difícil saberlo, pero si tienes miles de archivos muy pequeños puedes quedarte sin espacio físico para colgar uno más. Piensa en un perchero lleno de calcetines y pañuelos que se haya quedado sin pinzas libres aunque pueda soportar mucho más peso del que tiene.

Si das más datos sobre tu sistema podremos examinar el problema, pero suena y mucho a un problema con los inodos.

Para saberlo ejecuta df, pero con la opción menos conocida para mostrar la situación de los inodos: df -i.

Una vez solucionado el problema de los inodos, borrando cosas innecesarias, limpiando la papelera y sobreescribiendo el espacio libre con ceros indícanos si sigues teniendo problemas con la memoria, hay modos de sortear eso.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado