小型 VM 上的 Ruby 1.9.1 或 Ruby 1.8.7 企业版?

标签 ruby

有人发布了类似的内容 here ,但是我很好奇哪个会运行得更快并为我节省更多内存?我知道 Matz 在 1.9 中做了很多改进,但我也支持 Phusion 人员做出的决定。

我的问题是哪个最适合在我只有 265mb 内存的 VM 上运行?

最佳答案

1.8.7 EE 现在是一个更安全的选择。 Ruby 应用程序的主要问题是明显无法共享内存(写时复制问题),修复这是 EE 的主要目标。

我管理着 8 个不同的网站,我们产品的所有运行版本都运行在 Rails、Merb、Rack 和 Thin 的混合版本上,所有版本都运行在普通的旧 Ruby 1.8.7 上。对于小型 Rails 应用程序,256Mb 就可以了。

您可以从下面看到我们的应用程序由 6 个进程组成; Rails (2) 和 Merb (4)。 Rails 进程 (mongrel_rails) 每个都使用 104Mb 的实际内存。我们的应用相当复杂,响应时间约为 0.5 秒,因此我们希望能够处理来自 2 个 Rails 进程的大约 4/5 的并发用户。看一下共享内存的数量少得惊人,就可以了解为什么 EE 如此有意义。我希望与 EE 有更高的共享部分。

正如他们所说的“您的体验可能会有所不同”,但没有什么能阻止您甚至尝试使用普通的旧 Ruby/Rails 并且仅在需要时才转向 EE。

top - 08:57:48 up 128 days, 11:57,  1 user,  load average: 0.07, 0.09, 0.09
Tasks:  76 total,   1 running,  75 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.4%us,  0.1%sy,  0.0%ni, 96.2%id,  0.0%wa,  0.0%hi,  0.0%si,  1.3%st
Mem:   1048796k total,   745840k used,   302956k free,     5192k buffers
Swap:  2097144k total,   634636k used,  1462508k free,   124816k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                 
25875 root      20   0  271m 104m 4616 S    0 10.2 141:07.07 mongrel_rails                                                                            
25872 root      20   0  263m 102m 4648 S    0 10.0 142:11.86 mongrel_rails                                                                            
21089 root      20   0  192m  84m 2436 S    0  8.3   2:52.03 merb                                                                                     
21088 root      20   0  173m  80m 2436 S    0  7.9   2:51.73 merb                                                                                     
21090 root      20   0  179m  74m 2436 S    0  7.3   2:42.83 merb                                                                                     
21086 root      20   0  113m  34m 1660 S   11  3.4   3752:37 merb                                                                                     
 4874 clavis    20   0  122m  31m 3804 S    0  3.1 127:52.87 profile_report                                                                           
 3662 mysql     20   0  368m  22m 3280 S    0  2.2 464:01.81 mysqld             

关于小型 VM 上的 Ruby 1.9.1 或 Ruby 1.8.7 企业版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2017382/

相关文章:

ruby-on-rails - Webpacker 部署问题 Rails 6

Ruby 备份 gem - 共享配置?

ruby - 如何使用 rspec 模拟 AWS SDK (v2)?

javascript - 迭代从数据库 Ruby/Javascript 检索的元素

ruby-on-rails - 在嵌套资源中创建新项目的问题

ruby - 在 Ruby 中搜索大文件的更简单方法?

ruby - 在优胜美地安装 Ruby 时出错

ruby - 将递归算法转化为广度优先队列

ruby-on-rails - 大多数现代 Smalltalks 的集成 IDE 最让您害怕的是什么?

ruby - nil 是如何从 NilClass 实例化的