2

我有 Java 背景,并且是 Ruby on Rails 的新手,在为我的服务器选择 32 位或 64 位 Linux 操作系统时有很多困惑。

这是我所知道的,如果我错了,请纠正我:

32 位操作系统不能使用超过 4GB 的 RAM,但通过pae是可能的。这样,即使没有单个常规应用程序可以同时访问所有额外内存,额外内存也很有用。所以我打算使用 64 位 Linux 操作系统服务器。

  1. 是否有 64 位Ruby 企业版可用?
  2. 在 64 位 Linux 操作系统中安装 32 位 MySQL 5 还是 64 位 MySQL 5 更好?我将拥有 32GB 内存。
  3. 在 64 位操作系统上运行 32 位应用程序,并考虑在 64 位操作系统上运行 32 位 MySQL,是否有任何物理内存 (RAM) 限制?我想知道在 64 位操作系统上运行 32 位 MySQL 的任何陷阱或缺点。
  4. 假设我在 64 位 Linux 操作系统上安装了 32 位 MySQL 5,它是否能够有效地利用我的 RAM?我问这个是因为 32 位应用程序进程每个进程不能使用超过 4GB 的 RAM。(如果我错了,请纠正我)32 位 Mysql 将作为 N 个数据库的单个进程(mysqld)运行。如果我有 100 个数据库,对于 100 个数据库的事务,由于 MySQL 的 32 位限制,MySQL 使用 4GB 的 RAM。
  5. 假设我在 64 位 Linux 操作系统上安装了 64 位 MySQL 5,MySQL 64 位和 Ruby on Rails 之间是否存在任何 gem 不兼容?我想知道是否有可用的 MySQL 5 64 位 gem?注意:我使用的是 MySQL 适配器而不是 MySQL 2。
  6. 我计划将 Phusion Passenger 用于我的 Rails 应用程序部署。我有 100 个 Rails 应用程序,我的问题是:
    1. 是否有 64 位 Phusion Passenger 可用。如果是,我在哪里可以找到它?
    2. 如果我在 64 位操作系统中运行 100 个带有 32 位 Phusion Passenger 的 Rails 应用程序,我的 Phusion 能否有效利用我的 32 GB RAM?
    3. Phusion Passenger i100 中的 100 个 Rails 应用程序是进程还是 100 个线程?
  7. 为了通过 Ruby on Rails + Nginx-Phusion Passenger + MySQL 有效地利用我的硬件,对于 32 位和 64 位应用程序以及操作系统,我需要做什么?

我的申请信息是:

Ruby - 1.8.7
Rails - 2.3.5
Database - mysql5
Database adapter - MySQL, Note - not mysql2 
server - Phussion Passenger + Nginx Module

我的专用服务器配置是:

OS         Debian 32-bit or 64-bit (still not decided)

CPU         AMD Opteron™ 3280
Quantity    Octo-Core
Clock Rate  8x 2.4 GHz (so total 19.2 GHz)
Processor passmark score is 5722 [http://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+3280]


Main Memory

Capacity    32 GB RAM
Type    DIMM (DDR3)

Hard Disks

Quantity    2
Capacity    2,000 GB (ie) 2 TB + 2 TB
Type    SATA II, 7,200 rpm, 8 MB
RAID    RAID 1 by software

Mainboard

Chipset AMD 880G
Network Broadcom BCM57780

任何关于服务器配置和 32 位/64 位应用程序/OS 架构的评论和意见总是受欢迎的,我很高兴接受。

4

1 回答 1

2

是否有 64 位 Ruby 企业版 可用?

  1. Ruby 是免费的,没有企业版或其他版本。

在 64 位 Linux 操作系统中安装 32 位 MySQL 5 还是 64 位 MySQL 5 更好?我将拥有 32GB 内存。

  1. 使用 64 位。

在 64 位操作系统上运行 32 位应用程序,并考虑在 64 位操作系统上运行 32 位 MySQL,是否有任何物理内存 (RAM) 限制?我想知道在 64 位操作系统上运行 32 位 MySQL 的任何陷阱或缺点。

  1. 还有一个 64 位版本的 MySQL 可用,所以没有问题。

假设我在 64 位 Linux 操作系统上安装了 32 位 MySQL 5,它是否能够有效地利用我的 RAM?我问这个是因为 32 位应用程序进程每个进程不能使用超过 4GB 的 RAM。(如果我错了,请纠正我)32 位 Mysql 将作为 N 个数据库的单个进程(mysqld)运行。如果我有 100 个数据库,对于 100 个数据库的事务,由于 MySQL 的 32 位限制,MySQL 使用 4GB 的 RAM。

  1. 使用 64 位版本,您甚至不必考虑这一点。

假设我在 64 位 Linux 操作系统上安装了 64 位 MySQL 5,MySQL 64 位和 Ruby on Rails 之间是否存在任何 gem 不兼容?我想知道是否有可用的 MySQL 5 64 位 gem?注意:我使用的是 MySQL 适配器而不是 MySQL 2。

  1. 您使用哪个版本的 MySQL 并不重要,因为接口是 Unix 套接字或不依赖于 32 位或 64 位的 TCP/IP 套接字。

我计划将 Phusion Passenger 用于我的 Rails 应用程序部署。我有 100 个 >Rails 应用程序,我的问题是:

  1. 是否有 64 位 Phusion Passenger 可用。如果是,我在哪里可以找到它?
  2. 如果我在 64 位操作系统中运行 100 个带有 32 位 Phusion Passenger 的 Rails 应用程序,我的 Phusion 能否有效利用我的 32 GB RAM?
  3. Phusion Passenger i100 中的 100 个 Rails 应用程序是进程还是 100 个线程?
  1. 我不太清楚,但你也应该考虑使用 Thin 和 nginx,它在性能方面与 Phusion Passenger 相当。

为了通过 Ruby on Rails + Nginx-Phusion Passenger + MySQL 有效地利用我的硬件,对于 32 位和 64 位应用程序以及操作系统,我需要做什么?

  1. 使用 64 位!

另外我建议你买一个RAID卡。

于 2012-08-13T14:24:03.093 回答