stress-ng (stres generasi berikutnya)
stress-ng akan menguji sistem komputer dengan berbagai cara yang dapat dipilih. Ini dirancang untuk menjalankan berbagai subsistem fisik komputer serta berbagai antarmuka kernel sistem operasi. Fitur stres-ng:
- 350+ tes stres
- 80+ stress test khusus CPU yang melatih floating point, integer, manipulasi bit, dan aliran kontrol
- 20+ tes stres memori virtual
- 40+ tes stres sistem file
- 30+ tes stres memori/cache CPU
- portabel: dibangun di Linux (Debian, Devuan, RHEL, Fedora, Centos, Slackware OpenSUSE, Ubuntu, dll.), Solaris, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Minix, Android, MacOS X, Serenity OS, GNU/Hurd, Haiku, Subsistem Windows untuk Linux, Cygwin dan SunOs/Dilos/Solaris. dengan gcc, musl-gcc, clang, icc, icx, tcc dan pcc.
- diuji pada alpha, armel, armhf, arm64, hppa, i386, loong64, m68k, mips32, mips64, power32, ppc64el, risc-v, sh4, s390x, sparc64, x86-64
stress-ng pada awalnya dimaksudkan untuk membuat mesin bekerja keras dan menyebabkan masalah perangkat keras seperti kelebihan panas serta bug sistem operasi yang hanya terjadi ketika sistem sedang dihancurkan dengan keras. Gunakan stress-ng dengan hati-hati karena beberapa pengujian dapat membuat sistem menjadi panas pada perangkat keras yang dirancang dengan buruk dan juga dapat menyebabkan kerusakan sistem yang berlebihan yang mungkin sulit dihentikan.
stress-ng juga dapat mengukur tingkat hasil pengujian; ini berguna untuk mengamati perubahan kinerja di berbagai rilis sistem operasi atau jenis perangkat keras. Namun, ini tidak pernah dimaksudkan untuk digunakan sebagai rangkaian pengujian benchmark yang tepat, jadi JANGAN menggunakannya dengan cara ini.
Menjalankan stress-ng dengan hak akses root akan menyesuaikan pengaturan memori pada sistem Linux untuk membuat pemicu stres tidak dapat dihilangkan dalam situasi memori rendah, jadi gunakan ini dengan bijaksana. Dengan hak istimewa yang sesuai, stress-ng dapat memungkinkan kelas ionik dan tingkat ionik disesuaikan, sekali lagi, ini harus digunakan dengan hati-hati.
Tarball
Tarball dari setiap versi stress-ng dapat diunduh menggunakan URL:
https://github.com/ColinIanKing/stress-ng/tarball/version
dimana version adalah nomor versi yang relevan, misalnya:
https://github.com/ColinIanKing/stress-ng/tarball/V0.13.05
Menjalankan snapshot stress-ng terbaru dalam sebuah wadah
docker run --rm ghcr.io/colinianking/stress-ng --help
atau
docker run --rm colinianking/stress-ng --help
Paket Debian untuk Ubuntu
Versi terbaru dari stress-ng tersedia di ppa stress-ng Ubuntu untuk berbagai rilis Ubuntu:
https://launchpad.net/~colin-king/+archive/ubuntu/stress-ng
sudo add-apt-repository ppa:colin-king/stress-ng
sudo apt update
sudo apt install stress-ng
Membangun stres-ng
Untuk membangun, perpustakaan berikut akan memastikan stress-ng build berfungsi penuh: (catatan libattr tidak diperlukan untuk rilis disto yang lebih baru).
Debian, Ubuntu:
- gcc g++ libacl1-dev libaio-dev libapparmor-dev libatomic1 libattr1-dev libbsd-dev libcap-dev libeigen3-dev libgbm-dev libcrypt-dev libglvnd-dev lilipsec-mb-dev libjpeg-dev libjudy-dev libkeyutils-dev libkmod-dev libmd-dev libmpfr-dev libsctp-dev libxxhash-dev zlib1g-dev
RHEL, Fedora, Centos:
- gcc g++ eigen3-devel Judy-devel keyutils-libs-devel kmod-devel libacl-devel libaio-devel libatomic libattr-devel libbsd-devel libcap-devel libgbm-devel libcrypt-devel libglvnd-core-devel libglvnd-devel libjpeg-devel libmd -pengembangan mpfr-pengembangan libX11-devel libXau-devel libxcb-devel lksctp-tools-devel xorg-x11-proto-devel xxhash-devel zlib-devel
RHEL, Fedora, Centos (build statis):
- gcc g++ eigen3-devel glibc-static Judy-devel keyutils-libs-devel libacl-devel libaio-devel libatomic-static libattr-devel libbsd-devel libcap-devel libgbm-devel libcrypt-devel libglvnd-core-devel libglvnd-devel libjpeg- mengembangkan libmd-mengembang libX11-devel libXau-devel libxcb-devel lksctp-tools-devel mpfr-devel xorg-x11-proto-devel xxhash-devel zlib-devel
SUSE:
- gcc gcc-c++ eigen3-devel keyutils-devel libaio-devel libapparmor-devel libatomic1 libattr-devel libbsd-devel libcap-devel libgbm-devel libglvnd-devel libjpeg-turbo libkmod-devel libmd-devel libseccomp-devel lksctp-tools-devel mpfr-pengembangan xxhash-pengembangan zlib-pengembangan
HapusLinux:
- devpkg-acl devpkg-eigen devpkg-Judy devpkg-kmod devpkg-attr devpkg-libbsd devpkg-libjpeg-turbo devpkg-libsctp devpkg-mesa
Linux Alpen:
- build-base eigen-dev jpeg-dev judy-dev keyutils-dev kmod-dev libacl-dev libaio-dev libatomic libattr libbsd-dev libcap-dev libmd-dev libseccomp-dev lksctp-tools-dev mesa-dev mpfr-dev xxhash -dev zlib-dev
Buncis:
- stress-ng tidak dimaksudkan untuk diambil dengan snapcraft. Melakukan hal ini sangat bertentangan dengan keinginan pengelola proyek dan pengembang utama.
CATATAN: build akan mencoba mendeteksi dependensi build dan akan membuat image dengan fungsionalitas yang dinonaktifkan jika pustaka dukungan tidak diinstal.
Pada waktu build, stress-ng akan mendeteksi fitur kernel yang tersedia pada sistem build target dan mengaktifkan stress test dengan tepat. Stress-ng telah diuji build di Ubuntu, Debian, Debian GNU/Hurd, Slackware, RHEL, SLES, Centos, kFreeBSD, OpenBSD, NetBSD, FreeBSD, Debian kFreeBSD, DragonFly BSD, OS X, Minix, Solaris 11.3, OpenIndiana dan Hiaku. Port ke sistem operasi lain seperti POSIX/UNIX seharusnya relatif mudah.
CATATAN: SELALU jalankan make clean
setelah mengambil perubahan dari repositori git untuk memaksa build membuat ulang file konfigurasi build. Pembuatan paralel menggunakan make -j didukung.
Untuk membangun sistem BSD, diperlukan gcc dan GNU make:
CC=gcc gmake clean
CC=gcc gmake
Untuk membangun sistem OS X, cukup gunakan:
Untuk membangun MINIX, diperlukan gmake dan clang:
CC=clang gmake clean
CC=clang gmake
Untuk membangun di SunOS, diperlukan pembuatan GCC dan GNU, bangun menggunakan:
CC=gcc gmake clean
CC=gcc gmake
Untuk membangun Dilos, diperlukan pembuatan GCC dan GNU, bangun menggunakan:
CC=gcc gmake clean
CC=gcc gmake
Untuk mengembangkan Haiku R1/beta5:
# GCC
make clean
make
# Clang
CC=clang make clean
CC=clang make
Untuk membuat gambar statis (misalnya, untuk Android), gunakan:
# path to Android NDK
# get NDK from https://developer.android.com/ndk/downloads
export NDK=$HOME/android-ndk-r27c
export PATH=$PATH:$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
export TARGET=aarch64-linux-android
# Define Android API level
export API=27
export CC=$TARGET$API-clang
make clean
STATIC=1 make
Untuk membangun dengan kompiler Tiny C:
Untuk membangun dengan kompiler C portabel PCC, gunakan:
Untuk membangun dengan perpustakaan musl C:
Untuk membangun dengan icc kompiler Intel C, gunakan:
Untuk membangun dengan kompiler Intel C icx gunakan:
Untuk melakukan kompilasi silang menggunakan gcc, gunakan build statis, tentukan rantai alat (CC dan CXX). Misalnya, pembuatan silang mips64:
make clean
STATIC=1 CC=mips64-linux-gnuabi64-gcc CXX=mips64-linux-gnuabi64-g++ make -j $(nproc)
Untuk melakukan kompilasi silang untuk qnx, misalnya, cross build aarch64 qnx:
make clean
CC=aarch64-unknown-nto-qnx7.1.0-gcc CXX=aarch64-unknown-nto-qnx7.1.0-g++ STATIC=1 make
Opsi build: DEBUG, build dengan debug (-g) diaktifkan:
Opsi pembuatan: LTO, Pengoptimalan Waktu Tautan (~1-2% peningkatan kinerja pada pemicu stres komputasi):
Opsi build: PEDANTIC, aktifkan flag build pedantic:
make clean
PEDANTIC=1 make
Opsi pembuatan: GARBAGE_COLLECT, peringatkan kode yang tidak digunakan:
make clean
GARBAGE_COLLECT=1 make
Opsi pembuatan: UNEXPECTED=1, peringatkan kode #ifdef yang tidak terduga:
make clean
UNEXPECTED=1 make
Berkontribusi pada stres-ng:
Kirim tambalan ke [email protected] atau gabungkan permintaan di https://github.com/ColinIanKing/stress-ng
Panduan Referensi Mulai Cepat
Panduan referensi Ubuntu stress-ng berisi ikhtisar singkat dan contoh kerja.
Contoh
Jalankan 4 CPU, 2 memori virtual, 1 disk, dan 8 pemicu stres fork selama 2 menit dan cetak pengukuran:
stress-ng --cpu 4 --vm 2 --hdd 1 --fork 8 --timeout 2m --metrics
stress-ng: info: [573366] setting to a 120 second (2 mins, 0.00 secs) run per stressor
stress-ng: info: [573366] dispatching hogs: 4 cpu, 2 vm, 1 hdd, 8 fork
stress-ng: info: [573366] successful run completed in 123.78s (2 mins, 3.78 secs)
stress-ng: info: [573366] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s CPU used per
stress-ng: info: [573366] (secs) (secs) (secs) (real time) (usr+sys time) instance (%)
stress-ng: info: [573366] cpu 515396 120.00 453.02 0.18 4294.89 1137.24 94.42
stress-ng: info: [573366] vm 2261023 120.01 223.80 1.80 18840.15 10022.27 93.99
stress-ng: info: [573366] hdd 367558 123.78 10.63 11.67 2969.49 16482.42 18.02
stress-ng: info: [573366] fork 598058 120.00 68.24 65.88 4983.80 4459.13 13.97
Jalankan pemicu stres matriks pada semua CPU online selama 60 detik dan ukur suhu:
stress-ng --matrix -1 --tz -t 60
stress-ng: info: [1171459] setting to a 60 second run per stressor
stress-ng: info: [1171459] dispatching hogs: 8 matrix
stress-ng: info: [1171459] successful run completed in 60.01s (1 min, 0.01 secs)
stress-ng: info: [1171459] matrix:
stress-ng: info: [1171459] acpitz0 75.00 C (348.15 K)
stress-ng: info: [1171459] acpitz1 75.00 C (348.15 K)
stress-ng: info: [1171459] pch_skylake 60.17 C (333.32 K)
stress-ng: info: [1171459] x86_pkg_temp 62.72 C (335.87 K)
Jalankan campuran 4 pemicu stres I/O dan periksa perubahan dalam metadata SMART disk:
sudo stress-ng --iomix 4 --smart -t 30s
stress-ng: info: [1171471] setting to a 30 second run per stressor
stress-ng: info: [1171471] dispatching hogs: 4 iomix
stress-ng: info: [1171471] successful run completed in 30.37s
stress-ng: info: [1171471] Device ID S.M.A.R.T. Attribute Value Change
stress-ng: info: [1171471] sdc 01 Read Error Rate 88015771 71001
stress-ng: info: [1171471] sdc 07 Seek Error Rate 59658169 92
stress-ng: info: [1171471] sdc c3 Hardware ECC Recovered 88015771 71001
stress-ng: info: [1171471] sdc f1 Total LBAs Written 481904395 877
stress-ng: info: [1171471] sdc f2 Total LBAs Read 3768039248 5139
stress-ng: info: [1171471] sdd be Temperature Difference 3670049 1
Panggilan sistem benchmark menggunakan VDSO:
stress-ng --vdso 1 -t 5 --metrics
stress-ng: info: [1171584] setting to a 5 second run per stressor
stress-ng: info: [1171584] dispatching hogs: 1 vdso
stress-ng: info: [1171585] stress-ng-vdso: exercising vDSO functions: clock_gettime time gettimeofday getcpu
stress-ng: info: [1171585] stress-ng-vdso: 9.88 nanoseconds per call (excluding 1.73 nanoseconds test overhead)
stress-ng: info: [1171584] successful run completed in 5.10s
stress-ng: info: [1171584] stressor bogo ops real time usr time sys time bogo ops/s bogo ops/s CPU used per
stress-ng: info: [1171584] (secs) (secs) (secs) (real time) (usr+sys time) instance (%)
stress-ng: info: [1171584] vdso 430633496 5.10 5.10 0.00 84375055.96 84437940.39 99.93
stress-ng: info: [1171584] vdso 9.88 nanoseconds per call (average per stressor)
Hasilkan dan ukur kesalahan cabang menggunakan metrik kinerja:
sudo stress-ng --branch 1 --perf -t 10 | grep Branch
stress-ng: info: [1171714] 604,703,327 Branch Instructions 53.30 M/sec
stress-ng: info: [1171714] 598,760,234 Branch Misses 52.77 M/sec (99.02%)
Jalankan permutasi stresor I/O pada sistem file ZFS, tidak termasuk stresor rawdev dengan pemeriksaan kesalahan log kernel:
stress-ng --class io --permute 0 -x rawdev -t 1m --vmstat 1 --klog-check --temp-path /zfs-pool/test
x86 saja: mengukur daya menggunakan antarmuka RAPL pada 8 pemicu tekanan matriks 3D secara bersamaan dengan verifikasi diaktifkan. Perhatikan bahwa membaca RAPL memerlukan izin root.
sudo stress-ng --matrix-3d 8 --matrix-3d-size 512 --rapl -t 10 --verify
stress-ng: info: [4563] setting to a 10 secs run per stressor
stress-ng: info: [4563] dispatching hogs: 8 matrix-3d
stress-ng: info: [4563] matrix-3d:
stress-ng: info: [4563] core 6.11 W
stress-ng: info: [4563] dram 2.71 W
stress-ng: info: [4563] pkg-0 8.20 W
stress-ng: info: [4563] psys 16.90 W
stress-ng: info: [4563] uncore 0.06 W
stress-ng: info: [4563] skipped: 0
stress-ng: info: [4563] passed: 8: matrix-3d (8)
stress-ng: info: [4563] failed: 0
stress-ng: info: [4563] metrics untrustworthy: 0
stress-ng: info: [4563] successful run completed in 11.38 secs
Ukur tempat tinggal di negara bagian C:
stress-ng --intmath 0 -t 1m --c-states
stress-ng: info: [6998] setting to a 1 min run per stressor
stress-ng: info: [6998] dispatching hogs: 8 intmath
stress-ng: info: [6998] intmath:
stress-ng: info: [6998] C0 99.98%
stress-ng: info: [6998] C1 0.00%
stress-ng: info: [6998] C1E 0.01%
stress-ng: info: [6998] C3 0.00%
stress-ng: info: [6998] C6 0.01%
stress-ng: info: [6998] C7s 0.00%
stress-ng: info: [6998] C8 0.00%
stress-ng: info: [6998] POLL 0.00%
stress-ng: info: [6998] skipped: 0
stress-ng: info: [6998] passed: 8: intmath (8)
stress-ng: info: [6998] failed: 0
stress-ng: info: [6998] metrics untrustworthy: 0
stress-ng: info: [6998] successful run completed in 1 min
Bug dan regresi ditemukan dengan stress-ng
stress-ng telah menemukan berbagai bug/regresi Kernel, QEMU, dan bug libc; perbaikan yang tepat telah dilakukan untuk mengatasi masalah ini:
2015:
- KUNCI: pastikan kita membebaskan edit array assoc jika edit valid
- proc: memperbaiki kesalahan -ESRCH saat menulis ke /proc/$pid/coredump_filter
- Kesalahan pembagian SMP
2016:
- fs/locks.c: kernel oops selama uji stres kunci posix
- sched/core: Memperbaiki perlombaan antara try_to_wake_up() dan tugas yang diaktifkan
- devpts: memperbaiki dereferensi penunjuk nol pada alokasi memori yang gagal
- arm64: jangan menerapkan penyelarasan ketat 16 byte ke penunjuk tumpukan
2017:
- ARM: dts: meson8b: tambahkan zona memori yang dicadangkan untuk memperbaiki pembekuan senyap
- ARM64: dts: meson-gx: Tambahkan zona memori cadangan firmware
- ext4: kunci blok xattr sebelum melakukan checksum
- rcu_preempt mendeteksi kemacetan pada CPU/tugas
- BUG: tidak dapat menangani dereferensi penunjuk kernel NULL
- PERINGATAN: kemungkinan ketergantungan penguncian melingkar terdeteksi
2018:
- Ilumos: ofdlock(): pernyataan gagal: lckdat->l_start == 0
- debugobjects: Gunakan daftar gratis global di __debug_check_no_obj_freed()
- ext4_validate_inode_bitmap:99: comm stress-ng: Bitmap inode rusak
- virtio/s390: memperbaiki balapan di ccw_io_helper()
2019:
- mm/page_idle.c: perbaiki oops karena end_pfn lebih besar dari max_pfn
- mm: pemadatan: menghindari penggunaan CPU 100% selama pemadatan ketika tugas dihentikan
- mm/vmalloc.c: memuat CPU dengan satu objek untuk tujuan terpisah
- perf evlist: Gunakan unshare(CLONE_FS) di utas sb agar setns(CLONE_NEWNS) berfungsi
- riscv: menolak syscall yang tidak valid di bawah -1
2020:
- RISC-V: Jangan izinkan permintaan pemetaan halaman write+exec saja di mmap
- riscv: setel max_pfn ke PFN halaman terakhir
- crypto: hisilicon - perbarui parameter modul driver SEC
- net: atm: perbaiki pembaruan indeks posisi di lec_seq_next
- sched/debug: Memperbaiki kerusakan memori yang disebabkan oleh beberapa pembacaan kecil pada flag
- ocfs2: ratelimit pemberitahuan 'waktu pencarian maksimal tercapai'
- menggunakan perf dapat membuat kernel crash dengan stack overflow
- stress-ng pada kernel fokus yang diaktifkan gcov memicu OOPS
- bug kernel list_del korupsi pada s390x dari stress-ng mknod dan stress-ng symlink
2021:
- sparc64: Memperbaiki pemfilteran opcode dalam menangani beban tanpa kesalahan
- membuka file dengan O_DIRECT pada sistem file yang tidak mendukung akan meninggalkan file kosong
- mengunci/atom: sparc: Perbaiki arch_cmpxchg64_local()
- btrfs: memperbaiki kelelahan array potongan sistem karena alokasi bersamaan
- btrfs: mengerjakan ulang alokasi bongkahan untuk menghindari habisnya susunan bongkahan sistem
- btrfs: memperbaiki kebuntuan dengan alokasi potongan bersamaan yang melibatkan potongan sistem
- mengunci/atom: sparc: Perbaiki arch_cmpxchg64_local()
- pipa: lakukan notifikasi FASYNC untuk setiap IO pipa, bukan hanya perubahan status
- io-wq: menghapus alokasi GFP_ATOMIC di luar jadwal
- mm/swap: pertimbangkan halaman maksimal di iomap_swapfile_add_extent
- blok: loop: memperbaiki kebuntuan antara membuka dan menghapus
- tmpfs: O_DIRECT | O_CREATE membuka laporan kegagalan terbuka tetapi sebenarnya membuat file
2022:
- copy_process(): Pindahkan fd_install() dari bagian penting desahand->siglock
- minix: memperbaiki bug saat membuka file dengan O_DIRECT
- arch/arm64: Memperbaiki inisialisasi topologi untuk penjadwalan inti
- menjalankan stress-ng di Minux 3.4.0-RC6 di amd64 tegaskan di vm/region.c:313
- tes unshare memicu kesalahan halaman yang tidak tertangani
- permintaan_modul DoS
- Regresi Tolok Ukur NUMA Di Linux 5.18
- Underflow di mas_spanning_rebalance() dan uji
- mm/huge_memory: jangan mengalahkan swp_entry_t selama pemisahan THP
- AppArmor: -42,5% regresi stress-ng.kill.ops_per_sec karena penerapan
- sumber jam: Tangguhkan pengawas sementara ketika latensi baca tinggi terdeteksi
2023:
- segfault qemu-system-m68k pada opcode 0x4848
- rtmutex: Pastikan pelayan teratas selalu terbangun
- mm/swap: perbaiki balapan swap_info_struct antara swapoff dan get_swap_pages()
- blok, bfq: Memperbaiki kesalahan pembagian dengan nol pada wsum nol
- riscv: mm: Pastikan prot VM_WRITE dan VM_EXEC harus dapat dibaca
- Kembalikan "mm: vmscan: buat lempengan global menyusut tanpa kunci"
- crash/hang in mm/swapfile.c:718 add_to_avail_list saat berolahraga stress-ng
- mm: memperbaiki kondisi balapan writeback zswap
- x86/fpu: Setel fitur X86_FEATURE_OSXSAVE setelah mengaktifkan OSXSAVE di CR4
- kernel/fork: waspadalah terhadap konteks panggilan __put_task_struct()
- arm64: dts: ls1028a: tambahkan info cache l1 dan l2
- filemap: tambahkan filemap_map_order0_folio() untuk menangani order0 folio
- mm: shrinker: menambahkan infrastruktur untuk mengalokasikan shrinker secara dinamis
- mm: shrinker: membuat lempengan global menyusut tanpa kunci
- bcachefs: Hapus btree_node_just_write() saat node digunakan kembali atau diusir
- penelusuran: Memperbaiki penguncian yang tidak lengkap saat menonaktifkan peristiwa yang di-buffer
- mm: migrasi: memperbaiki pemetaan halaman yang salah selama migrasi halaman
- mm: mmap: petakan MAP_STACK ke VM_NOHUGEPAGE
2024:
- fs: meningkatkan ketahanan dump_mapping()
- tracing: Pastikan visibilitas saat memasukkan elemen ke tracing_map
- konektor/cn_proc: kembalikan "konektor: Perbaiki jumlah proc_event_num_listeners tidak dihapus"
- powerpc/pseries: memperbaiki akurasi waktu yang dicuri
- OpenBSD: libm: segfault di sincosl
- membuka dan menutup /dev/dri/card0 dalam instance QEMU KVM akan mematikan sistem, 6.10.0-rc6+
- jubah: cegah mutex_lock() di bawah rcu_read_lock()
- sistem terkunci dengan kernel RT di amd64
- PERINGATAN: CPU: 17 PID: 118273 di kernel/sched/deadline.c:794 setup_new_dl_entity+0x12c/0x1e8
- kernel ups di pick_next_task_fair di kernel 6.8.1-1002-realtime
- kernel ups di aafs_create di kernel 6.8.1-1002-realtime
- mm: mengoptimalkan loop berlebihan
- MultiVM - Tamu L2 yang menjalankan stress-ng terjebak saat booting setelah memicu crash
- powerpc/qspinlock: Memperbaiki kebuntuan di antrian MCS
- regresi kernel dengan flag mount ext4 dan ea_inode dan menjalankan xattrs
- sched_ext: Tugas TASK_DEAD harus dialihkan ke SCX di ops_enable
- dijadwalkan/tenggat waktu: Memperbaiki kebocoran referensi task_struct
- sched_ext: Membagi DSQ global per node NUMA
- memanggil getcpu dengan alamat yang tidak selaras menyebabkan kepanikan kernel
- cygwin: pread/pwrite: mencegah kesalahan EBADF setelah fork()
- cygwin 3.5.4-1: penanganan sinyal menghancurkan nilai 'long double'
- cygwin: timer_delete: Memperbaiki nilai pengembalian
- cygwin: ubah pthread_sigqueue() untuk menerima id thread
- keamanan/kunci: perbaiki pelat di luar batas di key_task_permission
- sched_ext: Jangan menahan scx_tasks_lock terlalu lama
- sched/numa: Memperbaiki potensi dereferensi penunjuk nol di task_numa_work()
- reiserfs panik menggunakan stressor fsize
Perbaikan kernel yang menggunakan stress-ng
2020:
- selinux: selesaikan penyisipan fungsi hashtab
- selinux: menyimpan transisi peran dalam tabel hash
- sched/rt: Optimalkan pemeriksaan batasan penjadwal RT grup
- sched/fair: menangani kasus task_h_load() yang mengembalikan 0
- jadwal/tenggat waktu: Unthrottle PI meningkatkan thread saat enqueuing
- mm: memperbaiki masalah kinerja madvise AKAN PERLU
- powerpc/dma: Perbaiki dma_map_ops::get_required_mask
- stress-ng close menyebabkan kernel oops(es) v5.6-rt dan v5.4-rt
2021:
- Kembalikan "mm, slub: pertimbangkan sebagian daftar lainnya jika acquire_slab() gagal
- mm: memori: tambahkan orig_pmd ke struct vm_fault
- selftests/powerpc: Tambahkan pengujian patching mitigasi
- dm crypt: Hindari percpu_counter pertikaian spinlock di crypt_page_alloc()
- mm/migrate: mengoptimalkan pembaruan pesanan penurunan pangkat waktu hotplug
- powerpc/rtas: peningkatan rtas_busy_delay()
2022:
- sched/core: Menghitung waktu idle paksa untuk semua tugas kecuali tugas idle
- ipc/mqueue: gunakan get_tree_nodev() di mqueue_get_tree()
2023:
- mm/swapfile: tambahkan cond_resched() di get_swap_pages()
- modul: tambahkan statistik debug untuk membantu mengidentifikasi tekanan memori
- modul: hindari alokasi jika modul sudah ada dan siap
- dijadwalkan: Interleave pengatur waktu bandwidth cfs untuk meningkatkan kinerja thread tunggal pada pemanfaatan rendah
- mm/khugepaged: hapus try_to_freeze() yang berlebihan
2024:
- mm/vmalloc: menghilangkan pertentangan kunci dari dua kali menjadi satu kali
- mm: alihkan mm->get_unmapped_area() ke sebuah bendera
- mm: selalu sebariskan _compound_head() dengan CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
- mm: optimalkan loop berlebihan mm_update_owner_next()
Presentasi
- Presentasi stres di ELCE 2019 Lyon
- Video presentasi di atas
- Sesi Pendampingan Linux Foundation, Mei 2022
- Presentasi Resep Kernel, September 2023
- Linux Foundation, ELISA, Juni 2024
Kutipan
- Alat uji kinerja kernel Linux
2015:
- Meningkatkan model energi Cloud untuk mengoptimalkan efisiensi pusat data
- Tejo: Skema Deteksi Anomali yang Diawasi untuk Database NewSQL
- CoMA: Pemantauan Sumber Daya Kontainer Docker
- Investigasi hubungan pemanfaatan CPU antara host dan tamu di infrastruktur Cloud
2016:
- Meningkatkan determinisme Platform PQOS DPDK
- Menuju Manajemen Data Hemat Energi di HPC: Pendekatan Open Ethernet Drive
- Analisis kinerja CPU dan memori pada alokasi sumber daya dinamis dan khusus menggunakan XenServer di lingkungan Pusat Data
- Berapa Banyak Daya yang Dikonsumsi Server Anda? Memperkirakan Daya Soket Dinding Menggunakan Pengukuran RAPL
- DevOps untuk Aplikasi IoT menggunakan Jaringan Seluler dan Cloud
- Simulator Beban Kerja Fungsi Jaringan Virtual
- Mengkarakterisasi dan Mengurangi Variabilitas Kinerja Lintas Platform Menggunakan Virtualisasi Tingkat OS
- Berapa banyak daya yang dikonsumsi server Anda? Memperkirakan daya stopkontak menggunakan pengukuran RAPL
- UIE: Estimasi Interferensi Berpusat pada Pengguna untuk Aplikasi Cloud
2017:
- Penskalaan Otomatis Kontainer: dampak Metrik Relatif dan Absolut
- Menguji Subsistem Windows untuk Linux
- Analisis praktis Protokol Waktu Presisi dalam berbagai jenis beban sistem
- Menuju Prediksi Biaya Sadar Energi Mesin Virtual di Awan
- Algoritma dan Arsitektur untuk Pemrosesan Paralel
- Konsep dan alat canggih untuk pasokan energi terbarukan di Pusat Data
- Pemantauan dan Pemodelan Server Komputasi Terbuka
- Analisis eksperimental dan numerik untuk potensi penggunaan kembali panas di pusat data berpendingin cairan
- Pemodelan dan Analisis Kinerja dalam Gangguan di Cloud
- Secara Efektif Mengukur dan Mengurangi Latensi Kernel untuk Batasan Waktu Nyata
- Pemantauan dan Analisis hubungan beban CPU antara Host dan Tamu di Infrastruktur Jaringan Cloud
- Mengukur dampak patch Preempt-RT
- Identifikasi Perpustakaan yang Andal Menggunakan Teknik VMI
- Elastic-PPQ: Sistem otonom dua tingkat untuk pemrosesan kueri preferensi spasial melalui aliran data dinamis
- Integrasi OpenEPC dalam 5GTN sebagai bukti konsep NFV
- Instrumentasi Biner Dinamis Sadar Waktu
- Laporan Pengalaman: Penambangan Log menggunakan Pemrosesan Bahasa Alami dan Penerapan Deteksi Anomali
- Proses campuran waktu-kritis mengganggu karakterisasi pada sistem Linux multicore
- Orkestrasi Cloud di Tingkat Aplikasi
2018:
- Emulasi Multicore pada Lingkungan Virtual
- Stress-SGX : Muat dan Tekankan Enklave Anda untuk Kesenangan dan Keuntungan
- quiho: Pengujian Regresi Kinerja Otomatis Menggunakan Profil Pemanfaatan Sumber Daya Tersirat
- Analisis Optimasi Memori Hypervisor dan Mesin Virtual
- Pengujian waktu nyata dengan Fuego
- FECBench: Kerangka Kerja yang Dapat Diperluas untuk Menentukan Sumber Interferensi Kinerja dalam Spektrum Sumber Daya Cloud-Edge
- Mengukur Interaksi Antara Properti Struktural Perangkat Lunak dan Perangkat Keras dalam Arsitektur ARM Big.LITTLE
- Aksi RAPL: Pengalaman Menggunakan RAPL untuk Pengukuran Daya
2019:
- Isolasi Kinerja Beban Kerja Berlokasi Bersama dalam Arsitektur Perangkat Lunak Kendaraan Berbasis Kontainer
- Analisis dan Deteksi Eksploitasi Berbasis Cache
- kMVX: Mendeteksi Kebocoran Informasi Kernel dengan Eksekusi Multi-varian
- Skalabilitas Kubernetes yang Berjalan di AWS
- Sebuah studi tentang ukuran kinerja untuk aplikasi container intensif CPU yang melakukan penskalaan otomatis
- Scavenger: Manajer Sumber Daya Beban Kerja Batch Black-Box untuk Meningkatkan Pemanfaatan di Lingkungan Cloud
- Memperkirakan Kinerja Aplikasi Cloud Berdasarkan Profil Micro-Benchmark
- Deteksi Anomali pada NFV Menggunakan Metode Tree-Based Unsupervised Learning
2020:
- Pengorbanan Kinerja dan Energi untuk Aplikasi Paralel pada Sistem Multi-Pemrosesan Heterogen
- C-Balancer: Sistem Pembuatan Profil dan Penjadwalan Kontainer
- Memodelkan Karakteristik Laten VM dan Memprediksi Kinerja Aplikasi menggunakan Faktorisasi Matriks Non-negatif Semi-supervised
- Penyeimbangan beban semi-dinamis: pembelajaran terdistribusi yang efisien di lingkungan non-khusus
- Analisis Kinerja Teknologi Keamanan Berbantuan Perangkat Keras
- Rekayasa Perangkat Lunak Green Cloud untuk Pemrosesan Big Data
- Deteksi Real-Time untuk Serangan Saluran Sisi Cache menggunakan Performance Counter Monitor
- Menumbangkan Arsitektur Pengukuran Integritas Linux
- Penilaian kinerja real-time menggunakan permintaan interupsi cepat pada kernel Linux standar
- Konsumsi Energi Rendah pada Platform Pasca-Moore untuk Penelitian HPC
- Mengelola Latensi di Lingkungan Edge-Cloud
- Mengungkap Latensi Penjadwalan Linux Real-Time
2021:
- Merampingkan: Serangan Saluran Terselubung Cache yang Cepat dan Tanpa Penghilangan dengan Mengaktifkan Kolusi Asinkron
- Analisis Eksperimental di Hadoop MapReduce: Melihat Lebih Dekat Teknik Deteksi Kesalahan dan Pemulihan
- Karakteristik Kinerja BlueField-2 SmartNIC
- Mengevaluasi Latensi dalam Sistem Tertanam Multiproses untuk Smart Grid
- Pekerjaan yang Sedang Berlangsung: Keberagaman Waktu sebagai Mekanisme Perlindungan
- Arsitektur Pembelajaran Mendalam Berurutan untuk Deteksi Anomali dalam Rantai Fungsi Jaringan Virtual
- WattEdge: Pendekatan Holistik untuk Pengukuran Energi Empiris dalam Edge Computing
- PTEMagnet: Reservasi Memori Fisik Terperinci untuk Penjelajahan Halaman Lebih Cepat di Cloud Publik
- Harga Meltdown dan Spectre: Biaya Mitigasi Energi di Tingkat Sistem Operasi
- Studi Empiris tentang Serangan Termal pada Platform Edge
- Sage: Debugging Kinerja Berbasis ML yang Praktis & Skalabel di Layanan Mikro
- Pendekatan Umum Untuk Alokasi Tugas Praktis Menggunakan Loop Kontrol MAPE-K]
- Menuju Pemantauan Cloud Run-time yang Independen
- FIRESTARTER 2: Pembuatan Kode Dinamis untuk Uji Stres Prosesor
- Perbandingan performa antara cluster Kubernetes dan sistem tertanam
- Eksplorasi Kinerja Sistem Virtualisasi
- Menipu Perangkat Keras menjadi Mengamankan Perangkat Lunak secara Efisien
2022:
- Metode umum untuk mengevaluasi overhead saat mengkonsolidasikan server: penurunan kinerja pada mesin dan kontainer virtual
- FedComm: Memahami Protokol Komunikasi untuk Pembelajaran Federasi Berbasis Edge
- Mencapai Isolasi dalam Sistem Edge Industri dengan Kekritisan Campuran dengan Kontainer Real-Time
- Perancangan dan Implementasi Sistem Prediksi Kesalahan Berbasis Pembelajaran Mesin di Infrastruktur Cloud
- Blok Bangunan TSN di Linux
- uKharon: Layanan Keanggotaan untuk Aplikasi Mikrodetik
- Mengevaluasi Pengembangan Firmware Secure Enclave untuk Workstation RISC-V Kontemporer Workstation RISC-V Kontemporer
- Evaluasi Real-Time Linux pada arsitektur prosesor RISC-V
- Hertzbleed: Mengubah Serangan Saluran Sisi Kekuatan Menjadi Serangan Waktu Jarak Jauh di x86
- Jangan Berkeliaran: Serangan Saluran Samping dan Mitigasi pada Interkoneksi Mesh
- Implikasi Kinerja untuk Sistem Multi-Core RISC-V dengan Perangkat Keras Keamanan Khusus
2023:
- Lawan Perangkat Keras dengan Perangkat Keras: Deteksi Seluruh Sistem dan Mitigasi Serangan Saluran Samping menggunakan Penghitung Kinerja
- Memperkenalkan k4.0s: Model Orkestrasi Kontainer Kritis Campuran di Industri 4.0
- Kajian Komprehensif Optimalisasi Sistem dengan Unit Pengolahan Data
- Memperkirakan Kinerja Aplikasi Cloud Berdasarkan Profil Micro-Benchmark
- PSPRAY: Teknik Eksploitasi Tumpukan Kernel Linux Berbasis Saluran Sisi Waktu
- Deteksi dan prediksi anomali kinerja yang kuat dan akurat untuk aplikasi cloud: kerangka kerja berbasis pembelajaran ansambel baru
- Studi Kelayakan untuk Sistem Kontrol Real-Time Tertanam Berbasis Python
- Adaptasi SaaS Paralel ke Sumber Daya Cloud Berlokasi Bersama yang Heterogen
- Metodologi dan Kerangka untuk Menentukan Kemampuan Isolasi Teknologi Virtualisasi
- Stasiun Data: Komputasi yang Didelegasikan, Dapat Dipercaya, dan Dapat Diaudit untuk Memungkinkan Konsorsium Berbagi Data dengan Escrow Data
- Studi Empiris tentang Kesalahan Penekanan Sumber Daya dalam Aplikasi Edge-Computing
- Menemukan pengujian yang tidak stabil dalam aplikasi JavaScript menggunakan stres dan penataan ulang rangkaian pengujian
- Kekuatan Telemetri: Mengungkap Serangan Saluran Sampingan Berbasis Perangkat Lunak pada Sistem Apple M1/M2
- Evaluasi Kinerja Sistem Kekritisan Campuran Multi-core Tertanam Berbasis PREEMPT RT Linux
- Kebocoran Data dalam Sistem Komputasi Perusahaan Virtual Terisolasi
- Pertimbangan untuk Membandingkan Kinerja Jaringan dalam Infrastruktur dalam Kontainer
- EnergAt: Atribusi Energi Terperinci untuk Multi-Sewa
- Mengukur Profil Keamanan Aplikasi Linux
- Gotham Testbed: IoT Testbed yang Dapat Direproduksi untuk Eksperimen Keamanan dan Pembuatan Kumpulan Data
- Pembuatan Profil dengan Kepercayaan: Pemantauan Sistem dari Lingkungan Eksekusi Tepercaya
- Inferensi pada Perangkat Sadar Termal Menggunakan Paralelisasi Lapisan Tunggal dengan Prosesor Heterogen
- Menuju Penjadwalan Ruang Pengguna yang Cepat, Adaptif, dan Berbantuan Perangkat Keras
- Deteksi Anomali Heterogen untuk Sistem Perangkat Lunak melalui Perhatian Lintas Modal Semi-supervisi
- Pengkodean ramah lingkungan: pendekatan empiris untuk memanfaatkan konsumsi energi layanan perangkat lunak
- Meningkatkan Riset Rekayasa Kinerja Perangkat Lunak Empiris dengan Peristiwa Tingkat Kernel: Pendekatan Penelusuran Sistem Komprehensif
- Cloud White: Mendeteksi dan Memperkirakan Degradasi QoS pada Beban Kerja Kritis Latensi di Cloud Publik
- Manajemen Sumber Daya Dinamis untuk Aplikasi Paralel Sinkron Massal Cloud-native
- Menuju Optimasi Tanpa Server dengan Penskalaan di Tempat
- Pendekatan Modular untuk Merancang Kerangka Eksperimental untuk Penelitian Manajemen Sumber Daya
- Deanonimisasi yang Ditargetkan melalui Saluran Sisi Cache: Serangan dan Pertahanan
- Memvalidasi Simulator RISC-V Sistem Penuh: Pendekatan Sistematis
- Implementasi Ringan Perlindungan Layanan Per-paket di eBPF/XDP
- Optimasi dan Evaluasi Kinerja Real-time ROS2
- Analisis eksperimental dan numerik dari perilaku termal pusat data berpendingin perendaman satu fase
2024:
- IdleLeak: Memanfaatkan Efek Samping Idle State untuk Kebocoran Informasi
- Pembuatan profil dengan kepercayaan: pemantauan sistem dari lingkungan eksekusi tepercaya
- Contoh Penentuan Isolasi QoS Berbasis Cgroups untuk Beban Kerja Basis Data
- BARO: Analisis Akar Penyebab yang Kuat untuk Layanan Mikro melalui Deteksi Titik Perubahan Online Multivariat Bayesian
- Membedakan Anomali Kinerja dari Perubahan Beban Kerja di Aplikasi Cloud-Native
- Ambil Selangkah Lebih Jauh: Memahami Page Spray dalam Eksploitasi Kernel Linux
- Dampak konsumsi daya di cloud container: Analisis komprehensif alat pengukuran daya sumber terbuka
- Evaluasi Stres Termal pada Pembelajaran Federasi Berbasis IoT Heterogen
- Deteksi Anomali Dalam Pemrosesan Panggilan Mission-Critis
- Penilaian Awal terhadap kemampuan real-time Linux Real-Time pada Raspberry Pi 5
- Perbandingan Arsitektur Berbasis Linux Real-Time untuk Aplikasi Musik Tertanam
- Nona: Model Prediksi Daya Akurat Menggunakan Jaringan Syaraf Tiruan
Saya ingin menambahkan ke halaman proyek stress-ng kutipan apa pun untuk penelitian atau proyek yang menggunakan stress-ng. Saya juga menghargai informasi mengenai bug kernel atau regresi kinerja yang ditemukan dengan stress-ng.
Kontributor
Terima kasih banyak kepada kontributor stress-ng berikut (dalam urutan abjad):
Abdul Haleem, Aboorva Devarajan, Adriand Martin, Adrian Ratiu, Aleksandar N. Kostadinov, Alexander Kanavin, Alexandru Ardelean, Alfonso Sánchez-Beato, Allen H, Amit Singh Tomar, Andrey Gelman, André Wild, Anisse Astier, Anton Eliasson, Arjan van de Ven, Baruch Siach, Bryan W. Lewis, Camille Constans, Carlos Santos, Christian Ehrhardt, Christopher Brown, Chunyu Hu, Daniel Andriesse, Daniel Hodges, Danilo Krummrich, Davidson Francis, David Turner, Denis Ovsienko, Dominik B Czarnota, Dorinda Bassey, Eder Zulian, Eric Lin, Erik Stahlman, Erwan Velu, Fabien Malfoy, Fabrice Fontaine, Fernand Sieber, Florian Weimer, Francis Laniel, Guilherme Janczak, Hui Wang, Hsieh-Tseng Shen, Iyán Méndez Veiga, Ivan Shapovalov, James Hunt, Jan Luebbe, Jianshen Liu, Jimmy Ho, John Kacur, Julee, Jules Maselbas, Julien Olivain, Kenny Gong, Khalid Elmously, Khem Raj, Luca Pizzamiglio, Luis Chamberlain, Luis Henriques, Lukas Durfina, Matteo Italia, Matthew Tippett, Mauricio Faria de Oliveira, Maxime Chevallier, Max Kellermann, Maya Rashish, Mayuresh Chitale, Meysam Azad, Mike Koreneff, Munehisa Kamata, Myd Xia, Nick Hanley, Nikolas Kyx, Paul Menzel, Piyush Goyal, Ralf Ramsauer, Rosen Penev, Rulin Huang, Sascha Hauer, Sergey Matyukevich, Siddhesh Poyarekar, Shoily Rahman, Stian Onarheim, Thadeu Lima de Souza Cascardo, Thia Wyrod, Thinh Tran, Tim Gardner, Tim Gates, Tim Orling, Tommi Rantala, Witold Baryluk, Yiwei Lin, Yong-Xuan Wang, Zhiyi Sun.