考虑到每个Ruby-On-Rails应用程序至少需要大约40MB的内存,我想知道是否有一种方法可以在一个Ruby解释器上运行多个rails应用程序实例(不同的),以便在不同的应用程序实例之间共享所有共享库(rmagick等),从而节省空间。
如果可能的话,我可以在一台256RAM虚拟服务器上运行5-6个rails应用程序。
这有可能吗?
发布于 2009-11-30 07:59:47
如果不对当前的代码库进行实质性的更改,我认为这是不可能的。
但并不是所有的东西都丢失了。
如果这些网站的流量相当低,并且你有一个快速的vps,那么你应该记住,如果实例在一段时间内不活动,mod乘客会将它们从内存中删除。因此,从理论上讲,只要同时只有几个活动的应用程序,您就可以运行无限数量的应用程序。价格是加载实例的第一个请求的较慢响应。
发布于 2014-06-16 04:32:42
另一种选择是加载所有共享库,然后分叉出与应用程序一样多的子进程(使用Process.fork),并在每个子进程中运行不同的应用程序。
只读不写的内存页将在父进程和子进程之间共享。
https://stackoverflow.com/questions/1815454
复制相似问题