在64位操作系统上安装32位Ruby

时间:2013-04-15 17:31:53

标签: ruby x86 64-bit passenger

据我所知,当我们在64位Ruby上运行Ruby应用程序时,它消耗的内存比32位Ruby多,这是由于指针地址空间的原因。

我的机器有64GB RAM,所以为了访问完整的64GB内存,我安装了一个64位操作系统。

  1. 是否可以在64位操作系统上安装32位Ruby?
  2. 通过在64位操作系统上安装32位Ruby,我的32位Ruby能否使用64 GB RAM?
  3. 在64位操作系统上运行32位Ruby有哪些优缺点?
  4. 我注意到在64位Ruby上运行我的Ruby on Rails应用程序比使用32位Ruby消耗更多的RAM。我正在使用Phusion Passenger,因此它为每个请求分配或创建新的Ruby进程,因此每个Ruby进程(用户请求)在32位Ruby中限制为2 GB,或者整个Ruby进程仅限于32位访问2GB位Ruby。


    我的Rails应用程序代码库很大,我计划在单个服务器中为多个客户端复制相同的代码作为多个Rails应用程序,因此每MB的RAM对我来说很重要,所以如果有更多的RAM是免费的,我可以运行其他应用程序其他客户。

    有关应用程序架构的更多信息,请参阅“(Using phusion passenger + Nginx) running same rails app with multiple instance names with same port (80)”。

2 个答案:

答案 0 :(得分:4)

  

是否可以在64位操作系统上安装32位Ruby?

  1. 是的,有可能。
  2.   

    通过在64位操作系统上安装32位Ruby,我的32位Ruby能否使用64 GB RAM?

    1. 不,它无法访问64 GB RAM。默认情况下,32位进程限制为2 GB,如果标记为LARGE_ADDRESS_AWARE,则限制为3 max,但不是更多。
    2.   

      在64位操作系统上运行32位Ruby有哪些优缺点?

      1. 缺点:您的内存限制为2 GB。
      2. 但是,你无所畏惧。指针大小从32位(4字节)到64位(8字节)仅影响指针。如果您有64 GB的RAM和可以使用它们的64位处理器,请使用64位版本。

答案 1 :(得分:2)

  

...我计划在单个服务器中为多个客户端复制与多个Rails应用程序相同的代码,因此每MB的RAM对我来说都很重要......

不要编写单一的应用程序,编写较小的Rails应用程序,这些应用程序调用中央代码,为所有调用它的应用程序处理尽可能多的处理。它会慢一点,但内存效率要高得多。

查看RabbitMQ之类的内容作为后端。对于这类任务来说,它非常高效且非常棒。 AMQP宝石是你的朋友。

使用JSON将数据放在队列中。它使调试变得容易。