不知道您在開發(fā)應(yīng)用系統(tǒng)、申請服務(wù)器資源時有沒有經(jīng)常遇到CPU、內(nèi)存、存儲、帶寬等概念?是不是有時候也搞不懂這些概念都是什么,更搞不清楚如何評估資源需求,申請少了了系統(tǒng)不夠用,申請多了造成浪費,甚至無法通過審批。不管你有沒有遇到,反正我是經(jīng)常遇到。
本文結(jié)合日常工作經(jīng)驗對CPU、內(nèi)存、存儲、帶寬等基本概念進行基本介紹并聊一聊如何有效的評估資源需求,不妥之處,歡迎評論區(qū)留言交流!
CPU核數(shù)(C)
CPU是中央處理器,其表征了服務(wù)器的處理能力,CPU個數(shù)越多,核數(shù)越多,那么服務(wù)器的處理能力就越強。這里要說明的是,CPU個數(shù)和核數(shù)不一樣,因為現(xiàn)在的CPU往往是多核的,也就是一個CPU有多個核心,因此CPU核數(shù)=CPU個數(shù)*每個CPU的核數(shù)。
不考慮超線程的情況下,服務(wù)器的CPU核數(shù)表征服務(wù)器同一時間能夠運行的進程/線程個數(shù)。實踐中,經(jīng)常會說到4c、8c、16c、32c,這些都是指CPU的核數(shù)。
對于一般的業(yè)務(wù)系統(tǒng),沒有復(fù)雜的業(yè)務(wù)運算,對性能要求比較低,可能8c、甚至4c就夠用了;而對于一些計算密集型的系統(tǒng),如大數(shù)據(jù)類的系統(tǒng),往往需要配置較多的CPU核數(shù),32c、64c比較常見。
# 總核數(shù) = 物理CPU個數(shù) X 每顆物理CPU的核數(shù)
# 總邏輯CPU數(shù) = 物理CPU個數(shù) X 每顆物理CPU的核數(shù) X 超線程數(shù)
# 查看物理CPU個數(shù)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每個物理CPU中core的個數(shù)(即核數(shù))
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看邏輯CPU的個數(shù)
cat /proc/cpuinfo| grep "processor"| wc -l

CPU
內(nèi)存(G)
眾所周知,服務(wù)器的存儲分為內(nèi)存和外存(磁盤存儲)。在內(nèi)存中的數(shù)據(jù)靠近CPU,讀取和處理的速度非常快,在磁盤上的數(shù)據(jù)讀取和處理的速度慢不少。因此,很多業(yè)務(wù)系統(tǒng)會使用內(nèi)存進行性能加速。
如何評估需要多大內(nèi)存的服務(wù)器,這個主要看需要把多少數(shù)據(jù)灌到內(nèi)存里進行計算。如果是一般的業(yè)務(wù)系統(tǒng),數(shù)據(jù)量不大,8G、16G、32G的內(nèi)存也就夠用了;對于大數(shù)據(jù)、人工智能、數(shù)據(jù)挖掘、BI等處理數(shù)據(jù)量較大、對處理要求較高、設(shè)計上使用內(nèi)存計算的一些平臺,可能需要32G、64G、128G,甚至更高。
具體評估時,可以找一個需要內(nèi)存計算的場景,把可能處理的數(shù)據(jù)量測算一下(比如數(shù)據(jù)表的行數(shù)、列數(shù)、字段長度、字段類型等),就可以得出大概的內(nèi)存需求。

內(nèi)存
存儲(G、T)
內(nèi)存中的數(shù)據(jù)雖然快,但不可保存、易丟失,因此對于需要持久化的數(shù)據(jù)還是要保持在磁盤上,比如日志文件、數(shù)據(jù)文件、系統(tǒng)文件等。跟個人終端一樣,服務(wù)器磁盤的大小也遠(yuǎn)大于內(nèi)存的大小,基本是500G、1T、2T、4T這種。
磁盤概念比較好理解,那么怎么評估呢?
一種評估方式就是測算每天的日志文件、數(shù)據(jù)文件等新增文件的大小,按照數(shù)據(jù)清洗策略,測算一定周期內(nèi)日志、數(shù)據(jù)文件的總大小,再加上程序文件、冗余備份等需要的大小,就可以得到應(yīng)用系統(tǒng)需要的磁盤大小,
同樣的,一般業(yè)務(wù)系統(tǒng)可能500G、1T就足夠了,但對于數(shù)倉、大數(shù)據(jù)平臺這種大數(shù)據(jù)量的處理系統(tǒng),動輒好多個T都很正常。當(dāng)然了,對于實際的企業(yè)應(yīng)用來說,現(xiàn)在存儲很少是直接一塊一塊硬盤的方式掛在服務(wù)器上,多是以外掛的方式存在,方便文件共享和管理。

存儲
帶寬(M)
這個概念大家應(yīng)該比較熟悉,因為在應(yīng)用系統(tǒng)中經(jīng)常涉及到系統(tǒng)的交互和數(shù)據(jù)的傳輸,這些都需要依賴于網(wǎng)絡(luò),如果網(wǎng)絡(luò)帶寬不夠那么數(shù)據(jù)傳輸和系統(tǒng)交互的效率就很低,直接影響應(yīng)用系統(tǒng)的性能。常說的帶寬有百兆、千兆、萬兆等,現(xiàn)在百兆在企業(yè)里很少存在了,基本都是千兆和萬兆。
對于應(yīng)用系統(tǒng)來說,一是要看系統(tǒng)的級別及其對性能的要求有多高,二是要看數(shù)據(jù)傳輸?shù)拇笮『拖到y(tǒng)交互的頻次。如果基本沒有跨設(shè)備的數(shù)據(jù)傳輸和高頻的跨設(shè)備的系統(tǒng)交互,那么千兆往往夠用了;如果經(jīng)常在跨設(shè)備上進行大量數(shù)據(jù)傳輸,那么還是萬兆吧,不然就一個感覺:好慢啊!!

帶寬
總結(jié)
上面介紹了CPU、內(nèi)存、存儲、帶寬的基本概念和評估方法,希望對您申請資源有幫助。但這里必須要強調(diào)一點:資源的使用都是有成本的,要節(jié)約,不要浪費,不要盲目擴大資源需求,畢竟閑置的資源都是白花花的人民幣啊。
節(jié)約資源,從每一個應(yīng)用系統(tǒng)做起。