近期深藍的系統變化


Recommended Posts

以下是一堆技術幹古,你學不到新東西,但如果無聊好奇深藍的系統架構,可以看看

---------------------------------------------

如果有在注意的,可以發現深藍近十年的歷史中,70% 以上是使用 Windows 系統作為伺服器

一開始,頭幾年規模還不大的時候,我們是租用國內虛擬主機作為伺服器

後來流量漸漸大到無法負荷,我們該使四處遷移尋找贊助機房,曾經搬過政大、義守、建中

後期,遷移到交大待了四年左右的時間

2011 年我們遷到 Hinet 線路上,直接使用我公司的機房與線路 ( 非常貴阿Orz...

除了一開始的虛擬主機外,幾乎都是使用 Windows Server

原因無他,因為實在沒什麼空搞 Server,Windows 你說他效率低,其實也還堪用

反正擺在那邊給他做 Windows update 就好,也不用太照顧他,還不錯

我們從 apache1.3 開始用一路用到 IIS6.0

後來是實在受不了 IIS 的 appPool 一直 crash,還有 PHP 的 non thread safety 特性

(當然也可以在 IIS上裝 FastCGI 啦,只是這樣又要把 Windows Server 升級到 2008 有點麻煩)

所幸乾脆在最近把伺服器換成 Linux ( 其實我大學都是用 FreeBSD Orz...

一開始在 VMware ESXi 上跑,不過因為是土炮的硬體,穩定度太差太差了

受不了還是回到深藍原本的機器上,直上 Ubuntu Server

(希望明年有錢可以買 Dell PowerEdge R610 系列的機器來裝 ESXi)

不得不說,Linux 跑 MySQL / PHP 真的是效率好太多了XD

可是無奈又手賤,想說這樣乾脆來掛個 vBulletin 很有名的 SEO 外掛,vBSEO

他功能是將深藍所有網址都轉換成靜態網址

ex www. student. tw/showthread.php?t=1 變成 www. student. tw/forum000/thread-1.htm

好處是可以讓搜尋引擎 Index 的數量更多, ranking 更高

不過這套外掛非常暴力,他不是用 hook 的方式在 page gen 出來前把網址修改掉

他是直接把整個產生出來的 HTML 送到 vBSEO 的 PHP 裡面做 preg_match_all

這麼大的網頁,不小的流量每頁都做大量的正規化搜尋取代,可想而知效率有多差XD

不過也懶得自己寫,用現成的比較方便,我現在手上還有結不完的案子,如果七月出國不要爆炸,只能這樣了

vBSEO 掛上去,負載整個就拉上去 ( 接近 100% ),這樣不行,所以把 php-apc 灌起來

vBulletin / vBSEO 的 cache 全部指到 php-apc 上面去,這樣大概負載剩下 50% 左右

前一陣子,又把原先預設的 apache prefork + php 的方式

改成 apache worker + fastcgi + php-fpm 負載降得不多,但是反應速度快多了

但因為陸續一些改版上來,人氣也有非常緩慢的恢復,因此 Loading 又開始變重了

預期未來幾周,會試圖將 PHP 升到 5.4,換一台新的 6 cores 機器

目前看起來似乎是 I/O Bound,所以說不定會做一台 MySQL Slave 起來

接下來就是預期暑假的大改版了,還有重新整頓宣傳,希望可以在新學期開學,重新拉回一點人氣

鏈接文章
分享到其他網站

目前每個月的費用多少啊???

有考慮加開Amazon Cloudfront之類的CDN砍一些流量和負載嗎?

Mysql要不要考慮試試看Percona的版本

整體效能和既有的Mysql差挺多的說...

不過資料庫I/O Bound感覺比較像是Ram不夠

或是Join暫存表都放到Disk上面去了

Apache和PHP方面也可以試試看把沒有用到的模組移掉自己重編譯

還有如果前面多台Proxy專門負責吐Cache頁面給未登入使用者如何???(Wikipedia的作法:))

此內容已被編輯, ,由 j100002ben
鏈接文章
分享到其他網站
目前每個月的費用多少啊???

有考慮加開Amazon Cloudfront之類的CDN砍一些流量和負載嗎?

Mysql要不要考慮試試看Percona的版本

整體效能和既有的Mysql差挺多的說...

不過資料庫I/O Bound感覺比較像是Ram不夠

或是Join暫存表都放到Disk上面去了

Apache和PHP方面也可以試試看把沒有用到的模組移掉自己重編譯

還有如果前面多台Proxy專門負責吐Cache頁面給未登入使用者如何???(Wikipedia的作法:))

