使用nginx和两个物理Linux服务器的Web应用程序的可伸缩性

问题描述 投票:0回答:1

我的web应用程序ruby on rails正在获得越来越多的吞吐量。使用New Relic,我的Apdex得分<0.7

我的应用程序在我的Debian服务器上运行(例如:ip pulic是123.235.23.16),带有Nginx和THIN。代码和数据库mysql都在这个服务器中。

我的应用程序有3个应用程序实例,由THIN(0.0.0.0:3000,0.0.0.0:3001,0.0.0.0:3002)创建。在Nginx http配置中,我使用负载均衡方法:

upstream myapp1 {
        server 127.0.0.1:3000;
        server 127.0.0.1:3001;
        server 127.0.0.1:3002;
    }

server {
        listen 80;
        ...
        location / {
            proxy_pass http://myapp1;
        }
        ...
    }

我想知道我是否添加了另一个Debian服务器(例如:ip pulic是123.235.23.17)来帮助第一台服务器提供吞吐量,哪个服务器应配置为nginx load balaancing服务器?如何使用两个不同的服务器和不同的应用程序实例来处理mysql数据库io? mysql远程?

mysql ruby-on-rails ruby nginx apdex
1个回答
1
投票

如果响应时间主要由队列时间引起,则添加更多物理服务器或主机只会影响您的Apdex分数,这种情况会发生,但在Rails生产工作负载中相对较少。

Rails应用程序花费时间最常见的地方是I / O及其数据库。检查N + 1爆炸的查询计数,检查NewRelic或数据库本身的慢查询日志,看看添加索引是否有帮助。如果性能命中仅限于少量页面,请使用一些缓存进行调查。

主页也很常见,但其他页面都可以。看看您的Apdex分数是否主要受到一些坏页面的影响,而不是整体应用程序的缓慢程度。

© www.soinside.com 2019 - 2024. All rights reserved.