Rails server latency is very slow - ruby-on-rails

I have a Rails app on Passenger on Nginx on EC2 micro and the server time on an empty page is 3 seconds. Empty page means there's no layout, no JS, no CSS, HTML only consists of header and body tags with a "TEST" text. The controller does nothing.
Here is the server wait time from Chrome console for the empty page:
I also ran ruby-prof on the home page of my app and the total time is 0.2 seconds:
Total Time: 0.2830359935760498
Curiously, I created a new Rails app and deployed that instead, and the server wait time shown on Chrome is about ~1.8 seconds, so 1 second faster.
Anyone have any idea what I can do or try? I am using an EC micro instance. Should I move to a box with better network? I feel like this shouldn't be the issue. I've also tried similar testing with Apache instead of Nginx and had similar results. I don't think I have anything weird in Rails.
This is in my Gemfile:
source 'https://rubygems.org'
gem 'rails', '4.1.8'
gem 'sass-rails', '~> 5.0.1'
gem 'uglifier', '>= 1.3.0'
gem 'bower-rails'
gem 'angular-rails-templates'
gem 'therubyracer', platforms: :ruby
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'spring', group: :development
gem 'rake'
group :development, :test do
gem 'rspec-rails', '~> 3.5'
end
group :development do
gem 'pry'
gem 'better_errors'
gem 'binding_of_caller'
gem 'byebug'
end
gem 'oauth2'
gem 'stripe'
gem 'aws-sdk', '~> 2'
gem 'passenger'
gem 'google-adwords-api'
gem 'google-ads-common'
gem 'google-api-client'
gem 'httparty'
gem 'angularjs-rails'
gem 'dotenv-rails', :groups => [:development, :test, :production]
gem 'mailgun-ruby', '~>1.1.2'
gem 'font-awesome-rails'
gem 'ultrahook'
gem 'rack-reverse-proxy', :require => 'rack/reverse_proxy'
gem 'omniauth-google-oauth2'
gem 'city-state'
gem 'readmorejs-rails'
gem 'nokogiri'
gem 'rollbar'
gem 'ruby-prof'

Related

Rails 'bundle install' fails because attempt to write to file 'is unsupported by your OS'

