3

Rails 3.1.0 アプリを実行していますが、奇妙な問題があります。私たちのステージング サーバーでは、ほとんどアクティビティがなく、5 つの ruby​​ プロセスが常に次のように mySQL に ping を実行しています。

poll([{fd=12, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
write(12, "\f\0\0\0\3SHOW TABLES", 16)  = 16
select(13, [12], NULL, NULL, NULL)      = 1 (in [12])
read(12, "\1\0\0\1\1D\0\0\2\3def\0\vTABLE_NAMES\0\31Tabl"..., 16384) = 637
poll([{fd=12, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
write(12, "\f\0\0\0\3SHOW TABLES", 16)  = 16
select(13, [12], NULL, NULL, NULL)  

最後の行は不完全ですが、毎秒数回 (x5/6 プロセス) 話しています。サーバーは獣です。32GBのRAMがあり、多少最適化されていますが(mySQLセットアップ)、サーバーを殺しています。

私が言ったように、サーバーはほとんど活動していないので、ユーザーでもタスクでもありません。

(これをこのフォーラムから移動することを考えている管理者にとって、これは ruby​​/rails の問題だと思います。サーバー フォーラムにあったかどうかはわかりませんが、回答者との互換性は良好です)

アドバイスをいただければ非常に感謝しています。私は Linux/mySQL のプロではありません。

ありがとう

4

1 に答える 1

0

データベースの接続プールを調べます。これを実行すると役に立ちますか?

ActiveRecord::Base.clear_active_connections!

具体的には、この環境の config/database.yml で、pool: 50 を設定して Rails を再起動し、これが結果に影響するかどうかを確認してください。プールが使い果たされている場合の次の質問は、データベース接続プールが使い果たされている理由 (このコマンド、または resque で実行されている何か) の詳細に到達することです。プールのデフォルト サイズは 4 または 5 だと思います

于 2012-07-03T22:52:06.170 に答える