性能測試與分析中密集型的概念 軟件測試
有關“密集型”的概念,baidu的“知道”中“什么是勞動密集型產品”的解釋是:是指生產該產品需要大量的勞動力,產品成本中活勞動量消耗占比重較大,比如紡織產品、服務產品、食品、日用百貨等。
同樣在性能測試過程中我們為了區別應用程序對系統資源的消耗比重不同,把一些較典型的對某類資源消耗比較多的的程序稱為“××密集型”的。比如如果某程序在運行過程中CPU的利用率始終很高(在80%甚至90%以上)時我們就可以稱為為是“CPU密集型”的,如果某程序在運行過程中頻繁地(相對來說 CPU等其它資源較空閑時)讀取或寫入磁盤我們就稱之為是“I/O密集型”或者“磁盤密集型”的。此外如果應用程序在大用戶量并發訪問時占用更多的帶寬而 CPU、磁盤等其它資源較空閑,就可以稱之為是“帶寬密集型”的。通常在確定了這幾個概念后其實就已經明確地標識出了該應用程序可能存在的性能瓶頸,例如如果應用程序是“帶寬密集型”的,那么除非保證有足夠的帶寬,否則它將成為應用程序的性能瓶頸。
但是一般的應用程序并不是都這么明顯地只好用一種資源,他們都是相對來說的。不過有些應用程序的特點就決定了它屬于其中某一類,比如對于一些偏重于需要大量計算的web應用程序就屬于是CPU密集型的,對于靜態圖片訪問的web應用程序,它可能就是“I/O密集型”或者“磁盤密集型”的。
此外針對以上不同類型的應用程序可以采取不同的瓶頸消除策略:
1、對于“CPU密集型”的web應用程序可以采取優化算法的方式,或者采用多CPU的機器、集群來提高應用程序的并行響應能力;
2、對于“I/O密集型”的web應用程序可以采用I/O效率較高的SCSI硬盤,或者采用集群的方式;
3、對于“帶寬密集型”的web應用程序,在不影響功能的情況下盡量減少上傳下載的信息量或者使用更高的帶寬,或者采用HTTP壓縮的辦法。
本文總結了幾類典型的應用服務的特點,并給出了一些針對性解決問題的辦法。在實際工作中可能是集中情況疊加在一起的,因此在采取消除瓶頸的策略時要綜合考慮。
文章來源于領測軟件測試網 http://www.kjueaiud.com/