You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Passenger Rails应用中优雅重启单个进程?

Passenger 单个进程重启与轮询重启配置方案

手动重启单个进程

  • 先运行 passenger-status 查看当前应用的所有进程,找到要重启的进程PID
  • 执行 passenger-config restart-app /path/to/your/app --pid=目标PID,替换实际的应用路径和进程PID,就能单独重启该进程,不影响其他进程运行

配置自动轮询重启(适配内存泄漏排查场景)

按请求数触发

在Apache的配置文件(比如虚拟主机配置或httpd.conf)里添加:

PassengerMaxRequests 10000

每个进程处理满10000个请求后会自动优雅重启,新请求会分配给其他正常进程,实现逐步替换。

按内存阈值触发

添加以下配置,当进程内存超过设定值时自动重启:

PassengerMemoryLimit 1024

这里的1024单位是MB,可根据你的应用内存使用情况调整。

按闲置时间触发

如果应用有周期性闲置时段,可以设置:

PassengerPoolIdleTime 3600

进程闲置超过3600秒(1小时)就会自动关闭,新请求进来时会启动新进程,间接完成旧进程的替换。

滚动重启所有进程(优雅不中断)

如果需要逐步替换所有进程但不想一次性重启整个应用,直接运行:

passenger-config restart-app /path/to/your/app --rolling-restart

这个命令会逐个重启进程,保证始终有可用进程处理请求,非常适合排查内存泄漏时逐步更新进程。

注意事项

  • 修改Apache配置后,执行 apachectl graceful 让配置生效,无需强制重启整个Apache服务
  • 排查内存泄漏期间,可以用 passenger-memory-stats 持续监控各进程的内存占用情况,配合单个进程重启来定位问题

内容的提问来源于stack exchange,提问作者user1130176

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:02:35