2009-11-29 28 views
0

鉴于每个Ruby-On-Rails应用程序至少需要大约40MB的内存,我想知道是否有一种方法可以运行多个Rails应用程序实例(不同的) Ruby解释器,以便所有共享库(rmagick等)在不同的应用程序实例之间共享,节省空间。通过一个Ruby解释器实例服务多个Rails应用程序

如果可以的话,我可以在单个256RAM虚拟服务器上运行5-6个应用程序。

这可能吗?

回答

0

我不认为这是可能的,而不会大幅改变当前的代码库。

但一切都不会丢失。

如果这些网站的流量相当低,并且你有一个快速的vps,你应该记住,如果mod的乘客在一段时间内不活跃,它会从内存中删除这些实例。所以从理论上讲,只要您只有几个活动在同一时间,您就可以运行无限量的应用程序。对于加载实例的第一个请求,价格较慢。

+0

谢谢。是的,这可能是一个解决方案,但不是原来的问题:)另外,在许多情况下,“打开”一个红宝石应用程序的延迟时间是几秒钟。这让用户感觉网站很慢 - 甚至可能在加载之前离开网站。 – Asterios 2009-12-02 09:31:03

0

另一个选择是加载所有共享库,然后像应用程序一样分离尽可能多的子进程(使用Process.fork)并在每个子进程中运行不同的应用程序。

只有读取和未写入的内存页面将在父进程和子进程之间共享。

相关问题