博客園與啊里雲的故障假設:高需與低配(補充了降頻論)


背景: 

博客園自從上了啊里雲,故障頻繁,使得大伙每星期都在看故障報告,對503不知不覺也建立直了深厚的友誼。
故障從硬盤IO到SLB到應用級別的,各自懷疑,各自檢測,都各自堅持沒問題,但情況是問題依舊。
而解決的方式是博客園不斷的購買高配,但仍逃不出503的魔掌。
最終,博客園把懷疑點指向了啊里雲的CPU。
啊里雲,也懷疑是博客園自身程序問題。 
對此問題,園里園外都比較關心,所以,在這背景下,我假設性的分析一下。

 

注意,以下內容純屬個人意淫,假設性內容,不代表符合事實,僅供各位看熱門的參考:

 

由於啊里雲和博客園各執一念,互不相讓,所以個人個人只好給個折衷的猜測,都有問題,或者都沒問題。 

 

終結假設點就是:啊里雲的低配配不上博客園的高需。

 

一:假設博客園是高需程序: 

我們假設博客園的程序, 在程序上可能混雜多款時尚組件,而無法掌握原理和核心,進而在優化上沒能發揮;
導致過渡依賴緩存,而原生的程序平均執行時間長,導致緩存失守部分不能負載大量並發,造成系統負擔重,需要高配來支持。

 

二:假設啊里雲沒有提供高配置:

首先,要假設啊里雲的雲產品,虛擬化技術並沒有超過業界領先水平Xen。 

然后,我們看一下以下信息(摘自互聯網),來了解兩個概念,CPU與VCPU:

 

1: 物理CPU與虛擬VCPU

xen客戶機啟動的時候,虛擬CPU是由dom0系統決定固定在某個物理CPU核心上的,這個分配具有隨機性,比如我們的機器上有2個雙核的處理 器,也就是說有4個cpu核心,同時我們分配4個核給我們的虛擬客戶機,那么我們在客戶機也看到4個cpu核心的,但是這四個vcpu核心並不是真的對應 着物理機器上的四個核,可能四個虛擬cpu對應的是物理cpu中的1~4個核,也就是說有下面4個可能:
4vcpu=1cpu
4vcpu=2cpu
4vcpu=3cpu
4vcpu=4cpu
vcpu指虛擬CPU核心
cpu指物理CPU核心
因 此,當我們的虛擬客戶機上如果運行的是運算密集型的任務的時候,就必須看看我們vcpu與物理CPU的對應,必要的情況下手工固定VCPU到物理CPU 上,使該虛擬機可以使用所有的物理核心;而如果你正在運行IO密集型任務,那么最好就分配一個超線程或整個核給dom0,並且固定其他的域讓他們不能使用 CPU  0 

 

大體上就是說:雖然博客園買的是8核的,但是否真對應上物理機的8個核,這是未知數,實際情況是<=8。

所以,如果博客園買了一個高配置的8核(VCPU),實際只分配到4個物理CPU,性能就降低一半,變成低配了。

 

所以我們再假設:博客園運氣很背:

 

博客分開買了4台8核,一共號稱32核跑博客站,根據上述理論,實際真實CPU可能在( 1-32個)具體有幾個還得看人品。
如果4台機,隨機都在物理4個核上,那就虧大了,高價錢買了低配置,如果在8個核上,也還是虧,如果在16個核上,還是虧一半。
所以,這是第一個假設成立,博客園就是跑在低配上。

 

如果,博客園運氣特好,剛好分配到32個對應的物理機上,或者如果啊里雲重視,親自幫博客園改參數設置對應關系,那我們再看下面的假設。

 

補充假設:啊里雲的CPU降低了主頻,或者說是算法平均:

 

我們假設博客園買的8核CPU2.4GHmz主頻,啊里雲按8人用標准給每個VCPU分配了300MHz,這樣就實現了就算8個用戶都跑滿虛擬的100%CPU,總物理也才剛好100%。
所以理論上,只要分配超底的主頻,和限制使用人數,可以達到隔離作用。
 
但現實是,分配過低的主頻,會造成CPU性能下降,資源極大浪費,所以,一般IDC商會分配在600MHz這般,這種低頻一般夠小站使用了。

