وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

CPU Steal در سرور مجازی چیست؟ وقتی VPS منتظر پردازنده می‌ماند

راهنمای ساده خواندن درصد steal در top و mpstat، مقایسه آن با مصرف برنامه و جمع‌آوری شواهد برای بررسی کندی VPS.

انتشار:
توسط تیم فنی نت‌آرام
۶ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله CPU Steal در سرور مجازی چیست؟ وقتی VPS منتظر پردازنده می‌ماند در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
سایت روی سرور مجازی کند شده است، اما وقتی پردازش‌ها را نگاه می‌کنید هیچ برنامه‌ای به‌تنهایی همه CPU را مصرف نمی‌کند. در خروجی ابزار لینوکس، عددی کنار st یا steal دیده می‌شود. این عدد می‌تواند نشان دهد پردازنده مجازی شما در بخشی از زمان آماده کار بوده، اما زمان اجرای موردنیازش را در آن لحظه از لایه مجازی‌سازی دریافت نکرده است.
این شاخص یکی از سرنخ‌های بررسی کارایی است؛ عدد بالا به‌تنهایی ثابت نمی‌کند دقیقاً کدام ماشین یا چه سیاستی باعث انتظار شده است. در ادامه یاد می‌گیریم عدد را درست بخوانیم، آن را در زمان کندی ثبت کنیم و تفاوتش را با بار خود برنامه و تأخیر دیسک بفهمیم.

اول CPU مجازی را ساده بشناسیم

یک VPS معمولاً به‌جای دسترسی مستقیم و انحصاری به کل پردازنده فیزیکی، تعدادی پردازنده مجازی یا vCPU می‌بیند. لایه مجازی‌سازی باید زمان اجرا را میان کارهای مختلف زمان‌بندی کند. اگر پردازنده مجازی مهمان می‌خواهد اجرا شود اما منتظر می‌ماند، بعضی مهمان‌ها این انتظار را در شاخص steal نشان می‌دهند.
مقدار و دقت گزارش به فناوری مجازی‌سازی، سیستم‌عامل و محیط بستگی دارد. مقدار صفر در کانتینر یا محیطی که این شاخص را ارائه نمی‌دهد، اثبات نمی‌کند هیچ رقابتی برای CPU وجود ندارد. همچنین زیادبودن لحظه‌ای عدد لزوماً تجربه کاربر را خراب نمی‌کند؛ مدت، تکرار و هم‌زمانی آن با کندی مهم است. توضیح cPanel درباره CPU steal نیز مفهوم زمان انتظار مهمان را شرح می‌دهد.

تفاوت steal، مصرف برنامه و انتظار دیسک

  • مصرف CPU برنامه: پردازنده مشغول اجرای کار است؛ مثلاً یک پردازش PHP یا پایگاه داده زمان زیادی مصرف می‌کند.
  • انتظار دیسک یا iowait: بخشی از گزارش زمان بیکاری پردازنده در ارتباط با کارهای ورودی و خروجی است. تفسیر آن هم به سیستم و نوع اندازه‌گیری وابسته است.
  • steal: زمان منتظرماندن vCPU برای اجرا در محیط مجازی است، در صورتی که مهمان بتواند این شاخص را دریافت کند.
این عددها به تنهایی تشخیص نهایی نیستند. ممکن است برنامه CPU زیادی مصرف کند و هم‌زمان انتظار دیسک هم وجود داشته باشد. برای پیدا کردن پردازش پرمصرف، راهنمای بررسی مصرف CPU برنامه‌های سرور و برای وضعیت Load و انتظار دیسک، راهنمای Load بالا با CPU ظاهراً بیکار مفیدند.

قدم اول: اندازه‌گیری را در زمان واقعی مشکل شروع کنید

با SSH یا کنسول به VPS لینوکسی خود وارد شوید. دستورهای زیر اطلاعات عملکرد را می‌خوانند و به‌طور معمول تنظیمی تغییر نمی‌دهند. اگر روی هاست اشتراکی یا کانتینر محدود هستید، همه داده‌های میزبان در اختیار شما نیست. از اجرای تست فشار سنگین روی فروشگاه فعال صرفاً برای تولید عدد خودداری کنید.
برای دیدن ساعت و منطقه زمانی سرور، اجرا کنید:
کد / دستورdate '+%Y-%m-%d %H:%M:%S %Z'
زمان کندی را همراه با منطقه زمانی ثبت کنید تا بتوانید با گزارش مانیتورینگ و پشتیبانی تطبیق دهید. اگر ساعت نادرست است، این را هم یادداشت کنید؛ جابه‌جاکردن ساعت هنگام عیب‌یابی می‌تواند مقایسه گزارش‌ها را دشوار کند.
اکنون دستور زیر را اجرا کنید:
کد / دستورtop
در ردیف CPU معمولاً مقادیر us، sy، id، wa و st دیده می‌شوند. st همان steal است، اگر در نسخه و محیط شما ارائه شود. چند نوبت تازه‌شدن صفحه را ببینید؛ نمایش اول ممکن است بازه متفاوتی از دفعات بعد داشته باشد. با کلید q از برنامه خارج شوید. یک عدد ثبت‌شده در یک ثانیه مبنای نتیجه‌گیری درباره کل روز نیست.

