الإجهاد-ng (الإجهاد الجيل القادم)
سوف Stress-ng اختبار الضغط على نظام الكمبيوتر بطرق مختلفة يمكن اختيارها. لقد تم تصميمه لممارسة الأنظمة الفرعية المادية المختلفة للكمبيوتر بالإضافة إلى واجهات kernel المختلفة لنظام التشغيل. ميزات الإجهاد:
- 350+ اختبارات الإجهاد
- أكثر من 80 اختبار ضغط خاصًا بوحدة المعالجة المركزية والتي تمارس النقطة العائمة والعدد الصحيح ومعالجة البتات والتحكم في التدفق
- 20+ اختبارات إجهاد الذاكرة الافتراضية
- أكثر من 40 اختبار ضغط لنظام الملفات
- أكثر من 30 اختبار ضغط للذاكرة/ذاكرة التخزين المؤقت لوحدة المعالجة المركزية
- محمول: يعتمد على Linux (Debian وDevuan وRHEL وFedora وCentos وSlackware OpenSUSE وUbuntu وما إلى ذلك)، وSolaris وFreeBSD وNetBSD وOpenBSD وDragonFlyBSD وMinix وAndroid وMacOS X وSerenity OS وGNU/Hurd، Haiku، نظام Windows الفرعي لأنظمة التشغيل Linux وCygwin وSunOs/Dilos/Solaris. مع دول مجلس التعاون الخليجي، musl-gcc، clang، icc، icx، tcc وpcc.
- تم اختباره على alpha وarmel وarmhf وarm64 وhpa وi386 وloong64 وm68k وmips32 وmips64 وpower32 وppc64el وrisc-v وsh4 وs390x وsparc64 وx86-64
كان المقصود من Stress-ng في الأصل جعل الآلة تعمل بجد ومعالجة مشكلات الأجهزة مثل التجاوزات الحرارية بالإضافة إلى أخطاء نظام التشغيل التي تحدث فقط عندما يتم سحق النظام بشدة. استخدم الضغط بحذر لأن بعض الاختبارات يمكن أن تجعل النظام يعمل بشكل ساخن على أجهزة سيئة التصميم ويمكن أن تتسبب أيضًا في تحطيم النظام بشكل مفرط والذي قد يكون من الصعب إيقافه.
يمكن لـ Stress-ng أيضًا قياس معدلات إنتاجية الاختبار؛ قد يكون هذا مفيدًا لمراقبة تغييرات الأداء عبر إصدارات أنظمة التشغيل المختلفة أو أنواع الأجهزة. ومع ذلك، لم يكن المقصود أبدًا استخدامه كمجموعة اختبار مرجعية دقيقة، لذا لا تستخدمه بهذه الطريقة.
سيؤدي تشغيل Stress-ng بامتيازات الجذر إلى ضبط إعدادات الذاكرة على أنظمة Linux لجعل عوامل الضغط غير قابلة للقتل في حالات انخفاض الذاكرة، لذا استخدم هذا بحكمة. مع الامتياز المناسب، يمكن أن يسمح Stress-ng بتعديل فئة الأيونات ومستويات الأيونات، مرة أخرى، يجب استخدام هذا بحذر.
كرات القطران
يمكن تنزيل كرات القطران لكل إصدار من Stress-ng باستخدام عنوان URL:
https://github.com/ColinIanKing/stress-ng/tarball/version
حيث الإصدار هو رقم الإصدار ذي الصلة، على سبيل المثال:
https://github.com/ColinIanKing/stress-ng/tarball/V0.13.05
تشغيل أحدث لقطة الإجهاد في حاوية
docker run --rm ghcr.io/colinianking/stress-ng --help
أو
docker run --rm colinianking/stress-ng --help
حزم دبيان لأوبونتو
تتوفر الإصدارات الحديثة من Stress-ng في Ubuntu Stress-ng ppa لإصدارات 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
بناء الإجهاد نانوغرام
للبناء، ستضمن المكتبات التالية بناء Stress-ng يعمل بكامل طاقته: (لاحظ أن libattr ليس مطلوبًا لإصدارات disto الأحدث).
ديبيان، أوبونتو:
- gcc g++ libacl1-dev libaio-dev libapparmor-dev libatomic1 libattr1-dev libbsd-dev libcap-dev libeigen3-dev libgbm-dev libcrypt-dev libglvnd-dev libipsec-mb-dev libjpeg-dev libjudy-dev libkeyutils-dev libkmod-dev libmd-dev libmpfr-dev libsctp-dev libxxhash-dev zlib1g-dev
RHEL، فيدورا، سينتوس:
- دول مجلس التعاون الخليجي g++ eigen3-devel جودي-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 -devel mpfr-devel libX11-devel libXau-devel libxcb-devel lksctp-tools-devel xorg-x11-proto-devel xxhash-devel zlib-devel
RHEL وFedora وCentos (الإنشاءات الثابتة):
- دول مجلس التعاون الخليجي g++ eigen3-devel glibc-static جودي-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- ديفيل libmd-devel libX11-devel libXau-devel libxcb-devel lksctp-tools-devel mpfr-devel xorg-x11-proto-devel xxhash-devel zlib-devel
الاستخدام:
- دول مجلس التعاون الخليجي دول مجلس التعاون الخليجي-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 -devel xxhash-devel zlib-devel
كلير لينكس:
- devpkg-acl devpkg-eigen devpkg-Judy devpkg-kmod devpkg-attr devpkg-libbsd devpkg-libjpeg-turbo devpkg-libsctp devpkg-mesa
جبال الألب لينكس:
- بناء قاعدة eigen-dev jpeg-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 -ديف زليب ديف
اللقطات:
- ليس المقصود من Stress-ng أن يتم التقاطه باستخدام snapcraft. إن القيام بذلك يتعارض تمامًا مع رغبات مشرف المشروع والمطور الرئيسي.
ملاحظة: سيحاول الإصدار اكتشاف تبعيات البناء وسيقوم بإنشاء صورة مع تعطيل الوظيفة إذا لم يتم تثبيت مكتبات الدعم.
في وقت البناء، سوف يكتشف Stress-ng ميزات kernel المتوفرة في نظام البناء المستهدف ويمكّن اختبارات الضغط بشكل مناسب. تم اختبار Stress-ng على Ubuntu وDebian وDebian GNU/Hurd وSlackware وRHEL وSLES وCentos وkFreeBSD وOpenBSD وNetBSD وFreeBSD وDebian kFreeBSD وDragonFly BSD وOS X وMinix وSolaris 11.3 وOpenIndiana و هياكو. يجب أن تكون المنافذ إلى أنظمة التشغيل الأخرى مثل POSIX/UNIX سهلة نسبيًا.
ملاحظة: قم دائمًا بتشغيل make clean
بعد جلب التغييرات من مستودع git لإجبار البناء على إعادة إنشاء ملف تكوين البناء. يتم دعم الإصدارات المتوازية باستخدام make -j.
للبناء على أنظمة BSD، يتطلب الأمر إنشاء gcc وGNU:
CC=gcc gmake clean
CC=gcc gmake
للبناء على أنظمة OS X، ما عليك سوى استخدام:
للبناء على MINIX، يلزم استخدام gmake و clang:
CC=clang gmake clean
CC=clang gmake
للبناء على SunOS، يتطلب الأمر إنشاء دول مجلس التعاون الخليجي وGNU، والبناء باستخدام:
CC=gcc gmake clean
CC=gcc gmake
للبناء على Dilos، يتطلب الأمر إنشاء دول مجلس التعاون الخليجي وGNU، والبناء باستخدام:
CC=gcc gmake clean
CC=gcc gmake
للبناء على Haiku R1/beta5:
# GCC
make clean
make
# Clang
CC=clang make clean
CC=clang make
لإنشاء صورة ثابتة (على سبيل المثال، لنظام Android)، استخدم:
# 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
للبناء باستخدام برنامج التحويل البرمجي Tiny C:
للبناء باستخدام برنامج التحويل البرمجي PCC المحمول، استخدم:
للبناء باستخدام مكتبة musl C:
للإنشاء باستخدام برنامج التحويل البرمجي Intel C، استخدم icc:
للإنشاء باستخدام برنامج التحويل البرمجي Intel C icx، استخدم:
لإجراء تجميع مشترك باستخدام gcc، استخدم بنية ثابتة، وحدد سلسلة الأدوات (كل من CC وCXX). على سبيل المثال، بناء متقاطع mips64:
make clean
STATIC=1 CC=mips64-linux-gnuabi64-gcc CXX=mips64-linux-gnuabi64-g++ make -j $(nproc)
لإجراء ترجمة مشتركة لـ qnx، على سبيل المثال، بناء متقاطع aarch64 qnx:
make clean
CC=aarch64-unknown-nto-qnx7.1.0-gcc CXX=aarch64-unknown-nto-qnx7.1.0-g++ STATIC=1 make
خيار البناء: DEBUG، الإنشاء مع تمكين تصحيح الأخطاء (-g):
خيار البناء: LTO، تحسين وقت الارتباط (تحسين الأداء بنسبة 1-2% تقريبًا على ضغوطات الحساب):
خيار البناء: PEDANTIC، قم بتمكين إشارات البناء المتحذقة:
make clean
PEDANTIC=1 make
خيار البناء: GARBAGE_COLLECT، تحذير من التعليمات البرمجية غير المستخدمة:
make clean
GARBAGE_COLLECT=1 make
خيار البناء: UNEXPECTED=1، تحذير من رمز #ifdef'd غير المتوقع:
make clean
UNEXPECTED=1 make
المساهمة في الإجهاد:
أرسل التصحيحات إلى [email protected] أو قم بدمج الطلبات على https://github.com/ColinIanKing/stress-ng
الدليل المرجعي للبدء السريع
يحتوي الدليل المرجعي لـ Ubuntu Stress-ng على نظرة عامة موجزة وأمثلة عملية.
أمثلة
قم بتشغيل 4 وحدات معالجة مركزية و2 ذاكرة افتراضية وقرص واحد و8 ضغوطات شوكة لمدة دقيقتين وطباعة القياسات:
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
قم بتشغيل عامل ضغط المصفوفة على جميع وحدات المعالجة المركزية (CPUs) الموجودة على الإنترنت لمدة 60 ثانية وقياس درجة الحرارة:
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)
قم بتشغيل مزيج من 4 ضغوطات الإدخال/الإخراج وتحقق من التغييرات في البيانات التعريفية للقرص SMART:
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
مكالمات النظام المعياري باستخدام 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)
إنشاء وقياس أخطاء الفروع باستخدام مقاييس الأداء:
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%)
تشغيل تبديلات ضغوطات الإدخال/الإخراج على نظام ملفات ZFS، باستثناء عوامل الضغط الأولية مع التحقق من أخطاء سجل kernel:
stress-ng --class io --permute 0 -x rawdev -t 1m --vmstat 1 --klog-check --temp-path /zfs-pool/test
x86 فقط: قم بقياس الطاقة باستخدام واجهات RAPL على 8 ضغوطات مصفوفة ثلاثية الأبعاد متزامنة مع تمكين التحقق. لاحظ أن قراءة RAPL تتطلب إذن الجذر.
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
قياس الإقامة في الدولة 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
تم العثور على الأخطاء والانحدارات مع الإجهاد ng
عثر الإجهاد على العديد من الأخطاء/الانحدارات في Kernel وQEMU وأخطاء libc؛ تم وضع الإصلاحات المناسبة لمعالجة هذه المشكلات:
2015:
- المفاتيح: تأكد من تحرير مجموعة assoc إذا كان التعديل صالحًا
- proc: إصلاح خطأ ESRCH عند الكتابة إلى /proc/$pid/coredump_filter
- خطأ في تقسيم SMP
2016:
- fs/locks.c: kernel عفوًا أثناء اختبار ضغط قفل posix
- sched/core: إصلاح السباق بين Try_to_wake_up() ومهمة التنشيط
- devpts: إصلاح عدم مرجعية المؤشر الفارغ عند فشل تخصيص الذاكرة
- Arm64: لا تفرض محاذاة صارمة تبلغ 16 بايت لمؤشر المكدس
2017:
- ARM: dts: meson8b: إضافة منطقة ذاكرة محجوزة لإصلاح التجميد الصامت
- ARM64: dts: meson-gx: إضافة مناطق الذاكرة المحجوزة للبرامج الثابتة
- ext4: قفل كتلة xattr قبل جمعها الاختباري
- اكتشف rcu_preempt الأكشاك على وحدات المعالجة المركزية/المهام
- الخطأ: غير قادر على التعامل مع مرجع مؤشر kernel NULL
- تحذير: تم اكتشاف تبعية قفل دائري محتملة
2018:
- Illumos: ofdlock(): فشل التأكيد: lckdat->l_start == 0
- debugobjects: استخدم القائمة المجانية العامة في __debug_check_no_obj_freed()
- ext4_validate_inode_bitmap:99: comm Stress-ng: صورة نقطية تالفة للداخل
- Virtio/s390: إصلاح السباق في ccw_io_helper()
2019:
- mm/page_idle.c: إصلاح عفوًا لأن end_pfn أكبر من max_pfn
- مم: الضغط: تجنب استخدام وحدة المعالجة المركزية بنسبة 100% أثناء الضغط عند إنهاء المهمة
- mm/vmalloc.c: التحميل المسبق لوحدة المعالجة المركزية بكائن واحد لغرض التقسيم
- perf evlist: استخدم إلغاء المشاركة (CLONE_FS) في سلاسل رسائل sb للسماح لـ setns (CLONE_NEWNS) بالعمل
- riscv: رفض مكالمات النظام غير الصالحة أدناه -1
2020:
- RISC-V: لا تسمح بطلب تعيين الصفحة write+exec فقط في mmap
- riscv: قم بتعيين max_pfn على PFN للصفحة الأخيرة
- التشفير: hisilicon - تحديث معلمة وحدة برنامج تشغيل SEC
- net: atm: إصلاح تحديث مؤشر المركز في lec_seq_next
- جدولة/تصحيح: إصلاح تلف الذاكرة الناتج عن قراءات صغيرة متعددة للأعلام
- ocfs2: معدل الحد الأقصى لإشعار "الحد الأقصى لأوقات البحث التي تم الوصول إليها".
- يمكن أن يؤدي استخدام الأداء إلى تعطل kernel مع تجاوز سعة المكدس
- يؤدي الضغط على ng على النواة البؤرية الممكّنة لـ gcov إلى تشغيل OOPS
- تلف kernel bug list_del على s390x من Stress-ng mknod والارتباط الرمزي Stress-ng
2021:
- sparc64: إصلاح تصفية كود التشغيل في التعامل مع عدم وجود أحمال خطأ
- سيؤدي فتح ملف باستخدام O_DIRECT على نظام ملفات لا يدعمه إلى ترك ملف فارغ
- القفل/الذري: SPARC: إصلاح Arch_cmpxchg64_local()
- btrfs: إصلاح استنفاد مصفوفة قطع النظام بسبب التخصيصات المتزامنة
- btrfs: إعادة صياغة تخصيص القطعة لتجنب استنفاد مصفوفة قطعة النظام
- btrfs: إصلاح حالة الجمود مع عمليات تخصيص القطع المتزامنة التي تتضمن قطع النظام
- القفل/الذري: SPARC: إصلاح Arch_cmpxchg64_local()
- توجيه الإخراج: قم بإجراء إعلامات FASYNC لكل إدخال/إخراج للأنبوب، وليس فقط تغييرات الحالة
- io-wq: إزالة تخصيص GFP_ATOMIC خارج مسار الجدول الزمني
- mm/swap: ضع في اعتبارك الحد الأقصى للصفحات في iomap_swapfile_add_extent
- الكتلة: الحلقة: إصلاح الجمود بين الفتح والإزالة
- تمبفس: O_DIRECT | O_CREATE تقارير مفتوحة عن الفشل ولكنها في الواقع تقوم بإنشاء ملف
2022:
- Copy_process(): انقل fd_install() خارج القسم الحرج sighand->siglock
- minix: إصلاح الخلل عند فتح ملف باستخدام O_DIRECT
- القوس/arm64: إصلاح تهيئة الهيكل للجدولة الأساسية
- تشغيل Stress-ng على Minux 3.4.0-RC6 على amd64 تأكيد في vm/region.c:313
- يؤدي اختبار إلغاء المشاركة إلى حدوث خطأ في الصفحة غير المعالجة
- request_module دوس
- انحدار معيار NUMA في Linux 5.18
- التدفق السفلي في mas_spanning_rebalance() والاختبار
- mm/huge_memory: لا تضغط على swp_entry_t أثناء تقسيم THP
- AppArmor: -42.5% تراجع لـ Stress-ng.kill.ops_per_sec بسبب الالتزام
- مصدر الساعة: تعليق المراقبة مؤقتًا عند اكتشاف زمن انتقال مرتفع للقراءة
2023:
- أخطاء qemu-system-m68k على كود التشغيل 0x4848
- rtmutex: تأكد من إيقاظ النادل العلوي دائمًا
- mm/swap: إصلاح سباق Swap_info_struct بين المبادلة و get_swap_pages()
- block، bfq: إصلاح القسمة على صفر خطأ على صفر wsum
- riscv: mm: تأكد من أن نسخة VM_WRITE وVM_EXEC قابلة للقراءة
- الرجوع إلى "mm: vmscan: جعل اللوحة العالمية تتقلص بدون قفل"
- يتعطل/يعلق في mm/swapfile.c:718 add_to_avail_list عند ممارسة الإجهاد-ng
- مم: إصلاح حالة سباق الكتابة zswap
- x86/fpu: قم بتعيين ميزة X86_FEATURE_OSXSAVE بعد تمكين OSXSAVE في CR4
- kernel/fork: احذر من سياق استدعاء __put_task_struct()
- Arm64: dts: ls1028a: إضافة معلومات ذاكرة التخزين المؤقت l1 وl2
- filemap: أضف filemap_map_order0_folio() للتعامل مع order0 folio
- مم: المتقلص: إضافة بنية تحتية لتخصيص المتقلص ديناميكيًا
- مم: الانكماش: جعل البلاطة العالمية تتقلص بدون قفل
- bcachefs: قم بمسح btree_node_just_writer() عند إعادة استخدام العقدة أو إخلائها
- التتبع: إصلاح القفل غير الكامل عند تعطيل الأحداث المخزنة مؤقتًا
- مم: ترحيل: إصلاح الحصول على تعيين غير صحيح للصفحة أثناء ترحيل الصفحة
- mm: mmap: قم بتعيين MAP_STACK إلى VM_NOHUGEPAGE
2024:
- fs: تحسين متانة dump_mapping()
- التتبع: تأكد من الرؤية عند إدراج عنصر في tracing_map
- الرابط/cn_proc: الرجوع إلى "الموصل: لم يتم مسح عدد المستمعين proc_event_num_listeners"
- powerpc/pseries: إصلاح دقة الوقت المسروق
- OpenBSD: libm: segfault في sincosl
- سيؤدي فتح وإغلاق /dev/dri/card0 في مثيل QEMU KVM إلى إيقاف تشغيل النظام، 6.10.0-rc6+
- uprobes: منع mutex_lock() ضمن rcu_read_lock()
- قفل النظام باستخدام RT kernel على AMD64
- تحذير: وحدة المعالجة المركزية: 17 معرف المنتج: 118273 في kernel/sched/deadline.c:794 setup_new_dl_entity+0x12c/0x1e8
- kernel عفوًا فيpick_next_task_fair في 6.8.1-1002-kernel في الوقت الفعلي
- kernel عفوًا في aafs_create في 6.8.1-1002-kernel في الوقت الفعلي
- مم: تحسين الحلقة الزائدة عن الحاجة
- MultiVM - ضيف (ضيوف) L2 يعمل على الضغط ويتعثر عند التشغيل بعد حدوث العطل
- powerpc/qspinlock: إصلاح حالة الجمود في قائمة انتظار MCS
- انحدار النواة مع إشارات تركيب ext4 وea_inode وممارسة xattrs
- sched_ext: يجب تحويل مهام TASK_DEAD إلى SCX عند ops_enable
- الجدول الزمني/الموعد النهائي: إصلاح تسرب مرجع Task_struct
- sched_ext: تقسيم DSQ العالمي لكل عقدة NUMA
- يؤدي استدعاء getcpu بعنوان غير محاذٍ إلى حدوث ذعر في kernel
- cygwin: pread/pwrite: منع خطأ EBADF بعد الشوكة ()
- cygwin 3.5.4-1: التعامل مع الإشارات يدمر القيم "المزدوجة الطويلة".
- cygwin: timer_delete: إصلاح قيمة الإرجاع
- cygwin: قم بتغيير pthread_sigqueue() لقبول معرف الموضوع
- الأمان/المفاتيح: إصلاح اللوح خارج الحدود في key_task_permission
- sched_ext: لا تحتفظ بـ scx_tasks_lock لفترة طويلة جدًا
- sched/numa: إصلاح عدم مرجعية المؤشر الفارغ المحتمل في Task_numa_work()
- الذعر reiserfs باستخدام الضغوطات fsize
تحسينات النواة التي تستخدم الإجهاد ng
2020:
- selinux: أكمل تضمين وظائف الهاشتاب
- selinux: تخزين انتقالات الأدوار في جدول التجزئة
- sched/rt: تحسين قيود جدولة RT للمجموعة
- جدولة/عادل: التعامل مع حالة Task_h_load() بإرجاع 0
- الجدول الزمني/الموعد النهائي: Unthrottle PI المعزز للخيوط أثناء وضع قائمة الانتظار
- مم: إصلاح madvise سوف يحتاج إلى مشكلة في الأداء
- powerpc/dma: إصلاح dma_map_ops::get_required_mask
- يؤدي إغلاق Stress-ng إلى حدوث عمليات kernel oops v5.6-rt وv5.4-rt
2021:
- الرجوع إلى "mm, slub: ضع في اعتبارك بقية القائمة الجزئية في حالة فشل Acquisition_slab()
- مم: الذاكرة: أضف orig_pmd إلى هيكل vm_fault
- selftests/powerpc: إضافة اختبار تصحيح التخفيف
- تشفير dm: تجنب التنافس على percpu_counter spinlock في crypt_page_alloc()
- mm/migrate: تحسين تحديثات ترتيب تخفيض وقت التوصيل السريع
- powerpc/rtas: تحسينات rtas_busy_delay()
2022:
- sched/core: حساب الوقت الضائع لجميع المهام باستثناء المهمة الخاملة
- ipc/mqueue: استخدم get_tree_nodev() في mqueue_get_tree()
2023:
- مم/ملف المبادلة: أضف cond_resched() في get_swap_pages()
- الوحدة النمطية: إضافة إحصائيات التصحيح للمساعدة في تحديد ضغط الذاكرة
- الوحدة النمطية: تجنب التخصيص إذا كانت الوحدة موجودة بالفعل وجاهزة
- sched: مؤقتات عرض النطاق الترددي المتداخلة cfs لتحسين أداء الخيط الفردي عند الاستخدام المنخفض
- mm/khugepaged: قم بإزالة المحاولة_to_freeze() الزائدة
2024:
- mm/vmalloc: إزالة تنافس القفل من مرتين إلى مرة واحدة
- mm: قم بتبديل mm->get_unmapped_area() إلى علامة
- مم: مضمّن دائمًا _compound_head() مع CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
- mm: تحسين الحلقة المتكررة لـ mm_update_owner_next()
العروض التقديمية
- عرض الإجهاد في ELCE 2019 ليون
- فيديو للعرض أعلاه
- جلسة التوجيه الخاصة بمؤسسة Linux، مايو 2022
- العرض التقديمي لوصفات Kernel، سبتمبر 2023
- مؤسسة Linux، ELISA، يونيو 2024
الاستشهادات
- أداة اختبار أداء نواة لينكس
2015:
- تعزيز نماذج الطاقة السحابية لتحسين كفاءة مراكز البيانات
- تيجو: مخطط للكشف عن الشذوذ تحت الإشراف لقواعد بيانات NewSQL
- CoMA: مراقبة موارد حاويات Docker
- التحقيق في علاقة استخدام وحدة المعالجة المركزية بين المضيف والضيوف في البنية التحتية السحابية
2016:
- زيادة حتمية النظام الأساسي PQOS DPDK
- نحو إدارة البيانات بكفاءة في استخدام الطاقة في HPC: نهج محرك Ethernet المفتوح
- تحليل أداء وحدة المعالجة المركزية والذاكرة في التخصيص الديناميكي والمخصص للموارد باستخدام XenServer في بيئة مركز البيانات
- ما مقدار الطاقة التي يستهلكها خادمك؟ تقدير قدرة مقبس الحائط باستخدام قياسات RAPL
- DevOps لتطبيقات إنترنت الأشياء باستخدام الشبكات الخلوية والسحابة
- محاكي عبء عمل وظيفة الشبكة الافتراضية
- توصيف وتقليل تباين الأداء عبر الأنظمة الأساسية باستخدام المحاكاة الافتراضية على مستوى نظام التشغيل
- ما مقدار الطاقة التي يستهلكها الخادم الخاص بك؟ تقدير قوة مقبس الحائط باستخدام قياسات RAPL
- UIE: تقدير التداخل المرتكز على المستخدم للتطبيقات السحابية
2017:
- القياس التلقائي للحاويات: تأثير المقاييس النسبية والمطلقة
- اختبار نظام Windows الفرعي لنظام Linux
- التحليل العملي لبروتوكول الدقة الزمنية في ظل أنواع مختلفة من أحمال النظام
- نحو التنبؤ بتكلفة الطاقة في الآلة الافتراضية في السحب
- الخوارزميات والمعماريات للمعالجة المتوازية
- مفاهيم وأدوات متقدمة لإمدادات الطاقة المتجددة لمراكز البيانات
- مراقبة ونمذجة خوادم الحوسبة المفتوحة
- التحليل التجريبي والرقمي لإعادة استخدام الحرارة المحتملة في مراكز البيانات المبردة بالسوائل
- نمذجة وتحليل الأداء في ظل التداخل في السحابة
- قياس زمن وصول Kernel وتقليله بشكل فعال للقيود في الوقت الفعلي
- مراقبة وتحليل علاقات تحميل وحدة المعالجة المركزية بين المضيف والضيوف في البنية التحتية للشبكات السحابية
- قياس تأثيرات تصحيح Preempt-RT
- تعريف موثوق للمكتبة باستخدام تقنيات VMI
- Elastic-PPQ: نظام مستقل ذو مستويين لمعالجة استعلام التفضيلات المكانية عبر تدفق البيانات الديناميكي
- تكامل OpenEPC داخل 5GTN كدليل على مفهوم NFV
- أدوات ثنائية ديناميكية مدركة للوقت
- تقرير الخبرة: تعدين السجل باستخدام معالجة اللغة الطبيعية والتطبيق لاكتشاف الحالات الشاذة
- تتداخل عملية الحرج الزمني المختلط مع التوصيف على نظام Linux متعدد النواة
- التنسيق السحابي على مستوى التطبيق
2018:
- محاكاة متعددة النواة في البيئة الافتراضية
- Stress-SGX: قم بتحميل وتشديد جيوبك من أجل المتعة والربح
- quiho: اختبار انحدار الأداء الآلي باستخدام ملفات تعريف استخدام الموارد المستنتجة
- تحليل تحسين ذاكرة الجهاز الظاهري ومراقب الأجهزة الافتراضية
- اختبار في الوقت الحقيقي مع فويغو
- FECBench: إطار عمل قابل للتوسيع لتحديد مصادر التداخل في الأداء في طيف موارد Cloud-Edge
- قياس التفاعل بين الخصائص الهيكلية للبرامج والأجهزة في بنية ARM Big.LITTLE
- RAPL في العمل: تجارب في استخدام RAPL لقياسات الطاقة
2019:
- عزل أداء عبء العمل في الموقع المشترك في بنية برامج المركبات القائمة على الحاويات
- تحليل واكتشاف الثغرات القائمة على ذاكرة التخزين المؤقت
- kMVX: اكتشاف تسرب معلومات Kernel من خلال التنفيذ متعدد المتغيرات
- قابلية التوسع في Kubernetes التي تعمل عبر AWS
- دراسة حول مقاييس الأداء للتطبيقات المعبأة في حاويات كثيفة الاستخدام لوحدة المعالجة المركزية (CPU) تلقائيًا
- Scavenger: إدارة موارد أحمال العمل المجمعة ذات الصندوق الأسود لتحسين الاستخدام في البيئات السحابية
- تقدير أداء التطبيقات السحابية بناءً على تحديد المعايير الدقيقة
- الكشف عن الشذوذ في NFV باستخدام أسلوب التعلم غير الخاضع للرقابة القائم على الشجرة
2020:
- مقايضات الأداء والطاقة للتطبيقات المتوازية على أنظمة المعالجة المتعددة غير المتجانسة
- C-Balancer: نظام لتوصيف الحاويات وجدولة مواعيدها
- نمذجة الخصائص الكامنة للآلة الافتراضية والتنبؤ بأداء التطبيق باستخدام تحليل المصفوفة غير السالبة شبه الخاضعة للإشراف
- موازنة التحميل شبه الديناميكية: التعلم الموزع الفعال في البيئات غير المخصصة
- تحليل أداء تقنيات الأمن بمساعدة الأجهزة
- هندسة البرمجيات السحابية الخضراء لمعالجة البيانات الضخمة
- الكشف في الوقت الحقيقي عن هجوم القناة الجانبية لذاكرة التخزين المؤقت باستخدام مراقب عداد الأداء
- تخريب بنية قياس النزاهة في Linux
- تقييم الأداء في الوقت الفعلي باستخدام طلب المقاطعة السريعة على نواة Linux القياسية
- استهلاك منخفض للطاقة على منصات ما بعد مور لأبحاث الحوسبة عالية الأداء
- إدارة زمن الوصول في بيئة Edge-Cloud
- إزالة الغموض عن زمن الوصول لجدولة Linux في الوقت الفعلي
2021:
- التبسيط: هجوم سريع عبر القنوات السرية لذاكرة التخزين المؤقت من خلال تمكين التواطؤ غير المتزامن
- التحليل التجريبي في Hadoop MapReduce: نظرة فاحصة على تقنيات اكتشاف الأخطاء واستردادها
- خصائص أداء BlueField-2 SmartNIC
- تقييم زمن الوصول في الأنظمة المدمجة متعددة المعالجة للشبكة الذكية
- العمل قيد التنفيذ: توقيت التنوع كآلية وقائية
- بنيات التعلم العميق المتسلسل للكشف عن الحالات الشاذة في سلاسل وظائف الشبكة الافتراضية
- WattEdge: نهج شامل لقياسات الطاقة التجريبية في حوسبة الحافة
- PTEMagnet: حجز ذاكرة فعلية دقيقة للتنقل بشكل أسرع في الصفحات في السحب العامة
- ثمن الانهيار والشبح: الطاقة الزائدة لعمليات التخفيف على مستوى نظام التشغيل
- دراسة تجريبية للهجمات الحرارية على منصات الحافة
- Sage: تصحيح أخطاء الأداء العملي والقابل للتطوير في الخدمات الصغيرة
- نهج عام لتخصيص المهام العملية باستخدام حلقة التحكم MAPE-K]
- نحو مراقبة سحابية مستقلة لوقت التشغيل
- FIRESTARTER 2: إنشاء التعليمات البرمجية الديناميكية لاختبارات إجهاد المعالج
- مقارنة الأداء بين مجموعة Kubernetes والنظام المضمن
- استكشاف أداء أنظمة المحاكاة الافتراضية
- خداع الأجهزة لتأمين البرامج بكفاءة
2022:
- طريقة عامة لتقييم الحمل عند دمج الخوادم: تدهور الأداء في الأجهزة الافتراضية والحاويات
- FedComm: فهم بروتوكولات الاتصال للتعلم الموحد القائم على الحافة
- تحقيق العزل في الأنظمة الطرفية الصناعية ذات الأهمية المختلطة باستخدام الحاويات في الوقت الفعلي
- تصميم وتنفيذ نظام التنبؤ بالأخطاء القائم على التعلم الآلي في البنية التحتية السحابية
- كتل بناء TSN في Linux
- uKharon: خدمة عضوية لتطبيقات الميكروثانية
- تقييم تطوير البرامج الثابتة للمنطقة الآمنة لمحطات عمل RISC-V المعاصرةمحطة عمل RISC-V المعاصرة
- تقييم نظام التشغيل Linux في الوقت الحقيقي على بنية معالج RISC-V
- Hertzbleed: تحويل هجمات قناة الطاقة الجانبية إلى هجمات توقيت عن بعد على x86
- لا تتشابك حول: هجمات القنوات الجانبية وعمليات التخفيف من الوصلات الشبكية
- الآثار المترتبة على الأداء لأنظمة RISC-V متعددة النواة المزودة بأجهزة أمان مخصصة
2023:
- محاربة الأجهزة بالأجهزة: اكتشاف هجمات القنوات الجانبية والتخفيف من آثارها على مستوى النظام باستخدام عدادات الأداء
- تقديم k4.0s: نموذج لتنسيق الحاويات ذات الأهمية المختلطة في الصناعة 4.0
- دراسة شاملة عن تحسين الأنظمة بوحدات معالجة البيانات
- تقدير أداء التطبيقات السحابية بناءً على تحديد المعايير الدقيقة
- PSPRAY: تقنية استغلال Linux Kernel Heap المستندة إلى القناة الجانبية
- الكشف عن شذوذ الأداء والتنبؤ به بشكل قوي ودقيق للتطبيقات السحابية: إطار عمل جديد قائم على التعلم الجماعي
- دراسة جدوى لنظام التحكم في الوقت الحقيقي المضمن القائم على بايثون
- تكييف SaaS الموازي مع الموارد السحابية غير المتجانسة في الموقع المشترك
- منهجية وإطار لتحديد قدرات العزل لتقنيات المحاكاة الافتراضية
- محطة البيانات: حوسبة مفوضة وجديرة بالثقة وقابلة للتدقيق لتمكين اتحادات مشاركة البيانات مع مستودع البيانات
- دراسة تجريبية لأخطاء الضغط على الموارد في تطبيقات حوسبة الحافة
- العثور على اختبارات غير مستقرة في تطبيقات JavaScript باستخدام الضغط وإعادة ترتيب مجموعة الاختبار
- قوة القياس عن بعد: الكشف عن هجمات القنوات الجانبية القائمة على البرمجيات على أنظمة Apple M1/M2
- تقييم أداء النظام المدمج متعدد النواة ذو الأهمية المختلطة استنادًا إلى PREEMPT RT Linux
- تسرب البيانات في أنظمة الحوسبة المؤسسية المعزولة
- اعتبارات لقياس أداء الشبكة في البنية التحتية المعبأة في حاويات
- EnergAt: إسناد الطاقة الدقيقة للإيجارات المتعددة
- تحديد ملف تعريف الأمان لتطبيقات Linux
- Gotham Testbed: اختبار إنترنت الأشياء القابل للتكرار للتجارب الأمنية وإنشاء مجموعات البيانات
- التوصيف بثقة: مراقبة النظام من بيئات التنفيذ الموثوقة
- الاستدلال الحراري على الجهاز باستخدام توازي الطبقة الواحدة مع المعالجات غير المتجانسة
- نحو جدولة مساحة المستخدم السريعة والتكيفية والمدعومة بالأجهزة
- الكشف عن الشذوذات غير المتجانسة لأنظمة البرمجيات من خلال الاهتمام عبر الوسائط شبه الخاضع للإشراف
- الترميز الأخضر: نهج تجريبي لتسخير استهلاك الطاقة في خدمات البرمجيات
- تعزيز أبحاث هندسة أداء البرمجيات التجريبية باستخدام الأحداث على مستوى النواة: نهج شامل لتتبع النظام
- السحابة البيضاء: اكتشاف وتقدير تدهور جودة الخدمة لأحمال العمل الحرجة لزمن الاستجابة في السحابة العامة
- إدارة الموارد الديناميكية للتطبيقات المتزامنة المجمعة السحابية الأصلية
- نحو تحسين بدون خادم مع التوسع الموضعي
- نهج معياري لتصميم إطار تجريبي لأبحاث إدارة الموارد
- إخفاء الهوية المستهدفة عبر قناة ذاكرة التخزين المؤقت الجانبية: الهجمات والدفاعات
- التحقق من صحة محاكي RISC-V للنظام الكامل: نهج منهجي
- التنفيذ الخفيف لحماية الخدمة لكل حزمة في eBPF/XDP
- ROS2 تحسين الأداء وتقييمه في الوقت الحقيقي
- التحليل التجريبي والعددي للسلوك الحراري لمركز بيانات أحادي الطور مبرد بالغمر
2024:
- IdleLeak: استغلال الآثار الجانبية لحالة الخمول لتسرب المعلومات
- التوصيف بثقة: مراقبة النظام من بيئات التنفيذ الموثوقة
- التحديد المثالي لعزل جودة الخدمة المستند إلى Cgroups لعبء عمل قاعدة البيانات
- بارو: تحليل السبب الجذري القوي للخدمات الصغيرة من خلال اكتشاف نقاط التغيير عبر الإنترنت متعدد المتغيرات
- توضيح حالات شذوذ الأداء الناتجة عن تغييرات عبء العمل في التطبيقات السحابية الأصلية
- خذ خطوة أخرى إلى الأمام: فهم رذاذ الصفحة في استغلال Linux Kernel
- تأثير استهلاك الطاقة في السحب المعبأة في حاويات: تحليل شامل لأدوات قياس الطاقة مفتوحة المصدر
- تقييم الإجهاد الحراري على التعلم الموحد القائم على إنترنت الأشياء
- اكتشاف الحالات الشاذة في معالجة المكالمات المهمة
- تقييم أولي لإمكانيات الوقت الحقيقي لنظام Linux في الوقت الحقيقي على Raspberry Pi 5
- مقارنة بين البنى المستندة إلى Linux في الوقت الحقيقي للتطبيقات الموسيقية المضمنة
- نونا: نموذج دقيق للتنبؤ بالطاقة باستخدام الشبكات العصبية
أنا حريص على أن أضيف إلى صفحة مشروع Stress-ng أي اقتباسات للبحث أو المشاريع التي تستخدم Stress-ng. إنني أقدر أيضًا المعلومات المتعلقة بأخطاء kernel أو تراجعات الأداء التي تم العثور عليها باستخدام Stress-ng.
المساهمين
شكرًا جزيلاً للمساهمين التاليين في Stress-ng (بالترتيب الأبجدي):
عبد الحليم، أبورفا ديفاراجان، أدرياند مارتن، أدريان راتيو، ألكسندر ن. كوستادينوف، ألكسندر كانافين، ألكسندرو أرديليان، ألفونسو سانشيز بياتو، ألين إتش، أميت سينغ تومار، أندري جيلمان، أندريه وايلد، أنيس أستير، أنطون إلياسون، أرجان فان دي فين، باروخ سياش، بريان دبليو لويس، كميل كونستانس، كارلوس سانتوس، كريستيان إيرهاردت، كريستوفر براون، تشونيو هو، دانييل أندريس، دانيال هودجز، دانيلو كرومريش، ديفيدسون فرانسيس، ديفيد تورنر، دينيس أوفسينكو، دومينيك بي تشارنوتا، دوريندا باسي، إيدير زوليان، إريك لين، إريك ستالمان، إروان فيلو، فابيان مالفوي. ، فابريس فونتين، فرناند سيبر، فلوريان فايمر، فرانسيس لانييل، جيلهيرمي جانزاك، هوي وانج، هسيه تسينج شين، إيان مينديز فيجا، إيفان شابوفالوف، جيمس هانت، جان لوبي، جيانشن ليو، جيمي هو، جون كاكور، جولي، جول ماسيلباس، جوليان أوليفين، كيني جونج، خالد المولى، خيم. راج، لوكا بيزاميليو، لويس تشامبرلين، لويس هنريكس، لوكاس دورفينا، ماتيو إيطاليا، ماثيو تيبيت، ماوريسيو فاريا دي أوليفيرا، ماكسيم شوفالييه، ماكس كيلرمان، مايا راشيش، مايوريش شيتالي، ميسم آزاد، مايك كورينيف، مونيهيسا كاماتا، ميد شيا، نيك هانلي، نيكولاس كيكس، بول مينزل، بيوش جويال، رالف. رامساوير، روزين بينيف، رولين هوانج، ساشا هاور، سيرجي ماتيوكيفيتش، سيدهيش بوياريكار، شويلي الرحمن، ستيان أونارهايم، ثاديو ليما دي سوزا كاسكاردو، ثيا وايرود، ثينه تران، تيم جاردنر، تيم جيتس، تيم أورلينج، تومي رانتالا، ويتولد باريلوك، يوي لين، يونج شوان وانج، زيي صن.