這樣如果是4個用戶使用,4*600M=2.4G基本隔離,如果是8個用戶使用,如果平均使用50%也基本隔離。

如果有4個人跑滿,那剩下的4個人無論使用多少,肯定也就掛了,所以通過管理,只能關站,並只能清退這部分人了。
 
所以,如果啊里雲把主頻降的低,博客園就跑低配了;

 

如果啊里雲主頻設的高或沒限制,那是不可能的,因為算法必須保證用戶的平均使用率。
所以問題就是主頻究竟在一個怎樣的合適值中了(一般按國際標准,是1/4 CPU的限制,即4人用的標准,實際使用增加到6-8個人)。

 

根據大中華環境猜測,賺錢第一原則,總CPU基本核是固定的,而用戶數是不斷增加長的。
所以:反正限多少主頻,你也看不出來,實際多少個人在共享使用,你也看不出來了。 

 

 

根據以上實際性的假設,所以博客園本身就是運行在了降級的CPU上。 

 

假設2:CPU資源競爭

首先確定的一點,從來就沒有什么救世主,也沒有CPU絕對隔離一說。

說CPU獨立隔離,那是客服常見的忽悠手段,稍為看一下CPU的相關知識,就知道只能靠算法來決定怎么分配而已,隔離相對限制而言。

不信我們可以看下面的摘段(取自互聯網):

 

2012- 05- 22  17: 22: 20|  分類: 虛擬化-XenServer |字號 訂閱
背景:
在Xen環境下,內存與CPU分配是可以動態改變的。通過動態更改內存與CPU分配,可以達到優化虛擬機性能的目的。
通常情況下,我們的虛擬機分配物理cpu的資源為自動分配的。當在一個物理機器上面分配多個虛擬機,並且虛擬機的cpu總和超過實際物理機器的cpu數量時,並且各個虛擬機在高負載的情況下,高負載的虛擬機會調用其他虛擬機器的資源
這次發現的問題是我們公司某系統新上線了三台虛機服務器,上線后發現,在流量是平均分配的前提下,新上的機器的負載比老機器高,新上的機器負載在8左右,而老機器的負載在4左右,查詢了機器的配置和參數設置,新老機器都一樣。后來通過iostat指令,發現新機票的steal值非常高,大於在40左右,而老機器的steal只有0.1左右。經與老大咨詢,steal的值高會代表實體機的CPU負載高。后經由老大發現,新上線的三台虛擬機在一台實體機上,每個虛機分配了四個CPU,而實體機是個8CPU的服務器,導致了三個虛機之間征用CPU。(cpu要打開超線程!!!)

 

通過上述說明,CPU間是存在資源競爭的,對於資源競爭問題。

一般的IDC商家,是會對長期占用高CPU的VPS租用用戶進行清退的,因為這會影響到其它用戶。

而對於啊里雲,目前為了用戶,也在推廣期,估計在管理上,用戶量大,人員少,目前估計不會有這種手段,所以類似於放任用戶無限制的使用CPU。

所以啊里雲的用戶間更容易發生搶占資源的行為。 

於是博客園的程序,平時好好的,某些情況CPU不行了,可能是CPU資源互搶了,搶不過人家就503了。

 

為什么博客園搶不過人家,這里我也有一個假設:

 

虛擬技術有兩個標識來標識VCPU,就是under和over,記錄每個VCPU平均的負載。
如果平時高的,到資源競爭時,優先級就變低,平時低的,到資源競爭時,優先級就會變高。
看博客園的cpu截圖,平時也不低,所以真到資源競爭,就沒啥優勢了,搶不過人家了。

 

所以根據以上的假設:

1:如果博客園優化下程序,不再那么需要高需;

2:啊里雲提供貨真價實的32核高配(對同個用戶名進行開通的所有主機按實核分配),再控好分配時的實際使用人數;

3:或者啊里雲的用戶自覺點,別老上那些吃CPU的站;

也許。。。

 

再次重申,以上內容純屬個人意淫YY假設,可能與事實存在較大出入。歡迎大伙討論。 。。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM