四核至強CPU為啥還不如雙核奔騰?雲伺服器配置不足原因簡談

小蟲站長 發佈 2022-04-18T14:19:48.506714+00:00

前言2003年,小蟲站長租用了虛擬主機。2005年,由於訪問人數增加,組裝了一台1U伺服器(P4/3.0G,4GBX2內存,160GB硬碟X2 做RAID1)拿去託管,成都電信當時的費用約1.2萬/年,高攀不起,只能放在外地,大約4000元/年。

前言

2003年,小蟲站長租用了虛擬主機。

2005年,由於訪問人數增加,組裝了一台1U伺服器(P4/3.0G,4GBX2內存,160GB硬碟X2 做RAID1)拿去託管,成都電信當時的費用約1.2萬/年,高攀不起,只能放在外地,大約4000元/年。

早期的託管基本上是沒有人工服務的,IDC公司只提供機位,電力,帶寬,最多能幫你關機重啟一下,至於系統和安全得自己搞定,遇到硬體故障,IDC公司會把伺服器給客戶發回來,維修好後,再發回去。

在託管的9年裡,這台1U伺服器搬了三次家。最後一次搬家是在2008年512大地震時期,由於綿陽電信機房受損,搬回成都。

隨著雲技術的興起,2014年選擇了彈性雲主機,更方便、安全、靈活,性價比更高。

但是。站長發現,租用的至強四核甚至八核主機,10多人同時在線也經常滿載,而網吧的無盤伺服器,一個老奔騰雙核同時帶50台機器輕輕鬆鬆,這又是咋回事呢?

正文

CPU雲伺服器類型主要分為兩類:「虛擬化雲服務(虛擬機)」和「裸金屬雲服務「

虛擬化雲伺服器是用軟體「虛構」的一台伺服器,如圖。

這是一台虛擬雲伺服器,vCPU為4核,這個V是指「Virtual」(虛擬的),對應實際的物理CPU型號是E5-2620V2(六核十二線程)。這裡的四核,不是把E5-2620V2的伺服器的12線程劃分其中4個線程讓客戶獨自使用,一般情況下會有很多人來共享這顆處理器。在伺服器空閒的時候,這四個線程可以跑得比較順暢。但是,當其他人計算量一上去,這台主機的性能就下降了,有點類似一輛公交車有12個座位,小李買了4張車票,理論上仿佛占有這台車1/3的資源,但票是沒有座位號的,人比較多的時候只能站著。

裸金屬雲伺服器是獨占伺服器的部分或者全部資源,沒人來和您爭搶計算資源,但價格昂貴,適合從事金融、遊戲、專業大型計算的客戶。

有點容易弄混的是,裸金屬伺服器並不一定是單獨一台或者幾台物理伺服器,也可以是一種硬體層級的虛擬化技術,兼具虛擬機的彈性和物理機的性能及隔離性,獨占計算資源,沒有虛擬化性能開銷和特性損失。類似於小李買了四張車票,這票是可以對號入座的,以此來保證舒適性。

彈性雲伺服器

彈性雲伺服器通常是指虛擬機(區別於裸金屬伺服器),其配置(vCPU數量、內存、硬碟等)可以自由選擇,支持中途變更(升降級),升級補差,但降級不退錢,感覺有些無奈。但細細一想,生活中很多時候不都是這樣麼?例如乘坐火車,硬座升級臥鋪要補差價,但是你的臥鋪票要換到硬座,只要有空位就行,但退錢沒門。

彈性雲既然可以升級,先選個稍低的配置,不夠再加錢升級看起來非常合理。實際上,由於伺服器買的時間越長越划算,假設A主機為7000元/3年,用幾天發現性能不足再加3000升級到B主機,此時會發現,如果一次性選B主機實際只需付8600元。

那是不是應該選高配置?也不是,因為配置過高,浪費了。

選取的原則——「適度冗餘」。看起來簡單四個字,實際做起來比較難。以下五個「軟的」方面,都會考驗硬體的能力。

1、「靜態網頁」和「動態網頁」對配置要求不同。

靜態網頁是單純的HTML頁面,訪問時不需要和資料庫打交道,速度快。

動態和偽靜態網頁並不是獨立存在於伺服器的文件,當瀏覽器發出請求時,伺服器要查詢資料庫後才反饋相應的網頁。

