2009年6月4日

[Something about quota] 網站爆炸後的感想

| 次點閱

首先感謝MyHotPost使用者們的等待,網站已經再度穩定下來了。這篇文章是一份紀錄,也是一點小小的感想,關於使用者和供應者,免費與付費之間的感想。

六月二號中午我登入了Google App Engine的Dashboard,看見了兩行訊息:

Your application is exceeding a quota: CPU Time
Your application is exceeding a quota: DataStore CPU Time
但那時Quota Detail的顯示這兩個資源都還是綠色的,只是很接近使用極限,我也就沒有理會,只是覺得今天壓力好像特別大,我寫的小程式應該是燒不完免費配額的CPU Time呀...

然後一點多,我在橋樣板時忽然發現,我網誌裡的MyHotPost欄位完全沒有顯示任何熱門文章內容,整理了快取、下ipconfig /flushdns指令都還是沒有,於是我連到MyHotPost的網站...
擷取
就看到這樣尷尬的畫面。

什麼鬼阿囧rz,殺回Dashboard,如下圖,Quota的長條圖變成了紅色,整個網站完全無法運作,看看Quota的頁面寫著:Quotas are reset every 24 hours. Next reset: 1 hours,所以一小時後網站應該就會復活,也就鬆了一口氣...於是趕快打開久違的MyHotPost推特帳號發出可能很少人會看到的公告、在部落格上寫也可能很少人會看到的網站休止訊息,這才發現整個網站全死了之後,甭提本來就很少人在follow MyHotPost的推特,就連我的部落格可能都沒什麼使用者會去訂閱MyHotPost的相關訊息,這樣網站一死,使用者要嗎就是苦等、要不然就是離開去找別的服務,真是慘到一個不行orz...

MyHotPost is exceeding a quota now

到了下午三點,資源歸零,網站就又恢復了,但我安居樂業了一小時就發現Cpu Time已經跑到了50%,這...一定有哪裡不對啊?看了看Log發現某部落格的Request數爆高,可是連過去一看也看不出哪裡有問題,原本我還懷疑是這個部落格在灌人氣,可是也不對...

發現了,原來這個部落格登上了Yahoo的首頁,引來了非常驚人的流量,囧

這時為了降低Cpu消耗量最大的,顯示貼紙兼把點閱數加一的程式的CPU用量,我看了看程式碼:

根據貼紙的網址抓出網站的資料
根據本頁的Reffer抓出單頁的資料
如果本頁面不屬於貼紙的網站->跳出
如果抓不出單頁資料表示是新頁面,新增一筆單頁資料、抓標題、如果抓不到就設成待抓取
如果有單頁資料,卻是待抓取,就再去抓標題,抓不到就還是設成待抓取
點閱數加一
存檔
顯示圖片

每一行看起來都很重要,真是難以下手,最後我決定停掉所有的抓標題機能,只統計點閱數,因為標題以後還可以再抓,如果網站又死了,那可是連點閱數跟JavaScript都出不來,損失更大...

結果六月二號晚上九點接近十點,網站又死了。 orz

這期間我也不斷在推特上開始碎碎念一些想法,例如:

要不要為這個網站花錢買Google App Engine的資源?要不要在網頁上加入一些廣告來分攤支出?

很想另開附站給高付載的部落格讓他們另外去搶資源。可是1. 這是特權、 2. 排名沒辦法跟主站合併計算 ...... 麻煩囉 orz

也有朋友提說要不要乾脆來個使用者付費,但一提到錢這檔事,真的很可怕,我也還沒準備好。MyHotPost搖搖晃晃走過來,第一次大危機是電腦玩物和迴老師的網誌加入之後,流量讓我的抓標題機制被Google App Engine擋住,禁止我短時間內大量存取同一伺服器的資源,後來我也陸續寫出一些解決的辦法,讓網站越來越穩固,但這次是整個網站都炸掉,唯一能馬上解決,不用等到隔天下午三點的方式就是線上刷卡付錢給Google買下更多資源,這...

上次PP11時我坐在vista旁邊,也聊到關於MyHotPost,我心裡是有個規畫,隨著時間演進,總有一天我的資料庫會被用光,這一定的,所以總有一天我得開始為這個網站買資源。但我真的沒想到在資料庫滿載之前我的網站就會這麼急迫的需要付費資源囧興...因為想到雅虎奇摩首頁應該一兩天就會換不同的推薦,所以我也就打算這次先撐過去,等文章下了首頁,系統壓力應該就不會再這麼大了吧?

