Attachments, ¿dentro o fuera de la bd?

V

Virtu

Hola a todos,

actualmente en el foro que administro las imagenes y archivos adjuntos se almacenan en la base de datos. Me la encontre asi cuando me hice cargo.

Estoy pensando en cambiar el sistema de almacenamiento y sacar los attachments de la bd porque he pensado que mejorara el rendimiento del foro al no tener que traducir la cantidad de numeritos y letras almacenadas en la tabla a imagenes. Supongo que esto tiene que ser una carga para el servidor.

Ya he leido el hilo donde se explica como se hace, pero me gustaria preguntar unas cosillas. ¿Solo hay que crear una carpeta para almacenar los archivos? ¿Y si hay mas de un archivo con el mismo nombre?

Podia probar a hacerlo, pero son 2.3 GB de archivos e imagino que el proceso sera largo, y ademas temo que ocurra algo malo. ¿Es fiable el proceso? Y a la hora de las copias de seguridad, ¿con copiar el directorio de los attachments basta?

Gracias, un saludo.
 
R

RiCoTeRo X

1.-El cambio lo haces desde el admincp y lo cambias a k lo guarde al hosting pero tenes k tener mucho esapacio en este, como decis vos son 2.3 gb es muchio.

2.- Pasarlo de un lado al otro nose si se puede hacer es mejor que lo dejes en la BD

3.- Si lo queres hacer (creo k no se puede) con solo cambiar las opciones ya estaria ya que el hosting junto con php tiene una carpeta donde guarda los adjuntos o vos la podes poner manualmte.

y si hay otro adjunto con el mismo nombre, pienso que automaticamente cambiaria el nombre a ej: archivo, (1)archivo y asi segui

Proba ( no lo recomiendo) a ver k pasa.
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Tanto los css (hojas de estilo) y los avatares fuera primero ocupa mucho menos un archivo en file system que un campo BLOB en cualquier base de datos, segundo es muchísimo más rápido.
Tienes que darle permisos 777 a las carpetas, lo mejor que puedes hacer es lo siguiente:
chmod 777 customavatars
y Ahra para que no lo pueda ver todo el mundo lo limitas al usuario que arranca el servidor web (en este caso apache)
chown -R apache customavatars
 
V

Virtu

Bueno pues en pleno proceso de sacar los attachments de la bd estoy, en principio la cosa parece que funciona. Ya os dire el tiempo que ha llevado.

danyforito el espacio no es problema, se trata de un servidor dedicado con disco de 80 GB y disponemos tambien de un VPS para poner a salvo las copias de seguridad y hacer pruebas.

dbembibre, ¿se nota mucho en el rendimiento el tener los adjuntos en el file system?

Un saludo
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Claro que se nota porque de esta manera las imágenes son cacheadas en el lado cliente y la base de datos pesa mucho menos, recuerda que es muy importante que el directorio de avatares tenga permisos de todo (777) porque sino no podrás subir nuevos avatares. Tambien en opciones de estilo y lenguaje, elije CSS en file system porque se nota muchísimo. Si ademas es un servidor dedicado te invito a que instales eAccelerator verás lo rápido que va.
http://eaccelerator.net/HomeUk
 
V

Virtu

Bueno, pues si que se puede. Ha tardado 1 hora 20 minutos en el proceso de sacar las fotos de la base. El mismo vBull se encarga de crear la estructura de directorios que necesita para almacenar las fotos en el file system.

La unica incidencia que despues de acabar sale una pantalla en la que te informa si el proceso a ido bien, y si es que si, te insta a borrar los archivos adjuntos de la bd definitivamente. Y te avisa tambien que ese proceso es irreversible.

