大學甄選入學交叉查榜開發誌

Development Log for Project Qizhang

[筆記] 也許是對於 server 的最佳化

有人建議我可以 po 一些技術類的文章,所以來吧。

最近幾天針對伺服器軟體做了一些最佳化 (謎: 你不是期中考嗎?),不知道眾鄉民有沒有覺得最近一、兩天網站的速度變快了?我是覺得有變快。包括也改了一些程式,因此寫一點筆記。有興趣寫 Ruby on Rails 程式的可以參考參考。

ksk 的利器? mod_rails

網站運作速度變快,主要我覺得是因為我改用「號稱」極速的 mod_rails (Phusion Passenger) 這個專門為 Ruby on Rails 量身打造的 Apache 2 Module ,取代了原本一次開十隻 cluster 的 mongrel_rails

差別在於,之前是把十隻 cluster 一次全部開起來放在記憶體裡面當 daemons ,然後透過 mod_proxy 設定 proxy balancer 使 apache 可以調配 client 用戶該使用哪一個 daemon 來應對(詳細方法可以參考我去年寫的這篇文章)。而現在有了 mod_rails,直接讓 Phusion Passenger 去控制要有多少個 processes 開在記憶體中,甚至是有連線進來才啟動 rails,沒連線就統統關掉,有點像是 mod_php5 。

實作方法很簡單,照著這篇文章做就 ok 了,或是看官方的二行文教學也行 (真的只有 2 行指令就裝完了,當然改設定那些另當別論)。裝完之後把 apache2 重新啟動,記得先關掉原有的 mongrel_rails cluster 就是了。其實還真的有一種「Ruby on Rails 終於脫離 CGI 的影子了」的感覺,「檔案放上去就可以動了,不用開 ./script/server」。

所以我現在要暫時關站做 rake db:migrate 之類的事,還得先要把 #{RAILS_ROOT}/public 這個資料夾更名,假裝是關站 囧

進化到 rails 2.0.2、改用 will_paginate

一時興起把 config/environment.rb 裡面的 rails 版本換成 2.0.2 了,不知道 rails 2 是不是真的有讓 ruby on rails 變快?

可是因為這個換版本的動作,原本針對高中榜單做的分頁 (pagination) 竟然爛掉了。當初是抄這篇文章的方式去做的,那時候還在 rails 1.x 。結果換到 rails 2.0,似乎是 Paginate 這個 Class 不見了 (還是我找錯 namespace?)。

正在不知道該從何改起的時候,讓我找到了 will_paginate 這個東西,也不需要像之前那以自己寫(貼?) Class Methods 了,就直接引用他內建的東西即可。

先看 Installation 這篇文章,把 will_paginate 裝進系統,並載入你的 Ruby on Rails 專案,然後照這篇 Usage examples 做就行了。用的程式碼比之前少很多,也可以透過 css 去裝飾你 render 出來的分頁列長怎樣。

以上其實我不知道是不是真的有對 server 做到某種程度上的最佳化,因為同時我還把姓名查榜關掉了,光這個就可以省下很多資源。也許過幾天又把姓名查榜開起來,才會知道 mod_rails 到底有多大能耐吧。

ksk = 加速,日本 2ch 鄉民語。

廣告

Written by Yu-Cheng Chuang

2008 年 四月 21 日 星期一 於 6:20 上午

4 回應

Subscribe to comments with RSS.

  1. 是真的變快了喔^^
    快很多
    都不會LAG了

    路人甲

    2008 年 四月 21 日 星期一 at 9:27 上午

  2. 好厲害!你真的好厲害好厲害喔!!
    真的有變快!
    而且這個網站這麼棒,竟然不用收錢@@
    其實你大可趁這機會大撈一筆的,不是嗎?
    真是個心地善良的人。
    由衷地感謝你並祝你歐趴!!
    (呃,關於期中考你需要的也許不只是祝福? = =)
    (忍不住還是想來這裡摸一下的你好可愛ˇ)

    Cindy

    2008 年 四月 23 日 星期三 at 2:56 上午

  3. @Cindy:

    因為我是砍人家的東西來整理,而且又是放在學術網路,所以當然不能收錢,而且我也不想收錢…。

    謝謝妳的鼓勵。

    Chitsaou Yorkxin

    2008 年 四月 23 日 星期三 at 3:00 上午

  4. 呵呵
    沒記錯的話你不是要考到4/25嗎?
    怎麼…
    哈 別客氣啦!
    要加油唷*

    Cindy

    2008 年 四月 23 日 星期三 at 3:08 上午


迴響已關閉。

%d 位部落客按了讚: