如何debugging为什么我的服务器有3个延迟每个请求nginx /独angular兽?

我试图debugging为什么我的服务器有3秒延迟每个请求。

在这里输入图像说明

这些是我的nginx独angular兽configuration文件​​: 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 port 80输出 – > https://gist.github.com/c21d3a38e1d75fb2c4f1

为了debugging这个,我将系统地隔离每个组件以find瓶颈。 在任何时候,我会tail -f任何日志文件,包括nginx访问/错误日志和rails日志中的错误。

第一个问题是,它只是在生产中,还是在发展模式? 答案将通过关注环境之间的差异来帮助您诊断。

在独立模式下启动独angular兽进程,并在端口8080上连接,从而消除nginx。 还在慢吗? 如果是的话,这可能是铁轨或独angular兽的问题。 我怀疑nginx是否是问题,因为静态资产在您的网站上的服务速度相对较快。

在Webricktesting应用程序以消除独angular兽。 如果它仍然很慢,开始挖掘你的Rails应用程序。

我用telnet ck.uci.agh.edu.pl 80testing了你的站点,做了一个GET http://ck.uci.agh.edu.pl/并且在任何文本被打印之前,这个延迟就在那里。 这消除了在浏览器中的任何JavaScript或资产加载问题。

尝试的东西:

  • 通过模型查找在rails consoletesting应用程序的独立组件。 浏览每个显示主页的组件,直到find延迟。 尝试运行在您的index控制器操作中执行的代码以及您的页面在parsing时执行的任何内容。 您正在查找数据库问题,从连接延迟到外部服务等。

  • 在Pro模式下使用New Relic服务的试用期,可以显示应用程序瓶颈,例如数据库查询速度缓慢或者调用外部服务。 它显示你执行的一切,花费多less时间。

  • 在服务器的命令行上进行DNS查询,例如nslookup somehost.com 。 有时,如果某个DNS服务器在与其他服务器(如数据库服务器,地理位置服务等)通信时使用主机名,则可能会使应用程序变慢。

  • 我在你的configuration中看到的唯一的事情就是你应该把你的独angular兽worker_processes设置为至less服务器上的CPU数量。 尝试增加这个数字为4,看看这是否有帮助,但注意内存使用情况。

希望这可以帮助。 祝你好运!