I'm attempting to run a rails app on my local machine developed elsewhere, but I can't get it to run locally. When I run rails s to get the server running, I get:
Could not find proper version of railties (4.2.6) in any of the sources
Run `bundle install` to install missing gems.
So, naturally, I run bundle install but get the error:
Attempting to write to
`/home/rails/apps/intranet/shared/bundle/ruby/2.2.0` is
unsupported by your OS
My OS is macOS Sierra version 10.12.4.
Also, railties is in the gem folder and seems to be the correct version.
Thanks in advance.
Edit: Adding Gemfile
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.6'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
gem 'devise'
gem 'rails_admin'
gem 'carrierwave'
gem 'where-or'
# Railties
gem 'railties', '~> 4.2', '>= 4.2.6'
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'pry-rails'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'guard', require: false
gem 'guard-rspec', require: false
gem 'guard-bundler', require: false
gem "guard-cucumber", require: false
gem 'ruby_gntp'
gem 'terminal-notifier'
gem 'terminal-notifier-guard'
gem 'thin'
gem 'quiet_assets'
gem 'capistrano-rails'
gem 'capistrano-rvm'
gem 'capistrano3-unicorn'
gem 'capistrano-bundler'
gem 'better_errors'
gem 'binding_of_caller'
end
group :test do
gem 'database_cleaner'
gem 'capybara'
gem 'shoulda-matchers'
gem 'poltergeist'
gem 'launchy'
gem "cucumber-rails", require: false
end
Found out what was the issue. Since this was downloaded from a remote server, the .bundle/config file had a different path for 'BUNDLE_PATH'. I simply had to change that to the path on my own computer instead of the path on the remote server and I stopped getting the error.
check if you have write permissions to the directory /home/rails/apps/intranet/shared/bundle/ruby/2.2.0`

Rails Elastic Beanstalk connection time out - puma server

I have searched over the web and stackoverflow but could not get this right.
I have a rails app and deployed to elastic beanstalk. The health is ok and green but the url is not working. It waits a little while and the page says connection time out.
when I type eb open
gives an error;
ERROR: OSError :: [Errno 10] No child processes
Could not figure out why this is happening.
When I eb deploy
INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
INFO: Environment health has transitioned from Ok to Info. Application update in progress on 1 instance. 0 out of 1 instance completed (running for 4 seconds).
INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.
Can be a problem with load balancers? Where can I see if my database is created/migrated?
Here what I see error messages:
Gem file;
source 'https://rubygems.org'
gem 'rails', '4.2.0'
gem 'json', '~> 1.8.2'
gem 'bcrypt', '3.1.7'
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'carrierwave'
gem 'rmagick'
gem 'fog-aws'
#gem 'bootstrap-sass', '3.2.0.0'
gem 'sass-rails', '5.0.2' #it is added to new Rails applications by default.
gem 'dropzonejs-rails'
gem 'figaro'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
#gem 'jquery-ui-rails'
#//= require turbolinks TO ASSETS gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'sdoc', '0.4.0', group: :doc
gem 'wicked'
gem 'geocoder'
gem "mailboxer"
gem 'toastr-rails'
#gem "select2-rails"
gem 'jquery-cookie-rails'
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
gem 'puma'
end
Changing config.force_ssl = true to false fixed it for me

Bundle install cause strange error

I'm getting a strange error message when running bundle install or even just rails -v within a rails project root directory:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'railties' (>= 0) among 16 total gem(s) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /usr/local/bin/rails:22:in `<main>'
However this doesn't happen in my home directory /Users/myname
I messed up something and don't know what, any help?
EDIT
Gemfile
source 'https://rubygems.org'
ruby '2.2.0'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
gem 'checkr-official'
gem 'chronic'
gem 'devise', '~> 3.4.0'
gem 'exception_notification'
gem 'friendly_id'
gem 'geocoder'
gem 'kaminari'
gem "mini_magick"
gem 'mysql2'
gem 'linkedin'
gem 'omniauth'
gem 'omniauth-facebook'
gem "omniauth-google-oauth2"
gem 'RedCloth'
gem "refile", require: "refile/rails"
gem "refile-mini_magick"
gem 'StreetAddress'
gem "stripe"
gem 'truevault', github: "marks/truevault.rb", ref: "e3bda1af6bfb355"
gem 'whenever', '~> 0.9.4'
gem 'impressionist'
gem "koala"
gem 'twilio-ruby', '~> 4.11.1'
# CSS and javascript
gem 'coffee-rails', '~> 4.1.0'
gem 'compass-rails'
gem 'ejs'
gem 'faker'
gem 'font-awesome-sass', '~> 4.3.0'
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'momentjs-rails', '>= 2.8.1'
gem 'sass-rails'
gem 'uglifier', '>= 1.3.0'
# Generic admin requirements not specified elsewhere
gem 'bootstrap-sass', '>= 3.3' # 3.3 adds better support for media css object
gem 'simple_form', ">= 3.1.0.rc2"
# google api client used for dashboard authorization for google analytics
gem 'google-api-client'
gem 'capistrano', '~> 3.4'
gem 'capistrano-rvm'
gem 'capistrano-rails'
gem "capistrano-db-tasks", require: false
group :development do
gem 'awesome_print', :require => 'ap'
end
group :development, :test do
gem "factory_girl_rails", "~> 4.0"
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
gem 'pry'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring', '1.4.0'
end
This error is probably caused by a corruption of the Rails installation.
Try running gem list. If you don't see railties in the list, run gem install rails.
If that doesn't work, I think you should try starting afresh. Create a new gemset, install bundler and run bundle install. That should fix things.

Issue deploying RoR app in CF

