asterinas/.github/workflows/benchmark_x86.yml
2025-06-04 11:04:30 +08:00

135 lines
4.4 KiB
YAML

name: "Benchmark x86-64 "
on:
# In case of manual trigger, use workflow_dispatch
workflow_dispatch:
schedule:
# Schedule to run on every day at 20:00 UTC (04:00 Beijing Time)
- cron: '0 20 * * *'
jobs:
Benchmarks:
runs-on: self-hosted
strategy:
matrix:
benchmarks:
- sysbench/cpu_lat
- sysbench/thread_lat
# Memory-related benchmarks
- lmbench/mem_read_bw
- lmbench/mem_write_bw
- lmbench/mem_copy_bw
- lmbench/mem_pagefault_lat
- lmbench/mem_mmap_bw
- lmbench/mem_mmap_lat
# Process-related benchmarks
- lmbench/process_getppid_lat
- lmbench/process_ctx_lat
- lmbench/process_fork_lat
- lmbench/process_exec_lat
- lmbench/process_shell_lat
# Signal-related benchmarks
- lmbench/signal_catch_lat
- lmbench/signal_install_lat
- lmbench/signal_prot_lat
# IPC-related benchmarks
- lmbench/pipe_lat
- lmbench/pipe_bw
- lmbench/fifo_lat
- lmbench/semaphore_lat
- lmbench/unix_lat
- lmbench/unix_bw
- lmbench/unix_connect_lat
# Syscall-related benchmarks
- lmbench/vfs_fstat_lat
- lmbench/vfs_open_lat
- lmbench/vfs_stat_lat
- lmbench/vfs_write_lat
- lmbench/vfs_read_lat
- lmbench/vfs_select_lat
- lmbench/vfs_fcntl_lat
- lmbench/vfs_read_pagecache_bw
# File-related benchmarks
- lmbench/ramfs_create_delete_files_0k_ops
- lmbench/ramfs_create_delete_files_10k_ops
- lmbench/ramfs_copy_files_bw
- lmbench/ext2_create_delete_files_0k_ops
- lmbench/ext2_create_delete_files_10k_ops
- lmbench/ext2_copy_files_bw
- fio/ext2_seq_write_bw
- fio/ext2_seq_read_bw
- fio/ext2_seq_write_bw_no_iommu
- fio/ext2_seq_read_bw_no_iommu
# Loopback-related network benchmarks
- lmbench/tcp_loopback_bw_128
- lmbench/tcp_loopback_bw_4k
- lmbench/tcp_loopback_bw_64k
- lmbench/tcp_loopback_lat
- lmbench/tcp_loopback_connect_lat
- lmbench/tcp_loopback_select_lat
- lmbench/tcp_loopback_http_bw
- lmbench/udp_loopback_lat
# VirtIO-net-related network benchmarks
- lmbench/tcp_virtio_bw_128
- lmbench/tcp_virtio_bw_64k
- lmbench/tcp_virtio_connect_lat
- lmbench/tcp_virtio_lat
- lmbench/udp_virtio_lat
- iperf3/tcp_virtio_bw
# Scheduler-related benchmarks
- hackbench/group8_smp1
# FIXME: hackbench panics on multi-core settings now.
# - hackbench/group8_smp8
# - hackbench/group8_smp16
- schbench/smp1
- schbench/smp8
# Nginx benchmarks
- nginx/http_req10k_conc1_bw
- nginx/http_req10k_conc20_bw
- nginx/http_file4KB_bw
- nginx/http_file8KB_bw
- nginx/http_file16KB_bw
- nginx/http_file32KB_bw
- nginx/http_file64KB_bw
# Redis benchmarks
- redis/ping_inline_100k_conc20_rps
- redis/ping_mbulk_100k_conc20_rps
- redis/get_100k_conc20_rps
- redis/set_100k_conc20_rps
# SQLite benchmarks
- sqlite/ext2_benchmarks
- sqlite/ramfs_benchmarks
# Memcached benchmarks
- memcached/t8_conc32_window10k
- memcached/t8_conc32_window20k
- memcached/t16_conc64_window10k
fail-fast: false
# FIXME: Remove the following line after fixing the parallel execution of network benchmarks.
max-parallel: 1
timeout-minutes: 60
container:
image: asterinas/asterinas:0.15.0-20250516
options: --device=/dev/kvm --privileged
steps:
- uses: actions/checkout@v4
- name: Run benchmarks
uses: ./.github/actions/benchmark
with:
task: benchmark
platform: x86-64
benchmark: ${{ matrix.benchmarks }}
Results:
runs-on: ubuntu-latest
needs: Benchmarks
if: always()
steps:
- uses: actions/checkout@v4
- name: Store benchmark results
uses: ./.github/actions/benchmark
with:
task: result
platform: x86-64
benchmark-secret: ${{ secrets.BENCHMARK_SECRET }}