其實流量還好,還不需要動用到 CloundFront XD

MySQL 的部分因為涉及到穩定度,我比較怕麻煩,等哪天心臟大顆一點我會換來玩玩看XD

應該單純只是 Query 數量真的太多,我看數據 RAM 應該還是還夠

有打算重編 Apache/PHP 不過 PHP 有夠難編的 = =

另外,關於SEO網址的部份

[NOPARSE]

http://www.student.tw/showthread.php?t=240386

=>

http://www.student.tw/forum236/thread240386.html

[/NOPARSE]

我的意思是說,要不要在showthread.php前面加個判斷

如果不是用SEO Friendly網址過來的就301轉到新的網址

因為Google那邊還有很多舊得網址:p

感謝,我打開這個功能了XD

鏈接文章
分享到其他網站

要不要幫靜態檔案加個「max-age=3600至少1hr(或是更長的時間)中不用重新抓資源...


<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A3600
ExpiresByType image/jpeg A3600
ExpiresByType image/png A3600
ExpiresByType image/x-icon A3600
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
</IfModule>

鏈接文章
分享到其他網站
我又被站長老大腦弱到了...

不是艱澀難懂是根本不懂(((點頭

只看得懂10%.......................................

不懂的歡迎發問唷,或是直接回覆不懂的地方..;-)

這邊需要多一些文章衝衝人氣(H)

鏈接文章
分享到其他網站
那...在移植電腦時所有的歷史紀錄是都在中央主機嗎

所以只是換外部的硬體讓深藍驅動?

如果我的問題太笨了請不吝指教xd

簡單的順序:

  1. 備份資料,包括程式和文章等等
  2. 新主機套件裝好,該設定的都調整一下
  3. 把資料放過去,還不要先切換網址,不然如果沒有成功就掛了
  4. 簡單測試沒有什麼嚴重的大問題就可以切過去讓他上線了

不過通常上線之後才是最忙的時候(H)

鏈接文章
分享到其他網站
簡單的順序:

  1. 備份資料,包括程式和文章等等
  2. 新主機套件裝好,該設定的都調整一下
  3. 把資料放過去,還不要先切換網址,不然如果沒有成功就掛了
  4. 簡單測試沒有什麼嚴重的大問題就可以切過去讓他上線了

不過通常上線之後才是最忙的時候(H)

上線不是讓它自己去運轉嗎

還是需要有人從旁守候(咦?

鏈接文章
分享到其他網站
上線不是讓它自己去運轉嗎

還是需要有人從旁守候(咦?

要唷,是不需要到24小時啦...

不過還是要看時間注意狀況,

好解決突發狀況啊一_一狠

像深藍這種土炮系統,最好有人常常看著他XD

馬克辛苦了;-)

站長大大你需要的是乖乖\(H)

我前公司的中華電信小烏龜也是經常無預警掛點,重開機就好了

後來放包乖乖就很少發生:P

我剛才在吃乖乖耶xd

那當掉的意思是跑不動嗎?

除了負載量太重還有什麼原因呢?

程式遇到BUG~

不過應該是流量太高是主因

很多原因啊,像是突然有人閒閒沒事想要把深藍砍站

或是剛好資料庫正在作一些異動

都有可能造成頁面無法顯示,或是顯示不完全的狀況唷

負載太重有時候只是一個比較通稱的說法:p

暑假大改版期待W
暑期改版進度不如預期,不過會盡速完成xd

有需要幫忙的可以PM我唷~~暑假閒閒寫Code<8>

鏈接文章
分享到其他網站

請登入後來留意見

在登入之後,您才能留意見



立即登入