passenger-memory-stats
----- Passenger processes -----
PID VMSize Private Name
-------------------------------
28572 207.4 MB ? Rack: /home/myapp/application
28580 207.0 MB ? Rack: /home/myapp/application
28588 206.0 MB ? Rack: /home/myapp/application
28648 206.5 MB ? Rack: /home/myapp/application
29005 23.0 MB ? PassengerWatchdog
29008 100.5 MB ? PassengerHelperAgent
29010 43.1 MB ? Passenger spawn server
29013 70.8 MB ? PassengerLoggingAgent
29053 202.0 MB ? Passenger ApplicationSpawner: /home/myapp/application
29105 202.3 MB ? Rack: /home/myapp/application
29114 202.3 MB ? Rack: /home/myapp/application
29121 202.3 MB ? Rack: /home/myapp/application
29130 202.3 MB ? Rack: /home/myapp/application
29138 202.3 MB ? Rack: /home/myapp/application
这看起来像很多衍生的流程......这是一个目前正在开发的应用程序,没有人(我知道)会点击它......
passenger-status
App root: /home/myapp/application
* PID: 29105 Sessions: 1 Processed: 0 Uptime: 15m 11s
* PID: 29114 Sessions: 1 Processed: 0 Uptime: 14m 0s
* PID: 29121 Sessions: 1 Processed: 0 Uptime: 14m 0s
* PID: 29130 Sessions: 1 Processed: 0 Uptime: 14m 0s
* PID: 29138 Sessions: 1 Processed: 0 Uptime: 14m 0s
首先,这是正常的吗?
第二,可能的原因?
答案 0 :(得分:3)
对于任何有这个Rails问题的人来说......如果你在有限的内存VPS上运行,请检查并确保你调整你的max_pool,这样你就不会产生太多的应用程序实例供系统处理。默认值为6,对于内存严重的VPS来说显然太多了。
有关最大泳池设置的文档: http://www.modrails.com/documentation/Users%20guide%20Nginx.html#PassengerMaxPoolSize
答案 1 :(得分:0)
某些流程可能会从您应用的早期版本中幸存下来。我们的应用程序Rack处理每个指向我们应用程序的特定版本。
95171 2491.8 MB 4.8 MB机架:/ Deploy / theapp / releases / 20120530013237
并且有多个进程指向许多不同的版本。这导致我得出结论,当应用程序重新启动时,这些都会遗留下来。
我想可能是触摸tmp / restart.txt而不是重启apache有这种效果。所以我将:use_sudo设置为true,并重新启动'运行"#{try_sudo} / opt / local / apache2 / bin / apachectl graceful"'相反,我看到的唯一Rack过程就是那些刚刚开始的过程。