※ 引述《JoeHorn (每天都在公司玩OLG)》之銘言:
: ※ 引述《MrMarcus (請勿忘記密碼)》之銘言:
: : 是說,最近遇到一個狀況。我們做了個東西讓使用者下載回去使用,
: : 然後使用過程中,每隔10秒鐘會做一次回報動作,讓我們知道他有在
: : 使用這個東西。回報動作是呼叫Web server上的一個php程式。
: : 開放下載以後,隨著使用的人數增加,我們遇到了CPU loading上升
: : 的問題。大約兩小時後,主機的CPU loading就持續維持在100%了...
: : (Xeon 3.06GHz CPU x 2 / 2GB RAM, 記憶體使用量倒是一直算正常)
: : 當時同時使用的人數,粗估大概有五六百人。想像一下這幾百人同時
: : 瀏覽一個網站,然後大家每隔10秒鐘就換一頁或者reload一次這樣.
: : 處理回報資料的php程式是執行在CodeIgniter這個php framework上面。
: 這些 framework 使用了大量 OO 的架構。
: 基本上,用 OO 是一定得付出代價的。
: (所以... 除非有安全性考量,不然,我不會想用 OO 來兜程式。 :p)
: 另外,我想講的跟 PHP 比較沒有關係。
: (板主認為不妥的話請砍吧~)
: 您的描述裡面還欠缺幾個重點,不過這些重點非常的 detail 。
: 1. HTTP server 是? Apache 有許多可調整的參數,還有 mod_mem_cache 可以用。 :p
是Windows平台/IIS 6
: 2. 有沒有用 Zend Optimizer、eAccelerator 等等的 PHP 最佳化 & 快取模組?
沒有使用
: 3. 有沒有用 AJAX ? 用 AJAX 可以節省整個 page reload 的負擔。
有。這其實不是一般的網頁,使用過程中其實就只有定期作回報的動作而已
(不需要使用者動手)。回報動作是透過AJAX來執行,每次傳輸的資料量很小,
傳回給client的資料不超過100 Bytes。
: 4. 有沒有擺 reverse proxy?
沒有使用
整個平台在2,4兩個地方其實並沒有做很好的效能最佳化,他們對於整體效能的
助益是無庸置疑的,這我沒有疑問。不過這次討論的重點我想是在有以及沒有
使用php framework兩者之間的效能差異,以這次遇到的狀況來說,我想是非常
明顯的。
但是我也不覺得我會從此放棄使用任何php framework,畢竟使用它們所帶來
的好處是值得肯定的。只是下次在遇到有可能對主機加諸類似的負荷的時候,
我會記取教訓,適當回歸最原始但是可能表現最快的寫法:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.237.191