【问题标题】:Passenger keeps throwing connection error乘客不断抛出连接错误
【发布时间】:2014-02-22 17:14:31
【问题描述】:

当我的网站获得高流量时,我通过 Google Analytics(分析)定期看到流量下降,并且 nginx 错误日志中出现这种错误:

App 17888 stderr: [ 2014-02-22 17:02:23.5307 19258/0x0000000609a820(Worker 1) utils.rb:68 ]: *** Exception Errno::ECONNRESET in Rack body object #each method (Connection reset by peer) (process 19258, thread 0x0000000609a820(Worker 1)):
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/unseekable_socket.rb:114:in `write'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils/unseekable_socket.rb:114:in `write'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:141:in `block in process_request'
App 17888 stderr:   from /home/ubuntu/.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.2.12/lib/active_record/query_cache.rb:46:in `each'
App 17888 stderr:   from /home/ubuntu/.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.2.12/lib/active_record/query_cache.rb:46:in `each'
App 17888 stderr:   from /home/ubuntu/.rvm/gems/ruby-1.9.3-p484/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_pool.rb:460:in `each'
App 17888 stderr:   from /home/ubuntu/.rvm/gems/ruby-1.9.3-p484/gems/rack-1.4.5/lib/rack/body_proxy.rb:31:in `each'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:140:in `process_request'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:142:in `accept_and_process_next_request'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
App 17888 stderr:   from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:441:in `block (3 levels) in start_threads'

我认为这与打开的套接字数量或其他有关,我不知道。所以问题是这是什么,我该如何解决。

这是关于我的服务器和应用程序的一些信息:

Nginx:

  • worker_processes:32
  • worker_connections:4096
  • passgener_max_queue_size: 0
  • passenger_max_pool_size: 75
  • passenger_min_instances: 75

导轨:

  • 活动记录池大小:16(这太小了吗?)

服务器:

  • 32 个 CPU
  • 60GB 内存

我还将允许打开的套接字数增加到 500K,允许打开的文件数增加到 300K。

【问题讨论】:

    标签: ruby-on-rails performance ubuntu nginx passenger


    【解决方案1】:

    ECONNRESET 是一个正常的套接字错误,仅表示客户端在请求/响应周期完成之前关闭了连接。您可以放心地忽略它。

    【讨论】:

    • 谢谢你说它是安全的。
    猜你喜欢
    • 2022-01-24
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2022-09-29
    相关资源
    最近更新 更多