2012-08-30 10 views

Respuesta

2

Si está usando un pasajero, puede probar la memoria de pasajeros-stats que le da una buena descripción dividida por sitio; de lo contrario, puede hacerse una idea del uso de memoria utilizando top, shift-M y buscando el procesos ruby.

0

A pesar de su nombre, he utilizado con éxito el derailed_benchmarks gem para comparar dinámicamente el uso de memoria en una aplicación Padrino (basada en Sinatra). El docs describe cómo hacer esto para una aplicación que no es de Rails Rack: solo necesita definir DERAILED_APP en un simple Rake task para indicarle cómo iniciar su aplicación.

Se puede ejecutar con un servidor real (yo uso Unicorn) en su servidor local y potencialmente incluso con su base de datos de producción (defina DATABASE_URL). También se puede usar para probar cualquier punto final y evitar la autenticación, si es necesario. Los casos de uso incluyen el uso de la memoria a lo largo del tiempo (para encontrar fugas) y el perfil de las gemas/memoria de la biblioteca requerida en el arranque para un punto final dado (se usa mucho memoria al arrancar).

Como ejemplo, el comando bundle exec derailed exec perf:mem da el resultado a continuación para la raíz de mi aplicación al arrancar (aquí se esconde < 3 uso de MiB). Alrededor de 70 MiB cuenta con lo que las estadísticas de Heroku me dicen en mi servidor de producción. Mi aplicación se llama 'padfoot' por cierto.

TOP: 71.75 MiB mechanize: 19.0898 MiB (Also required by: /Users/me/dev/padfoot/lib/parsers/transaction_table_parser.rb, /Users/me/dev/padfoot/lib/scrapers/app_details_scraper.rb, and 4 others) mechanize/pluggable_parsers: 11.1055 MiB mime/types: 10.9766 MiB (Also required by: /Users/me/.rvm/gems/ruby-2.3.1/gems/rest-client-1.8.0/lib/restclient/request, /Users/me/.rvm/gems/ruby-2.3.1/gems/rest-client-1.8.0/lib/restclient/payload) padrino: 13.1016 MiB padrino-core: 8.0273 MiB (Also required by: padrino-cache, padrino-admin) padrino-core/application: 3.3555 MiB sinatra/base: 3.1406 MiB (Also required by: padrino-core/ext/sinatra, sinatra/main) padrino-helpers: 3.707 MiB (Also required by: padrino-cache, padrino-admin) padrino/rendering: 3.3203 MiB (Also required by: /Users/me/dev/padfoot/app/app.rb) /Users/me/dev/padfoot/config/apps.rb: 6.9805 MiB /Users/me/dev/padfoot/app/app.rb: 6.8906 MiB aws-sdk-core/s3: 6.3711 MiB /Users/me/dev/padfoot/lib/scrapers/gps/gps_scraper.rb: 4.25 MiB linguistics/en: 4.1523 MiB /Users/me/dev/padfoot/lib/scrapers/digimap/digimap_scraper.rb: 3.0547 MiB

Cuestiones relacionadas