قدم دوم: چند نمونه پشت سر هم بگیرید

اگر ابزار mpstat از بسته رسمی توزیع روی سرور نصب است، فرمان زیر پنج نمونه با فاصله یک ثانیه می‌گیرد:
کد / دستورmpstat 1 5
ستون %steal را در کنار %usr، %sys، %iowait و %idle ببینید. نام یا ترتیب ستون‌ها ممکن است با نسخه ابزار فرق کند. اگر mpstat پیدا نشد، لازم نیست از منبع ناشناس فایل دانلود کنید؛ مدیر مجاز می‌تواند در صورت نیاز بسته رسمی sysstat را از مخزن معتبر همان توزیع نصب کند، با درنظرگرفتن سیاست تغییر سرور.
در یک مثال فرضی، اگر هنگام کندی در چند نمونه پیاپی steal بالا باشد و هم‌زمان زمان پاسخ برنامه زیاد شود، انتظار vCPU سرنخی است که ارزش پیگیری دارد. اگر فقط یک نمونه بالا بود و سایت همان لحظه کند نبود، هنوز دلیل کافی برای نتیجه‌گیری نداریم. آستانه واحدی که برای تمام سرویس‌ها قابل قبول یا غیرقابل قبول باشد وجود ندارد؛ حساسیت یک پایگاه داده پرتراکنش با یک سایت کم‌ترافیک متفاوت است.

قدم سوم: بار خود سرور را هم کنار آن ببینید

در top به پردازش‌هایی که CPU مصرف می‌کنند نگاه کنید. اگر یک برنامه مدام بخش بزرگی از ظرفیت مجاز VPS را استفاده می‌کند، همان برنامه، تعداد درخواست‌ها و تغییرات اخیر را بررسی کنید. پردازنده مجازی محدود ممکن است به سقف خود برسد حتی وقتی steal پایین است. اضافه‌کردن vCPU بدون شناخت علت همیشه هزینه و نتیجه مطلوب ندارد.
اگر wa یا تأخیر ذخیره‌سازی در همان زمان بالاست، بررسی دیسک و پایگاه داده نیز لازم است. اگر کندی فقط برای برخی کاربران رخ می‌دهد و اندازه‌گیری داخل سرور طبیعی است، مسیر شبکه و اینترنت کاربران را هم جداگانه بسنجید. هیچ‌یک از این شاخص‌ها جای مشاهده زمان پاسخ واقعی برنامه را نمی‌گیرد.
برای مقایسه، زمان پاسخ یک کار ثابت و بی‌خطر را در دوره عادی و دوره کند ثبت کنید؛ مثلاً زمان بازشدن یک صفحه عمومی کم‌هزینه یا شاخص موجود در سامانه مانیتورینگ. وضعیت تعداد درخواست‌ها و زمان را همراه آن نگه دارید. یک آزمایش کوتاه در زمان خلوت را با فروش ویژه پرترافیک مقایسه مستقیم نکنید.

اگر steal به‌طور پایدار با کندی همراه بود چه کنیم؟

از چند بازه نمونه بگیرید و به پشتیبانی سرویس اطلاعات قابل بررسی بدهید: شناسه سرویس، زمان دقیق و منطقه زمانی، مدت کندی، چند نمونه mpstat یا تصویر top، تعداد vCPU داخل مهمان و شرح اثر بر برنامه. رمز ورود، کلید خصوصی و داده مشتری را نفرستید. از ارائه‌دهنده بخواهید وضعیت زمان‌بندی و ظرفیت میزبان را برای همان بازه بررسی کند؛ اطلاعات داخل مهمان به‌تنهایی وضعیت همه ماشین‌های میزبان را نشان نمی‌دهد.
در سمت خودتان کارهای زمان‌بر غیرضروری را به زمان کم‌ترافیک منتقل کنید، برنامه معیوب یا حلقه بی‌پایان را با شواهد بررسی کنید و در صورت نیاز، درباره اندازه مناسب سرویس با ارائه‌دهنده مشورت کنید. جابه‌جایی VPS یا افزایش منابع فقط پس از تشخیص و در چارچوب امکانات سرویس تصمیم‌گیری می‌شود؛ تضمین رفع مشکل صرفاً از روی یک عدد ممکن نیست.
پس از هر تغییر، همان صفحه یا شاخص قبلی را در بازه مشابه دوباره اندازه بگیرید و steal و سایر ستون‌ها را کنار هم ببینید. اگر زمان پاسخ بهتر نشده، سراغ شاخه‌های دیگر مانند دیسک، دیتابیس یا شبکه بروید. مشخصات سرور مجازی ایران نت‌آرام در صفحه سرویس قابل مشاهده است و نتیجه بررسی باید بر اساس رفتار واقعی همان VPS باشد.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام