我有一个ruby 2.0 sinatra'faceless'应用程序通过调用外部服务来提供json。它工作正常。
主应用程序在ubuntu机器上的端口80上运行。
我还使用'foreman start'启动实例 - 因此它在同一个ubuntu虚拟机上的端口5000上运行。
在端口80实例上,进程'foreman master'占用CPU时间,而在相同负载下,端口5000上的那个基本上使用0 CPU。
$ ps -a l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 1615 1614 20 0 26140 17236 wait Sl+ tty1 0:28 foreman: master
0 1000 1899 1659 20 0 25036 16612 wait Sl+ pts/1 0:00 foreman: master
应用程序同时启动,两者都有相同的负载(非常轻,20分钟)。
我能看到的唯一区别是问题是使用sudo命令在端口80上启动,而另一个是作为用户进程启动的。
工头如何在tty终端输出日志条目与pts / 1终端之间有区别吗?
请注意,有40人在应用程序上敲击,工头主进程使用90%cpu,而应该进行工作的所有其他ruby进程都是1%(9个独角兽)。
我认为它与终端输出有关的处理方式不同,但我不确定。
感谢您的帮助。
有没有办法告诉工头或红宝石根本不写日志?
EDIT 我现在认为它与终端日志记录有关,因为我为部署应用程序关闭了95%,并且负载更好,但仍然高于正常的非rvmsudo命令。