Unicorn and Rails eat up 2x MySQL connections -


I run 10 unicorn workers for each server and they all eat mySQL connections over time, "lots of connection error. It starts with 10 connections, but gradually increases to 20.

When I run the following script (using the show processlist ), I can see that each IP (= app server) has 20 connections each where it Should be 10 - the number of excitly unicorn workers is doubled.

  Result = ActiveRecord :: base.connection.execute 'Show Prostallists' result.group_by {| I I [2] .split (':'). First} .map {| Kashmir, V. [K, v.size]} = & gt; [["192.168.1.2", 20], ["192.168.1.3", 20], ["192.168.1.4", 20], ...]   

The database here is Yml

  Production: Adapter: mysql2 ... pool: 1   

Here's the netstate:

  # netstat - a | Grep: 3306 TCP 0 9 20.168.1.2: 18585 192.168.1.123:3306 Installed TCP 0 192.168.1.2:45021 192.168.1.123:3306 Installed TCP 0 9 20.168.1.2: 518537 192.168.1.123:3306 Installed TCP 0 0 192.168 1.2: 45119192.168.1.123:3306 TIME_WAIT ... #netstate -n | Grep: 3306. WC-L 36 # NetState -n | Grep: 3306. Grep ESTABLISHED | Wc -l 33   

I am worried that there is only a few TIME_WAIT - it should not be that the connection should be all stable - it seems that the worker needs Get more connections than many free RAM, no swap / OOM

Ruby 2.0.0p0 / Rail 3.2.13

What is the reason?

Well, thanks for the advice, I found out that the agent has made his connection to his code in NewRelic :: Agent :: Database :: ConnectionManager #. Get_connection .

This code call ActiveRecord :: Base.mysql2_connection , which in turn calls Mysql2 :: Client.new , Which does not respect connection pool settings.

This only happens when there is a slow transaction (Ironically, this code overloads more databases), so it has been edited newrelic.yml

  transaction_tracer: explain_enabled: false   

and the problem is resolved! Until the new residue resolves this problem, I keep it in the same way.

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -