通过与Rails重复相同的请求,我发现内存从137MB增加到323MB。我想了解其背后的机制。
关于我的nginx-passenger配置,我在我的vhost文件中设置了最少2个实例,最大实例数为5
以下是我可以重做的步骤
passenger-status
:。
/websites/example/current/public (production):
App root: /websites/example/current
Requests in queue: 0
* PID: 6801 Sessions: 0 Processed: 3 Uptime: 17s
CPU: 1% Memory : 121M Last used: 9s ago
* PID: 6808 Sessions: 0 Processed: 1 Uptime: 16s
CPU: 1% Memory : 100M Last used: 10s ago
* PID: 6836 Sessions: 0 Processed: 0 Uptime: 9s
CPU: 0% Memory : 64M Last used: 9s ago
现在让我们假设我在localhost上执行手动curl,它将从.html.erb模板curl http://localhost:3000/
Requests in queue: 0
* PID: 6801 Sessions: 0 Processed: 20 Uptime: 1m 40s
CPU: 2% Memory : 232M Last used: 2s ago
* PID: 6808 Sessions: 0 Processed: 1 Uptime: 1m 39s
CPU: 0% Memory : 100M Last used: 1m 33s ago
* PID: 6836 Sessions: 0 Processed: 0 Uptime: 1m 32s
CPU: 0% Memory : 66M Last used: 1m 32s ago
内存跃升至230MB。我知道这可能来自资产流水线,可能是一些视图片段的缓存。我想这是预料之中的。
现在我很难理解:我一直在向curl http://localhost:3000/
发送垃圾邮件(第三个应用消失了,因为没有足够的并行请求,正常)
Requests in queue: 0
* PID: 6801 Sessions: 0 Processed: 168 Uptime: 3m 40s
CPU: 2% Memory : 332M Last used: 2s ago
* PID: 6808 Sessions: 0 Processed: 3 Uptime: 3m 39s
CPU: 0% Memory : 101M Last used: 1m 33s ago
因此,从230MB增加到330MB(即使在同一URL上发送了更多请求后,从此处停止增长)。任何人都可能对这笔涨价有什么了解?
编辑:
我已经尝试了另一次乘客配置重新启动应用程序和发送卷曲请求的垃圾邮件,现在应用程序的内存占用停止在242MB处增加...不太确定会发生什么。我尝试清除了shared / tmp / cache文件夹(我使用本地FS作为缓存存储),但是它似乎不是从那里来的。