果然隔天六月三號,雅虎首頁就換了新文章,下午三點網站也恢復了運作,我也在晚上把抓取標題再度打開。這次的危機就這樣度過了。

收費喔...(抖)
我覺得當一個網站從免費轉付費時,是件很可怕的事情,雖然使用者大可以轉頭走人,但通常他們不會只有這樣而已,口誅筆伐大概是免不了的,而我真的真的,很怕被使用者反撲這件事。囧rz

怎麼樣的網站會讓使用者願意付費?
無名小站有VIP、痞客有VIP、flickr有pro、meromero park有金心、部落軌道有守護者,這些都是付費來的,我認為付費是因為我認同、喜歡這個網站的功能,所以我付新台幣,是為了可以獲得更多我喜歡的功能。MyHotPost可以提供更多功能嗎?我是有可能可以寫出分時分日分月的統計,但這需要更多的資料庫儲存量、更多的CPU,重點是別的網站可能也都免費有這種功能,我收到的錢能負荷需要增加的資源量嗎?

但一個免費的網站真的很難生存
我愛上Google App Engine就是因為它可以在免費的環境下跑我寫的程式,同樣的程式我如果用PHP寫,放到000webhost,我想應該會一天到晚被ban掉,但這次面對--容我稍稍誇大--全世界所有使用雅虎奇摩首頁的使用者帶來的壓力,免費資源三兩下就燒光光,沒有一點點收入來維持網站,真的很難生存。痞克和無名開始置入廣告、天空醜醜的頁面角落掀開式廣告,以前我也很不諒解,但這一次狀況也讓我稍稍可以理解這些做法背後的苦心。

MyHotPost的下一步?
雖然這是我第一個對外發布的網站服務,但我絕對不敢說這是一個很好的服務,我也不覺得這個服務值得向使用者收錢,但當需要擴充資料庫的時機來臨,我的預計是打掉整個網站的版面,然後用最低的突兀感塞一塊廣告進去,也許無法帶來什麼實質收入,但至少在我刷卡下去時,我可以在心裡默念著:我並不孤單,或許有佛心來著的使用者願意點一點廣告之類的......。

MyHotPost,加油!!

--

題外話1:這是調查,如果我開MyHotPost的噗浪帳號,會比較多人follow它以便取得最新訊息嗎?

題外話2:最近想開始放一些網摘在網誌上充文章數,所以我修改了小Ken版繼續閱讀,增加第四種模式:平常是只顯示標題,但滑鼠移上去時可以展開全文,滑鼠移開文張區塊後就又會收合,只要把繼續閱讀類型設為4即可。

7 則迴響:

NO.4 提到...

Ken Gao辛苦了,關於開MyHotPost噗浪帳號,猜想應該會比較多人follow它,噗浪在台灣的使用人數似乎比推特來的多,且更為簡單易用,蠻贊成開噗浪帳號。

BTW 如果MyHotPost有廣告的話,我會幫忙點閱的^^


Ken Gao 提到...

@NO.4: 感謝阿Q__Q,那咱等等就來開帳號...囧a


闇宇 提到...

Ken Gao大辛苦了,你做的MyHotPost有多好用,使用過的人都知道。看完這個文章知道你也有很多苦衷阿(深深覺得),放個廣告、讓使用者「不小心」點到,我想也不為過啦,畢竟沒有任何理由讓自己辛苦做出來的東西,免費讓別人用爽爽,自己卻辛酸地付錢吧。另外我也贊成開噗浪帳號,推特我不大會用阿(汗)。


炮爺 提到...

希望MyHotPost不會是第二個"不弱格觀察"
我支持擺上廣告賺取部份成本

Plurk我會follow


Ken Gao 提到...

@闇宇 @炮爺 : 我現在的問題是個人沒有信用卡,一解決付費給google的問題我就會盡快購買資源,也感謝各位的不棄不離Q_Q


螢火蟲 提到...

google要付多少費用阿?如果在台北信用卡部份我可以幫忙。


Ken Gao 提到...

@螢火蟲 : 真的很感謝吶,雖然動作很慢,不過我還是希望這個部份我自己來處理(因為牽涉到持續扣款和我不在台北),真的很抱歉...


張貼意見

請使用正體中文發表留言,注音文小弟將直接移除

My Hot Post