ActionCable:为什么有这么多连接?
ActionCable: Why so many connections?
自从在本地开发环境中试用 ActionCable 以来。我注意到应用程序速度变慢并经常挂起。
如果我 运行 netstat 我看到很多连接,由 action cable 创建。这是预期的和正常的吗?
netstat -atn | grep 3000
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52163 ESTABLISHED
tcp4 0 0 127.0.0.1.52163 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52161 ESTABLISHED
tcp4 0 0 127.0.0.1.52161 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52159 ESTABLISHED
tcp4 0 0 127.0.0.1.52159 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52157 ESTABLISHED
tcp4 0 0 127.0.0.1.52157 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52155 ESTABLISHED
tcp4 0 0 127.0.0.1.52155 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52152 ESTABLISHED
tcp4 0 0 127.0.0.1.52152 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52146 ESTABLISHED
tcp4 0 0 127.0.0.1.52146 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 *.3000 *.* LISTEN
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51682 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51688 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51684 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51686 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51667 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51690 TIME_WAIT
我试过更改预先加载,但它似乎并没有改变这种行为
config.eager_load = true
production:
adapter: redis
url: redis://redis.example.com:6379
local: &local
adapter: redis
url: redis://localhost:6379
development: *local
test: *local
https://www.phusionpassenger.com/library/config/standalone/action_cable_integration/
关注link
异步适配器
异步适配器适用于 development/testing,不应在生产中使用。
Redis 适配器
Action Cable 包含两个 Redis 适配器:"normal" Redis 和 Evented Redis。这两个适配器都要求用户提供指向 Redis 服务器的 URL。此外,当多个应用程序使用相同的 Redis 服务器时,可以提供 channel_prefix 以避免通道名称冲突。有关详细信息,请参阅 Redis PubSub 文档。
PostgreSQL 适配器
PostgreSQL 适配器使用 Active Record 的连接池,因此应用程序的 config/database.yml 数据库配置用于其连接。这在未来可能会改变。
自从在本地开发环境中试用 ActionCable 以来。我注意到应用程序速度变慢并经常挂起。
如果我 运行 netstat 我看到很多连接,由 action cable 创建。这是预期的和正常的吗?
netstat -atn | grep 3000
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52163 ESTABLISHED
tcp4 0 0 127.0.0.1.52163 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52161 ESTABLISHED
tcp4 0 0 127.0.0.1.52161 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52159 ESTABLISHED
tcp4 0 0 127.0.0.1.52159 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52157 ESTABLISHED
tcp4 0 0 127.0.0.1.52157 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52155 ESTABLISHED
tcp4 0 0 127.0.0.1.52155 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52152 ESTABLISHED
tcp4 0 0 127.0.0.1.52152 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52146 ESTABLISHED
tcp4 0 0 127.0.0.1.52146 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 *.3000 *.* LISTEN
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51682 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51688 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51684 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51686 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51667 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51690 TIME_WAIT
我试过更改预先加载,但它似乎并没有改变这种行为
config.eager_load = true
production:
adapter: redis
url: redis://redis.example.com:6379
local: &local
adapter: redis
url: redis://localhost:6379
development: *local
test: *local
https://www.phusionpassenger.com/library/config/standalone/action_cable_integration/
关注link
异步适配器
异步适配器适用于 development/testing,不应在生产中使用。
Redis 适配器
Action Cable 包含两个 Redis 适配器:"normal" Redis 和 Evented Redis。这两个适配器都要求用户提供指向 Redis 服务器的 URL。此外,当多个应用程序使用相同的 Redis 服务器时,可以提供 channel_prefix 以避免通道名称冲突。有关详细信息,请参阅 Redis PubSub 文档。
PostgreSQL 适配器
PostgreSQL 适配器使用 Active Record 的连接池,因此应用程序的 config/database.yml 数据库配置用于其连接。这在未来可能会改变。