基本服务器优化 - 1 个连接的慢速服务器
Basic server optimization – Slow server with 1 connection
我的服务器运行速度非常慢...除了我自己之外根本没有流量。我正在使用 Nginx 代理 Unicorn 服务器。我对服务器优化知之甚少。第一次加载时间总共13秒到第二次加载时间10秒。
网络:
http://i.imgur.com/AVaFlUF.png
http://i.imgur.com/qFVOUWr.png
http://i.imgur.com/OS4mYVM.png
让我缩短 10 秒的最快方法是什么?
注意: 资产尚未预编译。
编辑: 如果我将 Nginx 从进程中删除并直接服务于 Unicorn,我将减少到 1.72 秒。看起来 Nginx 是罪魁祸首。我仍然不知道为什么 Nginx 会拖慢我的速度。
你需要找出瓶颈在哪里。仅凭网络图很难猜测,但您应该检查系统中的以下级别:
- OS 级别 - 如果它有足够的资源:处理器使用率、负载平均值、内存(是否系统交换?)
- 数据库级别 - 瓶颈很可能出现在这里,因为您只有 1 个会话有问题;跟踪和检查数据库运行的查询并对其进行调整(索引、统计信息,取决于数据库服务器);在应用服务器 运行
时检查数据库锁
- 应用程序服务器级别 - 好吧,这取决于应用程序本身,但最好查看它的代码 运行;也许它在等待什么,比如来自外部系统的响应?
好吧...
瓶颈确实是由于 Nginx 或者更确切地说是 Nginx 和 Unicorn 之间的相互作用。直到我让 Unicorn 和 Nginx 在各自的配置文件中就一个套接字达成一致后,它才得到解决。
独角兽需要这个:
listen ENV["UNICORN_PORT"].to_i || 4567, :tcp_nopush => true
listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64
nginx 需要一个指向套接字的上游配置。
upstream unicorn_server {
server unix:/home/user/someapp/tmp/sockets/unicorn.sock
fail_timeout=0;
}
服务器首次响应时间现在缩短到 1-2 秒。
我的服务器运行速度非常慢...除了我自己之外根本没有流量。我正在使用 Nginx 代理 Unicorn 服务器。我对服务器优化知之甚少。第一次加载时间总共13秒到第二次加载时间10秒。
网络:
http://i.imgur.com/AVaFlUF.png
http://i.imgur.com/qFVOUWr.png
http://i.imgur.com/OS4mYVM.png
让我缩短 10 秒的最快方法是什么?
注意: 资产尚未预编译。
编辑: 如果我将 Nginx 从进程中删除并直接服务于 Unicorn,我将减少到 1.72 秒。看起来 Nginx 是罪魁祸首。我仍然不知道为什么 Nginx 会拖慢我的速度。
你需要找出瓶颈在哪里。仅凭网络图很难猜测,但您应该检查系统中的以下级别:
- OS 级别 - 如果它有足够的资源:处理器使用率、负载平均值、内存(是否系统交换?)
- 数据库级别 - 瓶颈很可能出现在这里,因为您只有 1 个会话有问题;跟踪和检查数据库运行的查询并对其进行调整(索引、统计信息,取决于数据库服务器);在应用服务器 运行 时检查数据库锁
- 应用程序服务器级别 - 好吧,这取决于应用程序本身,但最好查看它的代码 运行;也许它在等待什么,比如来自外部系统的响应?
好吧...
瓶颈确实是由于 Nginx 或者更确切地说是 Nginx 和 Unicorn 之间的相互作用。直到我让 Unicorn 和 Nginx 在各自的配置文件中就一个套接字达成一致后,它才得到解决。
独角兽需要这个:
listen ENV["UNICORN_PORT"].to_i || 4567, :tcp_nopush => true
listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64
nginx 需要一个指向套接字的上游配置。
upstream unicorn_server {
server unix:/home/user/someapp/tmp/sockets/unicorn.sock
fail_timeout=0;
}
服务器首次响应时间现在缩短到 1-2 秒。