stress(1) ابزاری برای اعمال بار و آزمون استرس سیستم‌ها stress(1)

stress - ابزاری برای اعمال بار و آزمون استرس سیستم‌های کامپیوتری

stress [OPTIONS]

دستور stress ابزاری است که مقدار مشخص و قابل تنظیمی از بار پردازنده، حافظه، I/O یا دیسک را بر یک سیستم‌عامل سازگار با POSIX تحمیل کرده و هرگونه خطای شناسایی‌شده را گزارش می‌دهد.

دستور stress یک ابزار بنچمارک نیست؛ بلکه ابزاری است که توسط مدیران سیستم برای ارزیابی نحوه مقیاس‌پذیری سیستم‌هایشان، توسط برنامه‌نویسان هسته برای ارزیابی ویژگی‌های کارایی دیده‌شده، و توسط برنامه‌نویسان سیستم برای آشکار کردن دسته‌هایی از باگ‌ها که صرفاً یا بیشتر در شرایط بار سنگین سیستم بروز می‌یابند، استفاده می‌شود.

-?, --help
نمایش این پیام راهنما.
نمایش نگارش برنامه.
نمایش جزئیات بیشتر (حالت پرگو).
حالت بی‌صدا (عدم نمایش پیام‌های غیرضروری).
نمایش کارهایی که قرار بود بدون اجرای واقعی انجام شوند (اجرای آزمایشی).
پایان مهلت پس از N ثانیه. این گزینه توسط -n نادیده گرفته می‌شود.
درنگ به ضریبی از میکروثانیه پیش از شروع کار.
ایجاد N پردازه کارگر که در حلقه‌ای مداوم sqrt() را محاسبه می‌کنند.
ایجاد N پردازه کارگر که در حلقه‌ای مداوم sync() را فراخوانی می‌کنند.
ایجاد N پردازه کارگر که در حلقه‌ای مداوم malloc()/free() را فراخوانی می‌کنند.
تخصیص B بایت حافظه به‌ازای هر کارگر vm (پیش‌فرض 256MB است).
دسترسی به یک بایت به‌ازای هر B بایت (پیش‌فرض 4096 است).
توقف به مدت N ثانیه پیش از آزادسازی (free) حافظه (پیش‌فرض هیچ‌کدام، 0 به معنای نامحدود است).
کثیف کردن مجدد (redirty) حافظه به جای آزادسازی و تخصیص دوباره.
ایجاد N پردازه کارگر که در حلقه‌ای مداوم write()/unlink() را فراخوانی می‌کنند.
نوشتن B بایت به‌ازای هر کارگر hdd (پیش‌فرض 1GB است). فایل با استفاده از mkstemp() در دایرکتوری جاری ایجاد خواهد شد.

نکته: اعداد می‌توانند پسوند s، m، h، d، y (زمان) یا B، K، M، G (اندازه) داشته باشند.

حالت ساده این است که صرفاً بخواهید میانگین بار سیستم (load average) را به یک مقدار دلخواه برسانید. دستور زیر ۱۳ پردازه را منشعب (fork) می‌کند که هر یک در حلقه‌ای مداوم، sqrt() یک عدد تصادفی به دست آمده با rand() را محاسبه می‌کنند.

stress -c 13
گزینه‌های بلند نیز پشتیبانی می‌شوند، همچنین می‌توان حجم پیام‌های خروجی را کاهش داد. دستور زیر ۱۰۲۴ پردازه را منشعب می‌کند و تنها پیام‌های خطا را در صورت وجود گزارش می‌دهد.
stress --quiet --cpu 1k
برای مشاهده نحوه عملکرد سیستم در شرایط تنگنای ورودی/خروجی (I/O bound)، از سوییچ -i استفاده کنید. دستور زیر ۴ پردازه را منشعب می‌کند که هر یک در حلقه‌ای مداوم فراخوان سیستمی sync() را صدا می‌زنند؛ فراخوانی که بافرهای حافظه را در دیسک تخلیه (flush) می‌کند.
stress -i 4
می‌توان چندین عامل ایجاد بار (hog) را در یک خط فرمان ترکیب کرد. دستور زیر تمام کارهای مثال‌های قبلی را در قالب یک دستور انجام می‌دهد، و علاوه بر آن سطح پرگویی (verbosity) را بالا برده و نحوه پایان خودکار دستور پس از ۱ دقیقه را نشان می‌دهد.
stress -c 13 -i 4 --verbose --timeout 1m
می‌توانید فایلی با اندازه دلخواه روی دیسک بنویسید. این فایل با تابع mkstemp() در دایرکتوری جاری ایجاد می‌شود.
stress -d 1 --hdd-bytes 13
Large file support is enabled.
stress -d 1 --hdd-bytes 3G

ابزار stress در ابتدا توسط Amos Waterland <apw@debian.org> توسعه یافته است و توسط جمعی از داوطلبان نگهداری می‌شود.

در حال حاضر، کد منبع و نگارش‌های جدیدتر در نشانی زیر در دسترس هستند: https://github.com/resurrecting-open-source-projects/stress

21 Jan 2023 stress-1.0.7