現在便宜的VPS主機越來越多了,一些美國的VPS主機甚至給出1美元一月的VPS,堪比虛擬主機還要便宜,巨大的價格優勢吸引不少人購買和使用,而近些年來國內的主機商也開始意識到便宜的VPS對草根站長的誘惑力,紛紛推出了低價VPS,其中突出的代表就是阿里雲。
所謂“一分錢一分貨”,把VPS當成虛擬主機來賣的如果不是做慈善事業就是超售嚴重,買回來的VPS到底值不值這個價錢,我們一般需要對VPS主機進行一番性能測試,涉及的項目主要有CPU內存,硬盤IO讀寫,帶寬速度,UnixBench和壓力測試等等。
本篇文章就來分享一下如何對一個VPS主機進行CPU內存,硬盤IO讀寫,帶寬速度等項目測試,像UnixBench和壓力測試則可以綜合反映一個VPS的性能水平,方便大家對照參考。
VPS性能測試:CPU內存,硬盤IO讀寫,帶寬速度,UnixBench和壓力測試
一、VPS性能測試:CPU物理個數、內核、超線程、多核心
1、登錄VPS界面,執行:
cat /proc/cpuinfo
就會顯示出VPS主機的CPU詳細參數,如內核、頻率、型號等等,以下是我的阿里雲服務器的VPS主機CPU:
2、主要參數physical_id表示物理CPU個數,cpu cores是內核數,Siblings 表示位於這一物理封裝上的邏輯處理器的數量,它們可能支持也可能不支持超線程(HT)技術。
3、如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術。如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id 不同,則說明這是一個多內核處理器。
4、如果“siblings”和“cpu cores”一致,則說明不支持超線程,或者超線程未打開。如果“siblings”是“cpu cores”的兩倍,則說明支持超線程,並且超線程已打開。
5、直接查看邏輯CPU的個數,執行:
cat /proc/cpuinfo |grep ‘physical id’ |sort |uniq
6、直接查看CPU的型號,執行:
cat /proc/cpuinfo |grep ‘model name’ |sort |uniq
7、單個CPU的內核數,執行:
cat /proc/cpuinfo |grep ‘cpu cores’ |sort |uniq
8、總的CPU線程數,執行:
cat /proc/cpuinfo |grep ‘processor’
9、上面我的阿里雲服務器屬於1核1CPU的,這是我前幾天申請的Host1plus免費VPS主機的VPS CPU信息,多線程,多內核的。
二、VPS性能測試:內存大小、交換空間、高速緩存、實際使用內存
1、要想查看購買的VPS主機的內存信息,執行:
cat /proc/meminfo
主要是看內存大小、交換空間、高速緩存。
2、VPS主機實際使用內存大小。Linux管理內存的機制是這樣的:無論物理內存有多大,Linux 都將其充份利用,將一些程序調用過的硬盤數據讀入內存,利用內存讀寫的高速特性來提高Linux系統的數據訪問性能。
3、即Linux會利用空閑的物理內存,划分出一部份空間,做為 cache 和 buffers ,以此提高數據訪問性能。cache主要用來減少對磁盤的I/O操作。所以我們經常能夠看到一個總內存為8GB的Linux VPS測試出來占用的內存也是8GB。
4、那么如何才能知道Linux真正占用的內存是多少呢?執行命令:
free –m
5、計算VPS真實的使用內存方法是:Total-Free-Cached=真實使用內存,即1536-1313-208=15,表示我的VPS真實使用的內存是15MB。
三、VPS性能測試:磁盤IO讀寫速度、SSD硬盤速度測試
1、磁盤IO,即輸入/輸出(Input/Output),這是測試磁盤性能一個重要指標,一些便宜的VPS主機為了降低成本,以大量的低性能的硬盤來充當服務器,導致VPS主機因為IO差而拖了整個主機性能的后腿。
2、測試VPS主機磁盤IO的性能可以執行以下兩個命令:
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
3、conv=fdatasync與oflag=dsync的區別在於:sync函數只是將所有修改過的塊緩沖區排入寫隊列,然后就返回,它並不等待實際寫磁盤操作結束。
4、而fsync函數只對由文件描述符filedes指定的單一文件起作用,並且等待寫磁盤操作結束,然后返回。這是我的阿里雲VPS的硬盤IO測試結果。
5、這是Host1plus免費VPS主機的硬盤IO,從測試結果對比可以看出:阿里雲的IO速度確實不行,這也怪不得阿里雲可以賣得這么便宜。
6、SSD硬盤速度測試。對於VPS采用SSD硬盤的,為了更加真實的反映出SSD硬盤的性能,在控制端命令中執行以下命令:
yum install hdparm -y fdisk -l hdparm -t /dev/hda
7、第一句是安裝hdparm,第二句是找出對應磁盤的驅動號,第三句就是利用hdparm在指定的硬盤上測試硬盤的讀寫速度。
8、VPS硬盤IO負載測試。使用top命令查看%wa數據,表示IO等待所占用的CPU時間的百分比,高過30%時IO壓力可能比較大。
9、另外一條命令是:iostat -x 1 10,如果沒有執行安裝:yum install sysstat,主要查看%util 和%idle ,如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,idle小於70% IO壓力就較大了,一般讀取速度有較多的wait。(點擊放大)
四、VPS速度測試:上傳下載速度、服務器帶寬、Ping響應時間
1、VPS的速度好壞經常是我們選擇某一個VPS商家的重要參考指標,對於國外的VPS主機我們可以執行以下命令來測試VPS入口帶寬是多少。
wget https://cachefly.cachefly.net/100mb.test
2、而對於國內的VPS主機,或者想要測試國外的VPS連接國內的速度,可以用Wget的方法下載國內服務器上的一個文件,最好選擇那些沒有使用海外CDN服務器的,這樣數據更准確。
3、而測試VPS主機的出口速度,則可以使用FTP或者Winscp軟件從服務器下載一個文件到本地,可以直觀地看到速度。
4、為了避免因本地網絡環境影響了VPS主機下載速度,有條件的朋友可以找一個國內的VPS主機來Wget被測試VPS主機上的文件,像國內的免費VPS服務器Windows Azure就可以了。
5、這里還有一個測試VPS主機在世界各地的下載速度的一鍵腳本,執行命令:
wget freevps.us/downloads/bench.sh -O - -o /dev/null | bash
6、這是測試VPS主機入口與出口的帶寬一鍵腳本,執行命令:
wget https://github.com/sivel/speedtest-cli/raw/master/speedtest_cli.py python speedtest_cli.py --share
7、VPS速度測試主機另一個指標就是Ping的響應時間,要測試Ping,首先要保證VPS開機運行,同時防火牆允許Ping。為了得到全面的Ping結果,可以使用在線站長工具,這些工作一般都提供了電信、聯通、移動等不同的網絡環境測試結果。
五、VPS性能綜合測試:UnixBench跑分工具測試
1、UnixBench是一款開源的測試 unix 系統基本性能的工具,是比較通用的測試VPS性能的工具,Unixbench的主要測試項目有:系統調用、讀寫、進程、圖形化測試、2D、3D、管道、運算、C庫等系統基准性能提供測試數據。
2、UnixBench測試的結果不僅僅只是CPU,內存,或者磁盤為基准,還取決於硬件,操作系統版本,編譯器,測試系統各個方面一系列的性能,然后將每個測試結果和一個基准值進行比較,得到一個索引值,所有測試項目的索引值結合在一起形成一個測試分數值。
3、另外,unixbench版本不同也去導致測試得分的結果有很大的差別,大家如果要使用UnixBench來測試VPS的性能的話,最好是使用同一個版本的UnixBench。UnixBench測試執行以下命令:
wget https://teddysun.com/wp-content/uploads/unixbench.sh chmod +x unixbench.sh ./unixbench.sh
4、測試時間可能會比較長,請耐心等待。最后UnixBench會詳細列出各個測試項目的得分情況,以及VPS性能的綜合跑分結果。
六、VPS性能綜合測試:服務器壓力測試,VPS系統負載測試
1、可能有的VPS主機使用性能測評工具得出的結果很優秀,但是最終運用到實際生產時卻發現VPS主機根本無法承受理論上應該達到的流量壓力,這時我們就不得不要懷疑VPS商是不是對VPS主機的參數進行了“篡改”了,例如CPU、內存、硬盤等等,這些數據都是可以人工修改的。
2、在網站服務器壓力Web性能測試中有提到常用的三個Web服務壓力測試工具:Apache Bench,Webbench,http_load,這也是大家使用得比較多的負載測試軟件,教程:網站服務器壓力Web性能測試:Apache Bench,Webbench,http_load安裝使用。
3、而Pylot,是一款適合在Windows電腦上運行的服務器壓力測試程序,它可以運行HTTP負載測試,對於制定容量計划、確定基准點、分析系統瓶頸以及系統調優都非常有用,教程:Pylot網站Web服務器性能和負載壓力測試-適用Windows可繪制圖表。
七、VPS性能測試方法小結
1、為了能夠得到更為准確和詳細的有關VPS主機性能測試數據,我們應該多角度、全方位地運行多種VPS性能測試工具來進行檢測,同時也要記得排除因本地網絡環境而造成的數據結果的錯誤。
2、VPS主機性能跑分工具不能當成唯一的評判VPS綜合性能的對比指標,現在很多的雲主機和雲空間因為架構的不同,使用UnixBench測試會不准確,更准確的應該是在同等條件下服務器能夠承受的流量壓力。
文章出自:免費資源部落 https://www.freehao123.com/