- 相關(guān)推薦
基礎(chǔ)(系統(tǒng):CPU,進程)分析師之路
導(dǎo)讀:要做好系統(tǒng)分析類工程師的面試筆試,本身有專業(yè)的技術(shù)是基礎(chǔ),但也要保持一個超高的學習熱情!以下是由應(yīng)屆畢業(yè)生網(wǎng)小編J.L為您整理推薦的基礎(chǔ)(系統(tǒng):CPU,進程)分析師之路,歡迎參考閱讀,
基礎(chǔ)(系統(tǒng):CPU,進程)分析師之路
。今年,確定了自己的職業(yè)走向:系統(tǒng)工程師。所以從工作和學習積累中開始放棄一些知識點和業(yè)務(wù)點,在測試行業(yè)的大知識圈中選中自己需要的幾個要點進行深入研究。
要做好系統(tǒng)分析類的工程師,需要注重3個部分:數(shù)據(jù)庫,操作系統(tǒng),網(wǎng)絡(luò)。此部分以操作系統(tǒng)為主,結(jié)合工作經(jīng)驗,開始把系統(tǒng)以自己的測試角度來描述一下自己的系統(tǒng)見解。(此次學習和工作中性能測試的書為:《操作系統(tǒng)精髓與設(shè)計原理》)
雖然對于評測師考核中,硬件也是測試人員的知識點之一,由于我的職業(yè)走向基本很少和純硬件打交道,我就從cpu開始學習和總結(jié)。
計算機在單核的情況下,程序?qū)ζ涠允且慌判枰獔?zhí)行的指令,在高速執(zhí)行的過程中,單核的計算機執(zhí)行的每個時刻都是只能處理一件事情.所以單核的 CPU處理的速度取決與它的主頻。
想在每個進程之間插入一些操作,一般來說需要靠中斷,中斷一般來自與時鐘,程序和io干預(yù).此時就可以在cpu中執(zhí)行多個進程的程序.進程一般有新建,就緒,執(zhí)行,掛機,退出的狀態(tài),通過程序和cpu自動的分配可以使得進程。
多核的計算機就好比有多個獨立的線程,然后有1 個主控制器來分配任務(wù),比起單核,可以同一時間做多個任務(wù)。在這里我有個疑問,這些多核的系統(tǒng)應(yīng)該也會像分布式系統(tǒng)一樣有個控制器來主導(dǎo)它的執(zhí)行數(shù)據(jù),所以我覺得他也有類似一個這樣的映像瓶頸的因素在(這點書上我沒找到相關(guān)的資料)。
對于CPU,作為性能測試人員來說,即需要分析多線程的客戶端代碼編寫,也需要分析被測服務(wù)器的線程相關(guān)指標。一半作為自動化的腳本來說,線程可能只有10個,出現(xiàn)到需要‘分析’線程的時機不是太多,但是作為壓力測試,尤其是不依賴工具來寫,是個重要的一環(huán)。
一臺普通pc可能在執(zhí)行程序可以開到幾百甚至上千個線程。但是你作為測試的客戶端,就會受到了CPU主頻的限制,
資料共享平臺
《基礎(chǔ)(系統(tǒng):CPU,進程)分析師之路》(http://www.oriental01.com)。一個CPU處理速度是有上限的,就是計算機能夠開超過上千的線程,它輸出的壓力其實不比幾百個線程高。因為此時你的CPU到了極限,多于的線程其實效果就跟列表的速度差不多。所以第一點測試的時候假如要求注重并發(fā)性,你首先要算好和測試你的每臺機器最佳開啟線程數(shù)(測試穩(wěn)定性可以不用)。
其二我一直把一個“核”當作一個測試機對待,即使在現(xiàn)在最流行的云,我也是堅持物理機做壓力,因為你再怎么虛擬,機器的效率是有限的,你用盡了機器的’潛力‘不代表你高并發(fā)。其三,算好每個測試機網(wǎng)絡(luò)io的最大流量,即使你用強大的服務(wù)器機來做客戶端,你的io限制了,還有操作系統(tǒng)的限制,使得它并發(fā)的效果不是你所想的效果。
所以,我們在有條件的情況下,做多線程壓力就需要用到分布式,我也經(jīng)常把多核服務(wù)器當作“小分布式”對待。
但是分析被測系統(tǒng)的性能的時候,除了關(guān)注上面三點外,我們其實不是關(guān)注它的并發(fā)能力,而是它的交易成功率,還有就是排隊的緩存,和負載均衡的效果。
說到線程,應(yīng)該不會忽略掉信號量的使用,也是每年軟件評測師的典型題目:PV操作。因為互斥,死鎖等問題,在我學習科學計算的文章時,用C++ 的代碼會用到信號量。
但是用腳本語言python的時候,發(fā)現(xiàn)很多時候,它封裝的threading竟然也做到了信號量的操作(我在同段代碼加入信號量的控制,效果一樣)這點我需要后期項目機會來研究(畢竟腳本語言使用類似ReentrantReadWriteLock的時候不多)
為什么我會提到互斥,還有我分析操作系統(tǒng)期間,會關(guān)注編寫內(nèi)存這塊呢。因為很多時候,python和java寫的腳本測試的確沒用到這些做壓力測試。
但是你碰到操作數(shù)據(jù)庫,重現(xiàn)產(chǎn)品異常測試BUG問題,還有提高壓力時,無疑嵌入C++語言是個好選擇(這和開發(fā)相反,不知道別人是否這么做,我現(xiàn)在就是這樣做,喜歡把開發(fā)速度快的語言作為主語言)。
因為很多測試代碼“自動”的功能幫倒忙,在做性能測試的異常測試時,往往會因為語言“自動處理”導(dǎo)致很多問題給忽略了,這時候你也不得不用到有“手動”功能的語言來進行測試。
結(jié)語:我的測試之路就是一直在打系統(tǒng)知識基礎(chǔ)的過程,每次分析項目問題的突破都和CPU,進程,線程有關(guān)。同時為后面的學習筆記:分布式,云打下知識基礎(chǔ)。
【基礎(chǔ)系統(tǒng):CPU,進程分析師之路】相關(guān)文章:
筆試題(進程)10-26
月薪萬元,金融分析師搶手07-19
彎路也是必經(jīng)之路09-27
彎路也是必經(jīng)之路08-14
英語學習的成功之路07-19
網(wǎng)絡(luò)編輯的橫向發(fā)展之路12-19
《通往奴役之路》讀書筆記10-24
Java基礎(chǔ)筆試題07-06