ubuntu – 如何调试为什么我的服务器在每个请求nginx/unicorn上有3s延迟?

我正在尝试调试为什么我的服务器在每个请求上有3秒的延迟.这些是我的nginx和unicorn配置文件:https://gist.github.com/regedarek/de7f2e5cd1918b6224ac我的服务器信息: Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-37-generic x86_64)

我正在尝试调试为什么我的服务器在每个请求上有3秒的延迟.

这些是我的nginx和unicorn配置文件:https://gist.github.com/regedarek/de7f2e5cd1918b6224ac

我的服务器信息:

  Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-37-generic x86_64)

  System load:  0.02              Processes:           71
  Usage of /:   38.9% of 6.89GB   Users logged in:     0
  Memory usage: 28%               IP address for eth0: 149.156.119.151
  Swap usage:   0%

server:~$cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 2
model name      : QEMU Virtual CPU version 1.0
stepping        : 3
microcode       : 0x1000065
cpu MHz         : 2300.026
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 4
wp              : yes
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm up nopl pni cx16 popcnt hypervisor lahf_lm svm abm sse4a
bogomips        : 4600.05
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical,48 bits virtual
power management:

这是从tcpdump -qtln端口80输出的 – > https://gist.github.com/c21d3a38e1d75fb2c4f1
最佳答案
为了调试这个,我会系统地隔离每个组件以找到瓶颈.在任何时候我都会关闭任何日志文件,包括nginx访问/错误日志和rails日志以查找错误.

第一个问题是,它只是生产缓慢,还是处于开发模式?答案将通过关注环境之间的不同来帮助您进行诊断.

以独立模式启动独角兽进程并在端口8080上连接,消除nginx.它还慢吗?如果是,那就是铁路或独角兽问题.我怀疑nginx是否存在问题,因为静态资产在您的网站上提供的速度相对较快.

在Webrick中测试应用程序以消除Unicorn.如果它仍然很慢,请开始挖掘您的rails应用程序.

我用telnet ck.uci.agh.edu.pl 80测试了你的网站,做了一个GET http://ck.uci.agh.edu.pl/,在打印任何文本之前有延迟.这消除了浏览器中的任何javascript或资产加载问题.

尝试的东西:

>通过模型查找在rails控制台中测试应用程序的隔离组件.逐个浏览显示主页面的每个组件,直到找到延迟.尝试运行在索引控制器操作中执行的代码,以及页面在解析时执行的任何操作.您正在寻找数据库问题,从连接到外部服务的延迟等.
>在Pro模式下使用New Relic服务的试用期,这可以揭示应用程序瓶颈,例如数据库查询速度慢或对外部服务的调用.它向您显示执行的所有内容以及花费的时间.
>在服务器的命令行上执行DNS查找,例如nslookup somehost.com.如果在任何与其他服务器(如数据库服务器,地理定位服务等)的通信中使用主机名,有时陷入困境的DNS服务器会降低您的应用程序的速度.
>我在配置中看到的唯一一件事是你应该将你的独角兽worker_processes设置为至少服务器上的CPU数量.尝试将此数字增加到4并查看是否有帮助,但请注意内存使用情况.

希望这可以帮助.祝好运!

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部