Linux 檢視計算機各個硬體的效能: sysbench (多執行緒效能測試工具)

心冰之海發表於2024-12-09

安裝

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install sysbench

CentOS/RHEL:

sudo yum install epel-release
sudo yum install sysbench

使用

執行 CPU 壓力測試:

sysbench cpu --threads=4 run

執行記憶體壓力測試:

sysbench memory --threads=4 run

執行檔案IO壓力測試:

sysbench fileio --threads=4 --file-total-size=1G prepare
sysbench fileio --threads=4 --file-total-size=1G --file-test-mode=rndrw run

執行資料庫壓力測試(MySQL):

sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=password --mysql-db=test --threads=4 prepare
sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=password --mysql-db=test --threads=4 run

編譯安裝

  1. 首先,確保您的Amazon Linux例項上已經安裝了必要的編譯工具和依賴項。您可以使用以下命令來安裝這些工具:

    sudo yum update
    sudo yum groupinstall "Development Tools"
    
  2. 下載sysbench的原始碼。您可以從sysbench的官方GitHub儲存庫(https://github.com/akopytov/sysbench)下載最新的原始碼。

    git clone https://github.com/akopytov/sysbench.git
    
  3. 進入sysbench原始碼目錄。

    cd sysbench
    
  4. 使用以下命令來生成配置檔案和編譯原始碼:

     ./autogen.sh
     ./configure
     make
    
  5. 安裝sysbench到系統中

     sudo make install
    

編寫一個shell程式將cpu跑滿

#!/bin/bash

# 獲取系統中可用的 CPU 核心數量
cpu_cores=$(nproc)

# 設定併發程序數為 CPU 核心數量
# 如果您希望跑滿多個 CPU 核心,可以將此值適當增加
concurrent_processes=$cpu_cores

# 使用迴圈建立併發程序,每個程序佔用一個 CPU 核心
for ((i=0; i<concurrent_processes; i++))
do
  # 使用 yes 命令進行無限迴圈,將 CPU 跑滿
  yes > /dev/null &
done

# 等待一段時間,讓 CPU 跑滿
# 您可以根據需要調整等待時間
sleep 60

# 結束所有建立的程序
killall yes

附錄

基準測試

命令:

sysbench cpu --threads=1 run
sysbench memory --threads=1 run
sysbench fileio --threads=1 --file-total-size=1G prepare
sysbench fileio --threads=1 --file-total-size=1G --file-test-mode=rndrw run
  • 工作桌上型電腦

CPU

CPU speed:                                                            
    events per second:  1327.18

Memory

Total operations: 69457150 (6944840.94 per second)                                                                                          
67829.25 MiB transferred (6782.07 MiB/sec)

SSD

Throughput:
    read, MiB/s:                  138.84
    written, MiB/s:               92.56
  • 桌上型電腦虛擬機器

    CPU speed:
        events per second:  1384.65
    
    57968.05 MiB transferred (5796.07 MiB/sec)
    
    Throughput:
        read, MiB/s:                  135.68
        written, MiB/s:               90.45
    
  • ARM伺服器虛擬機器

    CPU speed:
        events per second:  2704.44
    
    35698.92 MiB transferred (3569.88 MiB/sec)
    
    Throughput:
             read:  IOPS=104.27 1.63 MiB/s (1.71 MB/s)
             write: IOPS=69.51 1.09 MiB/s (1.14 MB/s)
             fsync: IOPS=223.31

相關文章