Estoy en el medio de actualizar una antigua aplicación Rails y PostgreSQL de 2.1 a Rails 3 (a través de un paso intermedio exitoso 2.3.11).Unicornio! y PostgreSQL
Finalmente, cuando obtuve todas las Rspecs funcionando sin problemas, instalé Mongrel 1.2.0.pre2 y lo inicié y ejecuté, todo está bien. Incluso el caso de prueba JMeter con 100 usuarios simultáneos pasó OK.
¡Pero cuando intenté lo mismo con Unicornio! servidor, funciona bien cuando lo uso yo mismo, pero cuando lo tengo bajo carga con JMeter, comienza a dar 100% de errores desde el momento en que JMeter intenta enviar un inicio de sesión. Al mismo tiempo, cuando compruebo alguna página específica, me da errores extraños como este:
undefined method `eq' for nil:NilClass
En la terminal me sale el siguiente resultado (pero sólo un par de veces):
message type 0x43 arrived from server while idle
message type 0x5a arrived from server while idle
WARNING: there is already a transaction in progress
EDIT: esto parece ser un problema con compartir PGconnect
objeto, por lo que elimina algunos de texto anterior
encontré que PostgreSQL docs especifican que PGconn
objeto no debe ser compartida entre hilos haciendo solicitudes concurrentes.
Is Unicorn! o AR mezclando solicitudes de diferentes subprocesos en el mismo objeto PGconn
?
database.yml:
production:
adapter: postgresql
encoding: unicode
database: ***
username: ***
password: ***
host: 127.0.0.1
que incluso trató de añadir este fue en vano:
allow_concurrency: true
unicorn.conf:
worker_processes 8
working_directory "/full/path/to/app"
listen '/tmp/app.sock', :backlog => 512
timeout 30
pid "/full/path/to/app/tmp/pids/puppetmaster_unicorn.pid"
preload_app true
if GC.respond_to?(:copy_on_write_friendly=)
GC.copy_on_write_friendly = true
end
Especificaciones:
- Rails 3.0.6 (debido a implementación env)
- Unicornio! 4.1.1
- Nginx 1.0.5
- pg joya 0.11.0
- PostgreSQL 9.0.4
- Mac OS X 10.7.2
Si rieles versión debería ser el culpable, por supuesto Puedo actualizar a lo último. Empecé con lo que tiene el proveedor de servicios.
¿Cuántos trabajadores unicornio Cómo se crea en unicorn.rb? ¿Qué tiempo de espera? – stephenmurdoch
He actualizado mi pregunta con unicorn.conf – Laas