大多數功能性較強的網站,是「動靜共存」的,無需頻繁更改的信息採用靜態網頁,而交互性功能採用動態設計,有些網站還掛了很多插件來實現較為複雜的功能,當訪問量稍大,有幾個訪客同時刷頁面,就會給CPU帶來較大的壓力。

2、運行環境對硬體要求不同。

LAMP是國際流行的WEB框架,它是LINUX+Apache+Mysql+Perl/PHP/Python的縮寫,Linux為伺服器作業系統,Apache提供Web服務,MySQL為資料庫管理系統,PHP作為面向對象的腳本語言(或Perl、Python)。它們本身都是各自獨立的開源程序,但常常放在一起使用。

LINUX除了穩定性、安全性、免費等優勢外,對硬體要求也較低。

例如,選一款入門級雲伺服器:2核2G,這配置跑WINDOWS很勉強,其系統本身就最低要1G內存,但跑LINUX就會輕鬆一些。

3、瘋狂爬蟲會導致壓力急增

在淘汰了託管後,站長選擇了一台2核4G內存的雲伺服器,後來隨著訪問量的增加,升為4核4G,4核6G,8核8G。從表面看,這是一個正常的操作,但經過長久的觀察發現,8核8G的主機,有時CPU占用不足10%,有時卻高達80%以上,難不成要升級到16核?

與之對比的是,一台網吧無盤伺服器,同時服務50台電腦,一顆老奔騰雙核也夠用了,雖然vCPU不是真正的物理處理器,8個線程也不至於無法應對十多個訪客同時在線吧,vCPU為何如此拉跨呢?

通過查詢日誌發現,搜索爬蟲消耗了大量資源。

修改:.htaccess文件,對googlebot進行限制,mysql負載立刻從80降低到30,CPU從60降到20,立杆見影。

一般情況下,並不建議對知名的蜘蛛進行攔截,會影響排名,但這個實驗告訴我們,雲伺服器要有相當的冗餘。

4、網絡攻擊

網吧的無盤伺服器屬於區域網,工作壓力大但環境單純。而雲伺服器屬於網際網路,面臨的環境複雜, 除了善意和惡意的爬蟲外,CC攻擊也時常出現。

CC攻擊模擬多個用戶不停的進行訪問消耗系統資源的頁面,CPU占用迅速升高,導致卡頓、宕機。在現實生活里,有點類似某餐廳突然大量湧入顧客,超過了正常接待量而混亂。在大量的CC攻擊下,無論是8核、16核還是更多,都會很快陷入癱瘓。

5、配置的均衡性

帶寬不足也會導致CPU占用高,從而造成處理器性能不足的假象。

某月,網站卡頓,檢查後發現CPU占用率偏高,伺服器後台報警提示帶寬不足。經過查找,發現罪歸禍首是一張「剛上傳的圖片「,之前的圖片尺寸較小,使用【質量8】保存後體積能控制到300KB內,新圖加大了尺寸,再用【質量8】保存,就超過了500KB,看起來好像僅多200KB沒多大問題,但10多人同時一刷,就要多消耗3M帶寬。最後的解決辦法是降低圖片質量,用【質量5】保存,這樣後台再也沒有報警,節約了升級帶寬的費用,CPU負載也降下來了。

不僅是中小企業,世界級公司也必須要在「節省帶寬」上動動腦筋。例如,打開任何一家知名購物網站,用電腦瀏覽,會發現圖片並不算非常清晰。又如,從事自媒體的人員會發現,當你把一張1.5MB的圖片傳上去,會被自動壓縮到不到200KB,其目的都是為了節省帶寬,提升頁面的打開速度。

總結

四核或者八核至強雲伺服器,不如本地的奔騰雙核主機,主要原因有兩個方面,一是虛擬機的vCPU如同公交車,無法保證隨時讓客戶處於舒適的狀態。二是網絡伺服器的環境異常複雜,複雜的交互功能、瘋狂爬蟲、CC攻擊、配置不均衡等都會導致CPU、內存或者帶寬不足,而此時最容易犯的錯誤是盲目升級,彈性雲升級太容易了,點點滑鼠就能完成,但上升容易下降難,未找到性能不足的真實原因,以後的每年都會白白浪費資金。

關鍵字: