最近剛好想順便重新買一台VPS來練習,順手記錄一下購買VPS後的一些操作步驟,包含
- 選購的VPS方案
- 如何選擇合適的線路(附延遲測試script)
- 查看系統基礎資訊
- 使用
sysbench
測試性能 - 使用
stress
進行壓力測試
VPS選購
方案:RackNerd($26.25/年)
因為是拿來練習用的,因此比起穩定性來說更重視CP值(後面如果有升級需求再轉移就好
線路地區選擇
在下單的過程中,需要選擇VPS所在的地區
因為對於這些地區沒有什麼具體概念,所以寫了一個簡單的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的機器。
作業系統選擇
作業系統上,前兩個比較非主流的沒聽過所以不選。後面幾個中主要在考慮:
- Ubuntu:雖然比較使用者友善,但佔用資源比較多,因為沒有要裝桌面系統所以不考慮。
- CentOS:最初是很多公司會採用的系統,但是從前幾年有各種事件之後用的人逐漸變少了,因此暫不選擇。
- Debian:本來是作為社群維護資源比較少,但這幾年的資源也陸續多了起來,最後決定選擇它。
前幾名使用數量的Linux發行版
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
測試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