Benchmark x86-64 #167
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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.14.1-20250507 | |
| 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 }} | |