最近剛好想順便重新買一台VPS來練習,順手記錄一下購買VPS後的一些操作步驟,包含

  • 選購的VPS方案
  • 如何選擇合適的線路(附延遲測試script)
  • 查看系統基礎資訊
  • 使用sysbench測試性能
  • 使用stress進行壓力測試

VPS選購

方案:RackNerd($26.25/年)

因為是拿來練習用的,因此比起穩定性來說更重視CP值(後面如果有升級需求再轉移就好
VPS方案|500

線路地區選擇

在下單的過程中,需要選擇VPS所在的地區
線路地區|300

因為對於這些地區沒有什麼具體概念,所以寫了一個簡單的Bash script來ping看看每個IP的延遲

#!/bin/bash

# 確認用戶有提供輸入和輸出文件的路徑
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 inputFile outputFile"
    exit 1
fi

inputFile=$1
outputFile=$2

# 確保輸出文件是空的
> $outputFile

# 讀取輸入文件中的每個IP地址,並逐個ping
while IFS= read -r ip; do
    echo "Pinging $ip..."
    # 執行ping命令,只發送4個echo請求,並提取時間延遲
    pingResult=$(ping -c 4 $ip | tail -1| awk '{print $4}' | cut -d '/' -f 2)
    # 如果ping成功,將結果寫入輸出文件
    if [ ! -z "$pingResult" ]; then
        echo "$ip: Average latency is $pingResult ms" >> $outputFile
    else
        echo "$ip: Ping failed" >> $outputFile
    fi
done < "$inputFile"

echo "Ping tests completed. Results saved to $outputFile."
./ping_test.sh IP_list.txt IP_result.txt

一番比較之後,我選擇了延遲最低的Los Angles的機器。
|300

作業系統選擇

|300
作業系統上,前兩個比較非主流的沒聽過所以不選。後面幾個中主要在考慮:

  • Ubuntu:雖然比較使用者友善,但佔用資源比較多,因為沒有要裝桌面系統所以不考慮。
  • CentOS:最初是很多公司會採用的系統,但是從前幾年有各種事件之後用的人逐漸變少了,因此暫不選擇。
  • Debian:本來是作為社群維護資源比較少,但這幾年的資源也陸續多了起來,最後決定選擇它。

前幾名使用數量的Linux發行版
|300
Usage Statistics and Market Share of Linux for Websites, February 2024

性能測試

基礎資訊

# 查看作業系統版本
cat /etc/os-release

# 查看IP地址
ip a

# 查看CPU資訊
cat /proc/cpuinfo

# 查看記憶體
free -m

# 查看儲存空間
df -h

# 查看已經安裝套件
dpkg --list

# 查看服務器設定
systemctl status

sysbench 指標測試

測試CPU

sysbench --test=cpu --cpu-max-prime=2000 run

|400

測試IO

sysbench --test=fileio --num-threads=10 --file-total-size=1G --file-test-mode=rndrw prepare
sysbench --test=fileio --num-threads=10 --file-total-size=1G --file-test-mode=rndrw run
sysbench --test=fileio --num-threads=10 --file-total-size=1G --file-test-mode=rndrw cleanup
1073741824 bytes written in 4.30 seconds (238.16 MiB/sec).
Throughput:
    read, MiB/s:                  323.29
    written, MiB/s:               215.53

測試記憶體

sysbench --test=memory --memory-block-size=8K --memory-total-size=1G --memory-oper=read run
sysbench --test=memory --memory-block-size=8K --memory-total-size=1G run

stress 壓力測試

stress可以用來產生大量負載

# 對1個CPU進行測試(執行sqrt)
stress --cpu 1 --timeout 100

# 對1MB記憶體進行測試(執行malloc / free)
stress --vm 1 --timeout 100

# 對檔案系統進行檔案IO測試(執行sync)
stress --io 1 --timeout 100

# 對硬碟IO測試 (write / unlink)
stress --hdd 1--timeout 100
  • --timeout 100:為執行100秒
    • 若不加,則會持續執行

speedtest-cli 網速測試

speedtest-cli

測試結果

Download: 699.67 Mbit/s

Upload: 645.27 Mbit/s

參考資料