在 32 位或 64 位 Linux 操作系统服务器上使用 Nginx+mysql 运行 Ruby on Rails + Phusion Passenger 及其性能?

2023-12-24

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

这是我所知道的,如有错误请指正:

32 位操作系统无法使用超过 4GB 的 RAM,但通过pae http://en.wikipedia.org/wiki/Physical_Address_Extension这是可能的。通过这种方式,即使没有任何一个常规应用程序可以同时访问所有额外的内存,额外的内存也是有用的。所以我打算使用 64 位 Linux 操作系统服务器。

  1. 有64位的吗Ruby 企业版 http://www.rubyenterpriseedition.com/可用的?
  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 个 DB 的事务,由于 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. I plan to use Phusion Passenger for my Rails application deployment. I have 100 Rails applications and my questions are:
    1. 是否有 64 位 Phusion Passenger 可用。如果是的话,我在哪里可以找到它?
    2. 如果我在 64 位操作系统中使用 32 位 Phusion Passenger 运行 100 个 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 位应用程序/操作系统架构的评论和意见都是受欢迎的,我很高兴接受。


有64位的吗Ruby 企业版 http://www.rubyenterpriseedition.com/可用的?

  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 个 DB 的事务,由于 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 套接字或 TCP/IP 套接字,不依赖于 32 位或 64 位。

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

  1. 是否有 64 位 Phusion Passenger 可用。如果是的话,我在哪里可以找到它?
  2. 如果我在 64 位操作系统中使用 32 位 Phusion Passenger 运行 100 个 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卡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 32 位或 64 位 Linux 操作系统服务器上使用 Nginx+mysql 运行 Ruby on Rails + Phusion Passenger 及其性能? 的相关文章

  • Rails 查询连接关联表与别名

    我有一个模型Edge属于另一个模型Node通过不同的外键两次 def Edge lt ActiveRecord Base belongs to first class name Node belongs to second class na
  • Delphi XE5 FireDAC 错误:无法加载供应商库 [libmysql.dll 或 libmysqld.dll]

    我在 Windows 7 64 位上使用 Delphi XE5 只是尝试 FireDAC 组件 我正在使用一个 TFDConnection 组件连接到本地 MySQL 数据库 v5 6 15 我已经将 libmysql dll 32位 v5
  • Rails 6 - 操作文本和 API

    我正在创建一个 Rails 6 0 0 应用程序 它具有以下模块 网络 表格 Cruds Api 我使用的地方有一个 CRUD动作文本 https edgeguides rubyonrails org action text overvie
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • pyodbc 无法正确处理 unicode 数据

    我确实使用 pyodbc 成功连接了 MySQL 数据库 并且它可以很好地处理 ascii 编码的数据 但是当我打印使用 unicode utf8 编码的数据时 它引发了错误 UnicodeEncodeError ascii codec c
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 级联删除时触发调用

    我在 MySQL 中有表 A 它有一些对其他表 B C D 的级联删除的引用 当从 A 中删除某些内容时 我需要使用触发器 当我直接从 A 删除记录时 此触发器起作用 但它不适用于级联删除 是否存在任何版本的 MySQL 可以让我的触发器与
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • Symfony/Doctrine 重新排列数据库列

    当我使用doctrine schema update命令行生成表时 Doctrine 或Symfony 似乎想要添加一个命令来重新排列我的列 将键放在它出现的前面 我想知道是否 更希望在哪里 我可以禁用环境的这个 功能 所以当我去生成我的表
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • Python 子进程、mysqldump 和管道

    我在尝试构建简单的备份 升级数据库脚本时遇到问题 错误出现在使用子进程的 mysqldump 调用中 cmdL mysqldump user db user password db pass domaindb gzip gt databas
  • VIEW for 表结合 UNION ALL 的 MySQL 性能

    假设我有 2 张桌子MySQL create table persons id bigint unsigned not null auto increment first name varchar 64 surname varchar 64
  • 软删除最佳实践(PHP/MySQL)

    Problem 在处理产品和订单的 Web 应用程序中 我想维护前员工 用户 与他们处理的订单之间的信息和关系 我想维护过时产品和包含这些产品的订单之间的信息和关系 然而 我希望员工能够整理管理界面 例如删除前员工 过时的产品 过时的产品组
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 如何在 MySQL 中启用严格 sql_mode?

    我怎样才能启用严格sql mode在 MySQL 中 我想从 SQL 中获取数据并在中处理相同的数据strict mode 我现在的sql mode is mysql gt SELECT sql mode sql mode NO ENGIN
  • 忽略 GEM,因为它的扩展尚未构建

    在我的工作和家用计算机上 我最近将 Ruby 升级到 2 3 1 使用ruby install I use chruby作为我的 Ruby 切换器 我开始在我的终端中看到这个警告 Ignoring bcrypt 3 1 11 because
  • 如何更新 MySQL 数据库中的两列?

    这不起作用 UPDATE customers SET firstname John AND lastname Smith WHERE id 1 用逗号分隔值 AND是一个逻辑运算符 它的位置是WHERE and ON条款 UPDATE cu
  • Rails:验证字符串的最小和最大长度,但允许其为空白

    我有一个想要验证的字段 我希望该字段能够留空 但如果用户输入数据 我希望它采用某种格式 目前我在模型中使用以下验证 但这不允许用户将其留空 validates length of foo maximum gt 5 validates len
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