[greenstone_es] Re: Problemas de perfomance como server web

Hola Carlos y todos:

llegue tarde. Justo este tema me interesa. Escribí un post sobre esto hace como 3 meses

Efectivamente las versiones de Biblioteca local o la interfaz CGI tienen una velocidad de respuesta totalemente diferente. (Siendo la version de Biblioteca Local mucho más rápida).
Esto esta dado por la arranque del programa.
Cuando uno arranca la biblioteca local "Server.exe" el programa lee todas las variables de inicio (los ficheros de configuración, las macros, etc) ademas de cada una de las colecciones. Despues de eso ya puede usarse el programa en el puerto que se haya configurado, y los cambios que uno pueda hacer en los *.cfg o en los ficheros de macros no se visualizan hasta que se reinicie la biblioteca por obvias razones. Habran visto que esto no pasa en la version CGI, donde cualquier cambio se ve reflejado al instante. Esto es porque en la version CGI el programa lee todas las variables cada vez que se hace una consulta. Este es el tiempo extra de demora al consultar colecciones en la version CGI (que es bastante lenta). Osea que en realidad greenstone no funciona como un Servicio, o como un servidor si no como una aplicación que se inicia, ejecuta y termina en cada consulta. Esto es facil de confirmar usando server.exe desde la línea de comando. Hasta donde averigué la forma de solucionar esto es usar FastCGI, que crea una copia en cache del programa con lo que incrementa la velocidad, pero no he averiguado como configurar FastCGI para que tome a Greenstone, a library.exe, como uno de los programas a cachear. Otra forma "casera" de incrementar la performance fue eliminar del fichero main.cfg en la carpeta etc el vinculo a todas las macros innecesarias (las que tienen que ver con la internacionalización) con esto conseguí un poquito mas de velocidad, pero no gran cosa. Por lo que no es una gran ventaja. Si alguien puede seguir con el tema creo que es beneficioso para todos. Lo ideal seria que greenstone al arrancar quede disponible como un servicio. Cosa que seguramente es posible pero no he encontrado documentacion al respecto. Seguramente en los grupos en ingles haya mas experiencias.

Un abrazo

Marcelo Yornet


Other related posts: