在搬家之後 還是出現斷線
在捕夢網同意搬到有Cloud Linux資源限制的主機上之後,穩了2天,第三天之後,又出現服務中斷情況,而且服務一中斷,就是四十分鐘。
經過詢問之後,才發現原來是我們的資源使用超量了。我們這麼小流量的網站,會資源使用超量,倒底是怎麼一回事?
什麼資源使用超量嗎?
虛擬主機有幾項重要資源,CPU使用率、硬碟使用空間、記憶體使用空間、檔案數量。
其中記憶體的部份,有分成實體記憶體(Physical Memory,中國叫物理內存,簡程pRAM),虛擬記憶體(virtual memory,中國稱虛擬內存,vRAM),也有人把虛擬記憶體稱為Burest Memory,當突然來的需求時,實體記憶體不足,就會使用虛擬記憶體。承受突如其來的流量,所以Burest Memory,是有人這麼稱呼的。
這次使用超量的是實體記憶體,我們買的是捕夢網8% CPU使用量的虛擬主機方案,一台主機有16G的RAM。不專業計算如下,如果虛擬主機系統,開完機,使用了6G的記憶體,還剩下10G,如果買8%的CPU使用率,表示這台機器上只能放12個客戶,10G的記憶體,分給12個客戶,每個客戶應該有830MB的實體記憶體。
實際上,買了8%CPU的虛擬主機客戶,只分配128M的記憶體,我的老天爺啊!這是什麼年代的主機資源啊!每個月戶128MB,來分10G的記憶體,每台機器可以分給80個用戶來使用。8%CPU使用率,怎麼可以分超過12個用戶呢?
我必須說,我還是深深的懷疑已經有廣告不實和超賣的狀況。
買虛擬主機方案的隱藏產限制
通常來說,每一家虛擬主機都會有一些限制,只是這個限制有沒有說出來,或是寫的不清楚,或是對於每個方案影響性的不同,或是寫出來騙人的。
舉例來說,捕夢網的記憶體限制,就是一個很明顯的例子,在規格表中根本看不出來,而且還不容易發現,如果一開始使用捕夢網的方案我有發現異常,我就會注意到。以捕夢網的後台PLESK為例,根本看不到記憶體的相關設定資訊,請問一下,使用者要怎麼去判定是什麼問題?阿不就還好我自己有Linux主機,我自己也熟相關的設定與管理。
另一個常見的限制,就是檔案的數量,如果檔案太多,容易拖累這個IO,影響輸出的效能。所以如果有人把虛擬主機拿來當成檔案伺服器,就會被限制住。另外,不限流量和不限網站的方案,很容易被檔案總數給限制到。捕夢網也有檔案數的限制,重點是規格表上沒有寫,不部份不寫出來,都是以為沒有人會碰到,蝸牛就常常碰到限制。
以差不多金額的方案來說,Server Zoo和捕夢網的記憶體差多少,就很明顯的看的出來。算是Server Zoo的記憶體是實體記憶體加上虛擬記憶體的總合,也比捕夢網來的大上很多。
我是怎麼發現問題的?
除了服務中斷的問題之外,我還發現,導入Cloud Flare之後,仍然是卡卡的,整個網站的運作就是不順。
過去的經驗,在2秒之內要跑完的網頁,現在都要5秒以上。
這麼看來,就是有問題,沒有道理會有這樣的差距。何況Server Zoo是使用Cloud Linux,而捕夢網這台主機也是Cloud Linux,沒有理由會速度差這麼多。
CPU使用率、硬碟使用空間、記憶體使用空間、檔案數量,需要取得平衡,網站的效能才出的來,如果CPU使用率爆掉,就算給你再多的記憶體和再大的頻寬,也是白搭,相對的,記憶體如果不夠,沒有幾個使用者就把記憶體給用完了,那CPU資源和硬碟使用量無上限,也是沒有意義的。
最後結論
說真的,國內似乎沒有便宜又好用的WEb Hosting服務商。
看來,我明天還是要找捕夢網的PM聊聊,如果真的沒有辦法,我覺得還是搬家好了!不要用捕夢網,不要用遠振。
來建議老闆自已建主機或是改去用Linode 的日本機房好了。
AWS就不考慮了,那個不是我們現在這種公司規格可以考慮的,真的太貴了。
2015/02/02
捕夢網PM回電話了
他說,實際的記憶體要把vRAM+pRAM加起來,所以是1.13GB(虛擬記憶體1G啊!),問題是我如果記憶體使用量超過,理論上虛擬記憶體應該有值,另外,他們用的是10K的SAS,如果拿來當vRAM,速度比不上SSD就算了,效能連 15K RPM的SAS都還差很遠。
如果是因為連線沒有放掉,導致系統沒有辦法把記憶體放出來,那麼vRAM應該要有值啊!不應該是沒有值啊!
我請PM去幫我確認一下,導致系統緩慢的原因,工程師回報資源超用,這樣的問題可能會出現在什麼地方。
星期六工程師還跟我說,他們因為我們的需求,有把記憶體開比較大給我。如果不是這樣,捕夢網給的pRAM是多少?100MB嗎?
Server Zoo給的記憶體,我想信也是pRAM+vRAM,但是Server很清楚的顯示,他們的pRAM和vRAM是1:1。
捕夢網的PM說,大家都差不多,一台8核8緒的虛擬主機,上面會有100~200多個用戶。而且業界都差不多,這個部份我是相信啦!不然這樣怎麼賺錢。
證明我前面的推測的超賣說,這時我必須說,沒事就算了!出了事這麼多人一起掛,事情可是很大條的。
看完分析報告,我們的超用,是CPU超用,而不是記憶體超用,而且很神奇的是每天早上四點多,記憶體就會釋放出來,我還被懷疑,是不是有做了什麼事情,不然為什麼會有這樣固定的週期。
最後,目前真實發生的狀況,還不是很清楚,為了減少變數,好找出真正的問題,目前已經把Cloud Flare停掉了,直接讓用戶來訪問,過兩天再來看看,能不能找到真因。
2015/02/04
在拿掉Cloud Flare之後,記憶體仍然沒有放出來,被問,是不是有做記憶體快取的功能,答案是沒有。
找了很久,看了Log,仍然無解,真的是捕夢網給的記憶體規格太小,Server Zoo給的記憶體比捕夢網大了不止一點。這個捕夢網的PM自己也說,他有向上面反應,但是還沒有答案,重點是客戶沒有辦法等,等系統穩定之後,網站還要再瘦身,畢竟這是我們自己的責任。
但是給的規格沒有競爭力,這就是捕夢網的問題了,超賣的情況還是一樣嚴重,提了幾個建議,就看老闆怎麼決定了,為了這件事,已經搞的我焦頭爛額了,實在是不好的一個狀態。
隨機文章
- 從遠傳轉威寶後實測 (2009-06-06)
- 關於王品戴董事長的畢業演講不用存錢的說法 (2013-06-10)
- 腦殘的選舉廣告~中選會&台聯 (2011-12-29)
- Proxmox VE 異機備份還原測試成功 (2019-12-26)
- HTC走高定價路線 似乎少了點精品服務的精神 (2014-03-02)
都用了cloud flare在虛擬主機上還會出事,就代表程式邏輯問題,或是來訪人數真的過多,看來你根本就不應該用虛擬主機,serverzoo我也用過,服務只能給兩個字 “呵呵”,祝版主早日解決啦
確認程式沒有問題
我用自己的vm跑過
根本不佔資源
謝謝你提供的建議