我在 Slicehost 的 384MB VPS 上运行自己的 Web 服务器,在不同的虚拟主机上为两个 Ruby on Rails 应用程序提供服务。我使用 Apache2 运行 Phusion Passenger。以下是我的 Passenger.conf 的内容
<IfModule passenger_module>
PassengerRoot /opt/ruby-enterprise-1.8.6-20090610/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerLogLevel 0
PassengerRuby /usr/local/bin/ruby
PassengerUserSwitching on
PassengerDefaultUser nobody
PassengerMaxPoolSize 3
PassengerMaxInstancesPerApp 2
PassengerPoolIdleTime 300
# Ruby on Rails Options
RailsAutoDetect on
RailsSpawnMethod smart
NameVirtualHost *:80
</IfModule>
如果我在服务器上执行“top”,平均使用 314MB,这似乎太多了?我错了吗?如果没有,我可以采取哪些可能的措施来减少内存使用量?
谢谢!
答案1
这完全取决于您要托管的应用程序。应用程序拥有的模型/控制器越多,应用程序就越大。要更好地了解 rails 应用程序本身的使用量,请尝试发出命令。
passenger-memory-stats
我目前的中型应用程序正在使用:
### Total private dirty RSS: 68.93 MB
根据乘客的说法。如果你在同一个乘客实例上运行了一堆网站,它看起来可能更像这样:
### Total private dirty RSS: 1489.46 MB
还请考虑,如果您运行库存的 mysql 服务器,则设置并未真正针对 VPS(因此内存较低)的使用进行优化。