Alexey Ivanov
Alexey Ivanov

Reputation: 1

Capistrano task deploy:assets:precompile takes an hour

I have a problem when deploing on production, executing environment for assets precompile task takes too long (20 to 60 minutes)

deploy:assets:precompile
      01 ~/.rvm/bin/rvm default do bundle exec rake assets:precompile --trace
      01 do bundle exec rake assets:precompile --trace
      01 Ruby enVironment Manager 1.29.9 (latest) (c) 2009-2017 Michal Papis, P…
      01
      01 ** Invoke assets:precompile (first_time)
      01 ** Invoke assets:environment (first_time)
      01 ** Execute assets:environment
      01 ** Invoke environment (first_time)
      01 ** Execute environment

And it holds on this moment. Strace outputs something like this

 rubygems/request_set/lockfile.rb\331\"rubygems/bundler_version_finder.rb\264rubygems/resolver.rb\270rubygems/path_support.rb\267rubygems/uninstaller.rb\267rubygems/requirement.rb\272rubygems/version_option.rb\331 rubygems/local_remote_options.rb\331 rubygems/source_specific_file.rb\267rubygems/request_set.rb\331#rubygems/core_ext/kernel_require.rb\331 rubygems/core_ext/kernel_warn.rb\277rubygems/core_ext/kernel_gem.rb\264rubygems/platform.rb\271rubygems/uri_formatter.rb\331\"rubygems/install_update_options.rb\266rubygems/name_tuple.rb\262rubygems/errors.rb\265rubygems/util/list.rb\271rubygems/util/licenses.rb\277rubygems/gemcutter_utilities.rb\264rubygems/security.rb\267rubygems/mock_gem_ui.rb\277rubygems/installer_test_case.rb\267rubygems/source_list.rb\273rubygems/command_manager.rb\273rubygems/install_message.rb\331)rubygems/resolver/vendor_specification.rb\3319rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb\331=rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb\331Grubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb\331Mrubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb\3315rubygems/resolver/molinillo/lib/molinillo/resolver.rb\3317rubygems/resolver/molinillo/lib/molinillo/resolution.rb\3317rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb\331Krubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb\3313rubygems/resolver/molinillo/lib/molinillo/errors.rb\331Arubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb\331Irubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb\331Drubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb\331Hrubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb\331Irubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb\331Drubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb\331Rrubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb\331Qrubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb\331Arubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb\3312rubygems/resolver/molinillo/lib/molinillo/state.rb\331,rubygems/resolver/molinillo/lib/molinillo.rb\331\"rubygems/resolver/specification.rb\276rubygems/resolver/molinill"..., 442032982) = 442032982

And htop says than CPU usage is near 100%.

So it seems that problem is somewhere on bundling gems for running environment, but i have no idea how can I deal with it. There's no such problem when i deploy to staging, and running rails conslole on production (which do the same gems loading I guess) doesn't take too much time.

Upvotes: 0

Views: 296

Answers (1)

MUHAMMAD SOBAN
MUHAMMAD SOBAN

Reputation: 423

it is not recommended to compile assets on server, you should disable it and compile assets in local and commit assets and then deploy app. Rails guide for local assets compilation

Upvotes: 1

Related Questions