
現在便宜的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/