I am trying to deploy a RoR app using Ruby 2.2.0 and Rails 4.2.0, gem file below. I can run the app locally but when I push to CF I get the following error without any helpful info.
2015-03-03T14:31:26.61-0500 [API] ERR Encountered error: Staging error: failed to stage application:
2015-03-03T14:31:26.61-0500 [API] ERR Script exited with status 255
I am using the CF community ruby buildpack (https://github.com/cloudfoundry/ruby-buildpack.git) since it seems to be the only one support ruby 2.2.
The command I am using to push is cf push myapp -b https://github.com/cloudfoundry/ruby-buildpack.git
Gemfile:
source 'https://rubygems.org'
ruby "2.2.0"
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
# https://github.com/namick/obfuscate_id
gem 'obfuscate_id', github: 'namick/obfuscate_id'
gem 'yui-compressor'
# https://github.com/attr-encrypted/attr_encrypted
gem 'attr_encrypted'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :development, :test do
gem 'rspec-rails', '~> 3.0'
gem 'factory_girl_rails', "~> 4.0"
gem 'capybara'
gem 'capybara-email' #, github: 'dockyard/capybara-email'
gem 'guard-rspec'
gem 'guard-livereload'
gem 'guard-resque', github: 'railsjedi/guard-resque'
gem 'launchy'
gem 'faker'
gem 'pry-byebug'
gem 'pry-macro'
gem 'seed_dumper'
gem 'ruby-prof'
# Enough of these assets messages in log!
gem 'disable_assets_logger'
gem 'railroady'
end
# Testing
group :test do
gem 'simplecov', require: false
gem 'rubocop', require: false
gem 'rubocop-rspec', require: false
gem "database_cleaner"
gem 'timecop'
gem 'poltergeist'
gem "fakeredis", :require => "fakeredis/rspec"
end
group :development do
# gem 'binding_of_caller', '>= 0.7.1'
# gem 'better_errors', '>= 0.7.2'
gem 'web-console', '~> 2.0'
gem 'binding_of_caller', '0.7.3.pre1'
gem 'capistrano'
gem 'capistrano-rvm'
gem 'capistrano-rails'
gem 'capistrano-resque', '~> 0.2.1', require: false
gem 'spring-commands-rspec'
gem 'awesome_print'
gem 'pry-rails'
gem 'meta_request'
gem 'bullet'
end
# Database
gem 'pg'
gem 'sqlite3'
gem 'cf-autoconfig'
gem 'groupdate'
gem 'redis-rails'
gem 'apartment', github: 'influitive/apartment'
# Service object pattern
gem 'interactor-rails', '~> 2.0'
# Currency
gem 'money-rails'
gem 'google_currency'
# Analytics
gem 'ga_events'
gem 'newrelic_rpm'
# Twitter Bootstrap
gem 'sass-rails', '4.0.3'
gem 'bootstrap-sass', '~> 3.3.1'
gem 'bootstrap-sass-extras'
gem 'autoprefixer-rails'
gem 'momentjs-rails', '>= 2.8.1'
gem 'bootstrap3-datetimepicker-rails', '~> 3.1.3'
# Design stuff
#gem 'table_for_collection'
gem 'simple_form', github: 'plataformatec/simple_form'
gem "font-awesome-rails"
# Static pages (without dealing with too many routes)
gem 'high_voltage'
gem 'nestive', '~> 0.5'
# Social Network Sharing
# gem 'shareable'
# Front-end
gem 'haml-rails'
gem 'draper', '~> 1.4'
gem 'humane-rails'
gem 'autonumeric-rails'
gem 'country_select'
# A/B Testing gem (remove for optimizely?)
gem 'split', require: 'split/dashboard'
# Structure js files and view integration
gem 'pluggable_js', '~> 2.0.0'
# Sign up wizard
gem 'wicked'
# Graphs
gem 'lazy_high_charts'
#Account management
gem 'devise'
gem 'devise_invitable'
gem 'omniauth'
gem 'omniauth-xero', github: 'kaleworsley/omniauth-xero'
gem 'omniauth-freshbooks'
gem 'omniauth-quickbooks'
#gem 'omniauth-linkedin'
#gem 'omniauth-twitter'
#gem 'omniauth-facebook'
#gem 'omniauth-yelp'
gem 'pundit'
# Audit
gem 'paper_trail', '~> 3.0.5'
gem 'activeadmin', github: 'activeadmin'
gem 'enumerize'
gem 'enum_help'
# External accounts
#gem 'xeroizer', '2.15.5'
gem 'freshbooks.rb'
gem 'quickbooks-ruby'
#https://github.com/cloocher/aggcat
#gem 'aggcat'
# MailChimp integration
gem 'gibbon'
# Contact us, https://github.com/plataformatec/mail_form
gem 'mail_form'
# Page caching
gem 'actionpack-page_caching'
# Other helpers
gem "workflow"
#gem "httparty"
gem "resque", "~> 1.25.2"
gem 'resque-status'
I actually ended up pulling a clean copy from git of my app and used the (https://github.com/cloudfoundry/ruby-buildpack.git buildpack and everything magically worked. I think Cloud Foundry was trying to use an old version of a buildpack somehow...

All Heroku Commands Are Broken due to Ruby Version

Everytime I run a heroku command I receive this error:
Your Ruby version is 1.9.3, but your Gemfile specified 2.1.2
This has been happening since I pushed several changes (adding sidekiq and making changes to my clock.rb file, also: a new model I need to migrate the db for)
Does anyone know why this might be happening? It only started after I added ruby '2.1.2' to the gemfile. But before that I was getting this funky segmentation fault error.
Here's my gemfile:
source 'https://rubygems.org'
ruby '2.1.2'
gem 'rails', '4.1.1'
gem 'pg'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'clockwork'
gem 'httparty'
gem 'omniauth-facebook'
gem 'parse-ruby-client'
gem 'parse_resource', '~> 1.8.0'
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby'
gem 'sidekiq'
gem 'foundation-rails'
group :development, :test do
gem 'pry-rails'
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'shoulda-matchers'
gem 'valid_attribute'
gem 'capybara'
gem 'dotenv-rails'
gem 'better_errors'
gem 'binding_of_caller'
end
group :production do
gem 'rails_12factor'
gem 'thin'
end
It's seems to related bundler issue. Go through here https://github.com/sstephenson/rbenv/issues/400 same sort of issue also here get fixed with :
# Rakefile
task :freedom do
Bundler.with_clean_env { sh "heroku" }
end
Hope this help you!
I had two applications using Ruby. In your terminal, change to the directory of the application, then check the Ruby version you are using. Update it appropriately.

Resources