Roobin 寫了一篇
在Linux平台上安装和配置Ruby on Rails详解,裡面不只寫到一些基本的程式碼 make 的基本技巧,還提出許多性能上面的議題,實在是一篇好文章,下面有一些我看這篇文章所作的筆記記錄下來。
1. GC Path
Ruby解析器的GC Patch 這段介紹
根据他的评测表明,使用GC Patch并且设置了合适的GC参数之后,Ruby GC次数下降到原来的十分之一,有效的提高了Ruby在高并发情况下的吞吐能力
還有
这里值得一提的是,使用GC Patch和设置相应的参数之后,每个Ruby FCGI进程耗用的驻留内存是原来的两倍,因此除非你的服务器物理内存非常多,否则要慎用,避免Ruby FCGI吃光你的服务器内存。
這裡從來不知道有差,真的是長了智慧,
2. 請多安裝 mysql-ruby
rails发行包中已经自带纯ruby的MySQL数据库适配器,然而对于生产环境来说,我们仍然应该下载安装C版本的数据库适配器,以达到更好的性能。
我也聽說 ruby-mysql 比 mysql-ruby 來得慢。
3. 安裝 MySQL Ruby Patch
Stefan Kaes在这篇博客中提供了MySQL适配器的patch文件,根据他的评测,可以提高数据库访问30%左右的性能,因此建议用户下载使用该patch文件,那么安装过程改为:
tar xzvf mysql-ruby-2.7.3.tar.gz
cd mysql-ruby-2.7.3
patch < ../ mysql-ruby-2.7-less-string-copies-in-each-hash.diff ruby extconf.rb --with-mysql-dir=/opt/mysql5 make && make install
可以試試的 Patch。
4. 啟動 Fastcgi 數量要慎選
一般而言,不需要启动数量很多的FCGI进程,一个FCGI进程类似于一个Java应用服务器,启动10个FCGI类似于启动10个Java应用服务器了。由于Web Server和FCGI请求处理的网络速度差异,以及Web Server需要处理大量静态资源,经验数据表明:10个Web Server并发连接,仅仅需要1个FCGI并发进程。因此10个FCGI进程可以支撑100个Web Server的并发请求了,大约可以达到每天30万PageView。不过如果考虑到峰值并发,可以适当增加FCGI进程数量。
這裡的經驗法則很值得參考。
5. OS 選擇
另外我个人也不建议用ubuntu或者gentoo作Linux Server的OS来跑,作为一个服务器操作系统来说,要求是稳定可靠,硬件,软件,应用的兼容性好。
當然啦,我對於 OS 的選擇沒啥意見啦,這是使用者口味的不同,所以不加評論。我只能說我喜歡用 Ubuntu 來跑 Server,而樂多跑 Gentoo Linux 來跑得蠻穩的。大家都是 Linux ,Kernel 都一樣,使用套件也都差不多,穩不穩定,還有相容度好不好只是管理者功力的問題。
延伸閱讀
- Railsbench 官方網站
- MySQL-Ruby
- Stefan Kaes 提到的 Ruby-MySQL Patch
分享到:
相关推荐
### Ruby on Rails 环境搭建与 Passenger+Nginx 配置详解 #### 一、Ruby on Rails 开发环境搭建 在进行 Ruby on Rails 的开发之前,首先需要完成一系列的基础软件安装工作,包括但不限于 Ruby 语言环境、Rails ...
- **安装 Ruby 和 Rails**:首先确保 Ruby 和 Rails 已经正确安装在你的计算机上。可以通过命令行工具执行 `ruby -v` 和 `rails -v` 来验证安装情况。 - **创建第一个 Rails 应用**:使用命令 `rails new myapp` ...
**Ruby on Rails 101 知识点详解** Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web开发框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(CoC)理念,使得...
### Web敏捷开发与Rails实践详解 #### 一、Rails简介及环境搭建 Rails是一个用于Web开发的开源框架,它基于Ruby语言,强调简洁性、生产力和开发者效率。Rails通过约定优于配置的原则,使得开发者能够快速地搭建Web...
本文档将详细介绍如何在Windows 7系统下安装Redmine 1.3.0版本,并结合Ruby、Ruby on Rails以及MySQL等技术栈,帮助用户顺利完成部署。 #### 二、安装前准备 1. **操作系统**: Windows 7 2. **Redmine版本**: ...
2. **Ruby on Rails(Rails)**:Rails是一个使用Ruby语言编写的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。它以生产力和简洁性著称,其中"rake"是Rails的一个任务执行工具,类似于Unix的make。 ...
它提供了一个快速入门的方法,使 Java 开发者能够像使用 Ruby on Rails 那样高效地工作。 - **特点**: - **快速入门**: 提供更快捷的开发体验,使得开发者能够迅速搭建基于 Spring 的应用。 - **开箱即用**: 默认...
MVC模式在Web开发中非常常见,例如ASP.NET MVC、Spring MVC、Ruby on Rails等框架都采用此模式。此外,移动应用开发如Android和iOS也有类似的设计模式,如MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel...
3. **Web框架应用**:为了提高开发效率,Web开发者通常使用框架,如Java的Spring、Python的Django或Flask、Ruby on Rails等。这些框架提供了预设的结构和功能,如路由、模板引擎、ORM(对象关系映射)。学习框架能...
它的设计灵感来源于Ruby on Rails,旨在简化开发过程,提高开发效率,并遵循“约定优于配置”的原则,使开发者能够快速上手并创建稳定的Web应用。 **版本5.0.0的重大更新** CakePHP v5.0.0是该框架的一个重要里程...
后端可能采用了如Node.js、Django或Ruby on Rails等框架,配合数据库系统(如MySQL、MongoDB或PostgreSQL)来存储会议纪要。后端服务器处理来自前端的请求,将输入的非结构化文本转化为结构化的会议纪要,这可能...
2. 后端:后端可能采用Node.js、Python Flask或Ruby on Rails等技术,处理HTTP请求、存储和检索数据。数据库选择可能包括MySQL、PostgreSQL或NoSQL选项如MongoDB。 3. 版本控制:项目很可能使用Git进行版本控制,...
Laravel 的设计灵感来源于 Ruby on Rails,旨在简化 Web 应用程序的开发过程,提高开发效率,并提供丰富的功能以支持复杂的应用构建。在世界范围内(不包括中国),Laravel 在 PHP 框架中的市场份额超过40%,深受...
onwebnotes可能会使用Node.js(JavaScript的后端平台)搭配Express.js框架,或者选择其他后端语言如Python的Django或Ruby的Rails。后端主要负责处理数据、执行业务逻辑、管理用户权限及与数据库交互。 **数据库集成...
7. **开源文化**: GitHub 作为开源社区的重要平台,作者在这个平台上建立个人网站,也可能表示他对开源软件和文化的参与和支持。 通过 yzalvin.github.io-main 这个文件名,我们可以推测这是主仓库的文件,包含了...
后端可能会选择Node.js、Django或Ruby on Rails等技术栈,负责处理数据交互和用户认证。数据库系统(如MySQL、MongoDB或PostgreSQL)用于存储和管理用户信息、会议详情及票务数据。 **6. 测试与优化** 为了确保所有...