Bien, pues al pulsar el boton para hacerlo, se me quedo el navegador quieto en esa pantalla. Me fui al phpmyadmin y vi que el tamaño de la tabla attachments seguia siendo el mismo :(, entre a traves de ssh como root y vi que el servidor mysql estaba trabajando. Cuando vi que paro el mysqld, me fui otra vez al phpmyadmin y vi que en la tabla attachments habia un residuo a depurar de 2,3 GB, pulse en optimizar tabla y listo. Todo en orden y con una bd con un peso de 706 MB :D.

Seguire tus sabios consejos dbembibre, y hare lo mismo con avatars y css, tambien echare un vistazo al eAccelerator. Muchas gracias.

Un saludo
 
V

Virtu

No todo iba a salir bien a la primera :(, ahora estoy creando las miniaturas (4 horas llevo ya) y en las 2 primeras horas aproximadamente el proceso ha ido bien, pero despues, el script sigue trabajando pero por cada archivo me muestra el siguiente error:

Insertar CODE, HTML o PHP:
Procesando: Archivo Adjunto :  [URL="http://84.20.2.149/foros/attachment.php?attachmentid=33879"][33879][/URL]  (Mensaje :  [URL="http://84.20.2.149/foros/showthread.php?postid=204427"][204427][/URL]  ) 
[B]Warning[/B]: fopen(/var/www/html/foros/adjuntos/2/4/8/6/33879.thumb): failed to open stream: Disk quota exceeded in [B]/admincp/misc.php[/B] on line [B]672[/B]

[B]Warning[/B]: fwrite(): supplied argument is not a valid stream resource in [B]/admincp/misc.php[/B] on line [B]673[/B]

[B]Warning[/B]: fclose(): supplied argument is not a valid stream resource in [B]/admincp/misc.php[/B] on line [B]674[/B]

¿Alguna idea?

Gracias, un saludo.
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Pues si te dice que no puede crear un nuevo archivo porque esa partición se ha quedado sin espacio.

Warning: fopen(/var/www/html/foros/adjuntos/2/4/8/6/33879.thumb): failed to open stream: Disk quota exceeded in /admincp/misc.php on line 672

Si es tuyo el servidor revisa el tamaño de la quota para el usuario con el que lo estás haciendo
 
V

Virtu

Hola,

despues de investigar un poco he visto que el problema esta en el numero de inodes que me han establecido en el VPS.

Ya me extrañaba a mi, porque al ver lo de Disk quota exceeded mire con el comando df -h y vi que tenia libres 2,9 GB todavia, osea que por espacio en disco no era.

Pero al entrar en el panel de control del VPS he visto que tengo un limite de inodes de 104.189. Por eso el proceso de creacion de miniaturas fue bien durante un tiempo. Hasta que llego al limite de inodes.

Lo que ignoro es por que se pone un limite de creacion de archivos y si hay algun inconveniente en subir ese limite. Tendre que preguntar donde tengo contratado el VPS a ver que me dicen.

Hay que ver como es la infraumatica :rolleyes:, cada dia se aprende algo nuevo. Bueno, ya contare como va todo.


Un saludo.
 

dbembibre

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
30 Sep 2004
Mensajes
453
Joer me había olvidado de responder a este tema, pues si los inodes son los indexadores a archivos del virtual file system de linux, lo cierto es que es la primera vez que veo que un proveedor de hosting limita el número de inodes, quizás lo hacen para que no les tumbes la máquina con un proceso recursivo.
Cuentanos las novedades
 
V

Virtu

Buenas, os pego la respuesta del soporte tecnico del hosting:

Buenas tardes,

le he aumentado el número de inodes un 25%, quedando fijado en 140.000

Por término medio una distribución estándar de servidor con RedHat (con con Fedora) suele utilizar un máximo de 60.000 a 70.000 inodes. La verdad es que 36.000 x 2 = 72.000 archivos diferentes son muchos archivos (pero muchos).

A pesar del aumento no es suficiente para crear todas las miniaturas que necesito, pero bueno, al menos he probado como se hace.
No se hasta que punto sera cierto lo que me dicen desde el soporte tecnico, pero mirando en en el servidor dedicado que tenemos, en una de las particiones que no llega a los 5 GB, el numero de inodes es bastante superior a lo que me dicen/ofrecen en el VPS.

Un saludo.
 
N

noguero

bueno, yo tengo un problema y es ke kiero sacar los adjuntos pero me da el siguiente error

Intentamos escribir un archivo de prueba en /path/to/your/attachment/directory, pero hubo error. Por favor verifica que el servidor web tiene permisos de escritura/borrado para esta ruta.

he visto ke no tenia esas carpetas y las he creado dando los permisos 777 pero sigo con el mismo error

lo hago bien para sacar los archivos?
 
Arriba