[筆記] 我觀 Roobin的「在Linux平台上安装和配置Ruby on Rails详解」
Roobin 寫了一篇 在Linux平台上安装和配置Ruby on Rails详解,裡面不只寫到一些基本的程式碼 make 的基本技巧,還提出許多性能上面的議題,實在是一篇好文章,下面有一些我看這篇文章所作的筆記記錄下來。
1. GC Path
Ruby解析器的GC Patch 這段介紹
2. 請多安裝 mysql-ruby
3. 安裝 MySQL Ruby Patch
可以試試的 Patch。
4. 啟動 Fastcgi 數量要慎選
5. OS 選擇
當然啦,我對於 OS 的選擇沒啥意見啦,這是使用者口味的不同,所以不加評論。我只能說我喜歡用 Ubuntu 來跑 Server,而樂多跑 Gentoo Linux 來跑得蠻穩的。大家都是 Linux ,Kernel 都一樣,使用套件也都差不多,穩不穩定,還有相容度好不好只是管理者功力的問題。
延伸閱讀
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 都一樣,使用套件也都差不多,穩不穩定,還有相容度好不好只是管理者功力的問題。
延伸閱讀
沒有留言:
張貼留言