Tiempos de respuesta de Ror+Apache

Listeros,

Estoy un poco liado por el tema de poner en explotación una
aplicación desarrollada en Rails, ya que llevo tres meses desarrollando esta
aplicación y en mis pruebas de rendimiento con Apache el tema de los
tiempos de respuesta no ha sido de lo mejor, actualmente tengo un
maquina de desarrollo montada con Ubuntu + Apache 1.3 + DBI-Ruby MSSQL
y otra maquina WIN$$$ con una DB MSSQL2000 una base de datos heredada,
el tema de la conexión con SQL SERVER fue facil copiar esto, aquello y
vuala! estamos con conectados con la Db, pero al momento de utilizar la
aplicación en modo explotación (producción) los tiempo de navegación se
incrementan bastante.

Cuales han sido sus experiencias respecto de poner aplicaciones en
producción.
Desde ya gracias!

Mauricio

No entiendo mucho lo que expones en el e-mail:

  • ¿la máquina de producción es la misma que la de desarrollo?
  • ¿en desarrollo también utilizabas la misma base de datos que en
    producción?- ¿en producción estás accediendo tú sólo o varios usuarios concurrentemente?

Y los típicos consejos:

  • usar FasCGIs o Mongres en lugar de los clásicos CGIs
  • pues habilitar el logger extendido de consultas SQL en modo
    producción y comprobar las diferencias de tiempos realizando las
    mismas consultas
  • otra prueba sería lanzar los tests en ambas arquitecturas (si
    resulta que son distintas máquinas, claro)

A ver si respondiendo a las cuestiones de arriba te podemos ayudar un
poco más :slight_smile:

Estas usando FCGI webrick mongrel o dispatch.rb directo?

Debes tener presente que es monothread, por lo tanto si quieres
concurrencia, debes hacer correr mas de un proceso FCGI o un mas de un
mongrel (en este caso usar mongrel_cluster).

El guru africano recomienda:

Apache 2.2+mod_proxy_balancer+mongrel_cluster

De que forma te conectas al MSSQL?

Saludos

P

Hola Fernando,

Gracias por responder, haber si puede explicarmen mejor:

Desarrollo (2 maquinas)
1.- Ubuntu + Apache 1.3 + BDI-Ruby para ADO.rb + Ror
2.- MS SQL 2000 + Windows XP, base de datos de desarrollo

Desarrollo (2 maquinas)
1.- Debian Sarge + Apache 1.3 + BDI-Ruby para ADO.rb
2.- MS SQL 2000 + Windows 2000 Advancer Server , base de datos de
desarrollo.

Por el momento las bases de datos estan siendo accedidas solo por mi,
pero se pretende tener un cantidad de accesos concurrentes de 15
usuarios.

Mauricio

Eso funciona, no es muy performante, yo lo utilice para una migracion.

No se si hay opciones mas performantes para acceder a mssql desde RoR

El guru africano no usa mssql.

Saludos

P

Hola Pedro,

Buscare la info quie mensionas, respecto de MSSQL esto lo encontre el el
Wiki de Ror en Argentina.

onrails.com.ar Wiki
Conexion a MS Sqlserver

Obtener la ultima distribucion del Ruby-DBI de:
http://rubyforge.org/projects/ruby-dbi/ y copiar el archivo.

src/lib/dbd_ado/ADO.rb

a:

X:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb

(Hay que crear el directorio ADO).

Ahora nos queda simplemente configurar nuestra db
railsapp/config/database.yml

Aca va un ejemplo:

development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

Eso es todo

Si el servidor de la base de datos esta en el mismo equipo que Rails
puedes usar ‘.’ como host name.

Nota: Puede ser obvio pero recordar evitar los tabs en los yml,
especialmente si haces copy-paste de este codigo.

Note: Si el puerto no es standard:

development:
adapter: sqlserver
database: database_name
host: server_name,5555
username: user_name
password: your_pw_here

Maurcio

Hay mucho sp?

No, no mucho, algunos cursores por alli, pero nada demaciado complejo.

Mauricio

Estoy de acuerdo, pero en este caso la Db es heredada, veo dificil poder
migrar a Postgresql, hay barreras de conocimiento para el resto y para
mi tambien.

Mauricio

On Fri, Oct 06, 2006 at 09:51:41PM +0200, Fernando B. wrote:

No entiendo mucho lo que expones en el e-mail:

  • ¿la máquina de producción es la misma que la de desarrollo?
  • ¿en desarrollo también utilizabas la misma base de datos que en producción?
  • ¿en producción estás accediendo tú sólo o varios usuarios concurrentemente?

Y los típicos consejos:

  • usar FasCGIs o Mongres en lugar de los clásicos CGIs
Oh, Dios. Esto es lo primero que tienes que mirar. ¡Si no has 

cambiado la
configuración para usar FastCGI, el rendimiento será completamente
penoso!

Si no estás seguro, lo más probable es que no lo hayas cambiado. Y 

si
estás ejecutando con CGIs tradicionales… lo raro es que el
rendimiento
fuera aceptable :slight_smile:

migrar a mysql no es dificil y no deberia ser muy complicado

de hecho hay herramientas que hacen ese trabajo :slight_smile: