بررسی جامع و تخصصی IOPS در سیستمهای ذخیرهسازی

هنگام طراحی، استقرار یا ارتقا یک زیرساخت فناوری اطلاعات، انتخاب سیستم ذخیرهسازی مناسب یکی از چالشبرانگیزترین مراحل است. در گذشته، تمرکز مهندسان شبکه و مدیران سیستم تنها بر روی ظرفیت هارد درایوها بود؛ اما با پیشرفت سریع پردازندهها و حافظههای رم، سیستمهای ذخیرهسازی به گلوگاه اصلی عملکرد سرورها تبدیل شدند. در این میان، معیارهای مختلفی برای ارزیابی سرعت و کارایی یک تجهیز ذخیرهسازی تعریف شده است که بدون شک یکی از مهمترین و تعیینکنندهترین آنها، معیار IOPS است.
در این مقاله تخصصی، قصد داریم به شکلی عمیق و کاربردی به بررسی این مفهوم بپردازیم، تفاوت آن را با سایر معیارهای سنجش عملکرد روشن کنیم و نشان دهیم که چرا درک صحیح از این شاخص برای داشتن یک دیتاسنتر یا سرور قدرتمند، کاملا حیاتی است.
مفهوم IOPS چیست و چه کاربردی دارد؟
واژه IOPS مخفف عبارت Input/Output Operations Per Second است که در زبان فارسی به معنای «تعداد عملیات ورودی و خروجی در هر ثانیه» ترجمه میشود. به بیان سادهتر، این شاخص نشان میدهد که یک درایو ذخیرهسازی (خواه یک هارد دیسک مکانیکی سنتی باشد، خواه یک درایو SSD یا NVMe پیشرفته) در یک ثانیه قادر است چه تعداد دستور خواندن (Read) یا نوشتن (Write) را دریافت و با موفقیت به اتمام برساند.
هر بار که سیستم عامل شما فایلی را باز میکند، رکوردی را در پایگاه داده ثبت میکند یا حتی یک لاگ ساده را در سیستم ذخیره میسازد، در حال ارسال یک درخواست ورودی یا خروجی به دیسک است. هرچه ظرفیت دیسک در پردازش همزمان و سریع این درخواستها بیشتر باشد، عدد شاخص بالاتر خواهد بود و در نتیجه سیستم عامل و نرمافزارها با سرعت و روانی بیشتری کار خواهند کرد.
تفاوت کلیدی بین IOPS و پهنای باند (Throughput)
یکی از رایجترین اشتباهات در میان کاربران و حتی برخی از متخصصان تازهکار، اشتباه گرفتن این معیار با پهنای باند یا Throughput است. برای درک بهتر این موضوع، یک بزرگراه را در نظر بگیرید:
-
معیار IOPS مانند تعداد خودروهایی است که در هر ثانیه از عوارضی این بزرگراه عبور میکنند. در اینجا مهم نیست که خودرو یک سواری کوچک است یا یک تریلی غولپیکر؛ تنها تعداد وسایل نقلیه عبوری شمرده میشود.
-
معیار Throughput (پهنای باند) مانند مجموع تناژ باری است که در همان یک ثانیه از عوارضی عبور کرده است. واحد پهنای باند معمولا مگابایت بر ثانیه (MB/s) یا گیگابایت بر ثانیه (GB/s) است.
زمانی که شما در حال کپی کردن یک فایل ویدیویی بسیار بزرگ (مثلا یک فیلم ۱۰ گیگابایتی) هستید، درایو شما درگیر عملیات متوالی است و آنچه در اینجا اهمیت پیدا میکند، پهنای باند است. اما زمانی که سیستم عامل شما در حال بوت شدن است یا یک نرمافزار حسابداری هزاران فایل متنی چند کیلوبایتی را در کسری از ثانیه فراخوانی میکند، درایو در حال انجام عملیات تصادفی با بلوکهای داده کوچک است. در این حالت، پهنای باند بالا کمکی به شما نمیکند و این ظرفیت پردازش درخواستها است که سرعت نهایی سیستم را تعیین میکند.
چرا IOPS در زیرساختهای مدرن اهمیت حیاتی دارد؟
درک اهمیت این شاخص زمانی کامل میشود که به سراغ سناریوهای کاربردی و واقعی در محیطهای سازمانی و دیتاسنترها برویم. در محیطهای پرتراکم امروزی، این معیار مستقیما بر تجربه کاربر نهایی و پایداری سیستم تاثیر میگذارد.
۱. پایگاههای داده (Databases) محیطهای دیتابیس مانند SQL Server، Oracle، MySQL و PostgreSQL به شدت تشنه عملیات ورودی و خروجی سریع هستند. در یک دیتابیس، هزاران کاربر ممکن است به طور همزمان درخواست ثبت اطلاعات جدید، ویرایش رکوردهای قبلی یا جستجو در جداول را ارسال کنند. این درخواستها معمولا شامل حجم داده بسیار کوچکی هستند (در حد چند کیلوبایت) اما تعداد آنها در ثانیه به شدت بالاست. اگر سیستم ذخیرهسازی نتواند این نرخ از عملیات را پشتیبانی کند، دیتابیس دچار کندی شدید شده و اصطلاحا با پدیده Bottleneck مواجه میشویم که به شکل مستقیم باعث قطعی یا کندی سرویسهای حیاتی سازمان خواهد شد.
۲. محیطهای مجازیسازی (Virtualization) در زیرساختهای مبتنی بر VMware، Hyper-V یا KVM، معمولا چندین ماشین مجازی (VM) به صورت همزمان بر روی یک سرور فیزیکی و یک سیستم ذخیرهسازی مشترک (Datastore) اجرا میشوند. در این حالت پدیدهای به نام «اثر مخلوطکن ورودی/خروجی» (I/O Blender Effect) رخ میدهد. به این معنا که حتی اگر هر ماشین مجازی در حال انجام عملیات متوالی خواندن و نوشتن باشد، زمانی که این درخواستها از ماشینهای مختلف در سطح Hypervisor تجمیع شده و به سمت دیسک ارسال میشوند، به یک الگوی کاملا تصادفی و درهمآمیخته تبدیل میگردند. در چنین شرایطی، تنها سیستمهای ذخیرهسازی با توان عملیاتی بسیار بالا میتوانند از افت شدید عملکرد ماشینهای مجازی جلوگیری کنند.
۳. وبسایتهای پرترافیک و فروشگاههای آنلاین در زمان برگزاری کمپینهای فروش ویژه، ترافیک ورودی به وبسایتها به شکل تصاعدی افزایش مییابد. در این لحظات، سرورهای وب و دیتابیس باید بتوانند هزاران نشست کاربری، پردازش سبد خرید و ثبت سفارش را به صورت موازی مدیریت کنند. کمبود توان عملیاتی دیسک در این شرایط، به معنای خطای تایماوت (Timeout)، عدم لود شدن صفحات برای مشتریان و در نهایت از دست رفتن درآمد و اعتبار کسبوکار است.
عوامل تاثیرگذار بر میزان عملیات ورودی و خروجی
مقدار این شاخص در یک سیستم ذخیرهسازی یک عدد ثابت و مطلق نیست و به مجموعهای از عوامل سختافزاری و نرمافزاری وابستگی شدیدی دارد. آگاهی از این عوامل برای طراحی یک راهکار ذخیرهسازی بهینه ضروری است:
-
نوع رسانه فیزیکی: هارد دیسکهای مکانیکی (HDD) به دلیل داشتن قطعات متحرک (هد و پلاتر)، دارای تاخیر فیزیکی برای یافتن سکتور دادهها هستند. این تاخیر فیزیکی باعث میشود توان پردازشی آنها بسیار محدود باشد. در مقابل، درایوهای حالت جامد (SSD) و تکنولوژی NVMe که بر پایه حافظههای فلش کار میکنند، فاقد هرگونه قطعه مکانیکی بوده و میتوانند صدها هزار تا میلیونها دستور را در ثانیه پردازش کنند.
-
اندازه بلوک داده (Block Size): هرچه نرمافزار شما دادهها را در قالب قطعات (بلوکهای) کوچکتری روی دیسک بنویسد، دیسک میتواند تعداد بیشتری از آنها را در یک ثانیه مدیریت کند. معمولا شرکتهای سازنده سختافزار، بالاترین عدد عملکرد خود را بر اساس بلوکهای ۴ کیلوبایتی (4KB) اعلام میکنند.
-
الگوی دسترسی (تصادفی یا متوالی): همانطور که اشاره شد، خواندن و نوشتن دادهها به صورت پشت سر هم (Sequential) بسیار آسانتر از پیدا کردن تکههای پراکنده داده در نقاط مختلف دیسک (Random) است. عدد مربوط به عملیات تصادفی همیشه از عملیات متوالی کمتر است و معیار واقعیتری برای سنجش قدرت سرور محسوب میشود.
-
پیکربندی RAID: استفاده از آرایههای RAID برای افزونگی و امنیت دادهها ضروری است، اما هر سطح از RAID تاثیر متفاوتی بر عملکرد دارد. به عنوان مثال، RAID 5 و RAID 6 به دلیل نیاز به محاسبه ضریب خطا (Parity) برای هر داده جدیدی که نوشته میشود، دچار پدیدهای به نام Write Penalty (جریمه نوشتن) میشوند که نرخ عملیات نوشتن را به شدت کاهش میدهد. در محیطهایی که نیاز به سرعت نوشتن بالا دارند، استاندارد RAID 10 به دلیل عدم وجود این جریمه، همواره گزینه برتر است.
مقایسه عملکرد رسانههای ذخیرهسازی مختلف
برای درک بهتر تفاوت نسلهای مختلف تجهیزات ذخیرهسازی، به جدول مقایسهای زیر که مقادیر تقریبی عملکرد تصادفی را نشان میدهد توجه کنید:
توجه داشته باشید که این اعداد تخمینی هستند و بسته به برند و مدل دقیق قطعه متفاوت خواهند بود.
روشهای استاندارد برای اندازهگیری و تست عملکرد سیستم ذخیرهسازی
تکیه صرف به کاتالوگ و اعداد تبلیغاتی شرکتهای سازنده (مانند سامسونگ، وسترن دیجیتال یا اچپی) رویکردی منطقی برای محیطهای حساس نیست. تولیدکنندگان معمولا تستهای خود را در آزمایشگاهها و در ایدهآلترین شرایط ممکن (عمق صف بالا، بلوکهای داده ریز و فقط عملیات خواندن) انجام میدهند تا بزرگترین عدد ممکن را برای اهداف بازاریابی ثبت کنند.
برای اینکه درک درستی از توان واقعی زیرساخت خود داشته باشید، باید از ابزارهای بنچمارک استاندارد استفاده کنید. نرمافزارهای محبوبی مانند FIO (Flexible I/O Tester) در محیطهای لینوکسی و Iometer در محیطهای ویندوزی به شما اجازه میدهند تا الگوهای بار کاری نرمافزارهای خود را شبیهسازی کنید. شما میتوانید در این نرمافزارها نسبت خواندن به نوشتن (مثلا ۷۰ درصد خواندن، ۳۰ درصد نوشتن)، نوع دسترسی (کاملا تصادفی) و سایز بلوکها را تنظیم کرده و سپس تست را برای مدت زمان مشخصی (مثلا یک ساعت) اجرا کنید تا توان پایدار و واقعی دیسکهای خود را پیش از انتقال دیتابیس اصلی به روی آنها بسنجید.
همچنین معیار مهم دیگری که در حین این تستها باید در نظر گرفته شود، میزان تاخیر (Latency) است. داشتن نرخ عملیات میلیونی در ثانیه اگر با تاخیر ۵۰ میلیثانیهای همراه باشد، برای یک سرور دیتابیس بیارزش است. عملکرد ایدهآل زمانی به دست میآید که نرخ پردازش بالا با تاخیری در مقیاس زیر یک میلیثانیه (Sub-millisecond) همراه باشد.
راهکارهای عملی برای بهینهسازی و افزایش IOPS
اگر در حال حاضر زیرساخت شما از کندی سرعت ذخیرهسازی رنج میبرد و بودجه کافی برای تغییر کل سیستم را ندارید، راهکارهای مختلفی برای بهبود شرایط وجود دارد:
۱. استفاده از کش در لایههای مختلف: پیادهسازی مکانیزمهای Caching در سطح کنترلر رید (دارای باتری و حافظه رم اختصاصی) یا استفاده از نرمافزارهایی که از رم سرور برای کش کردن درخواستهای خواندن و نوشتن استفاده میکنند، میتواند فشار مستقیم بر روی دیسکها را به شدت کاهش دهد.
۲. معماری ذخیرهسازی لایهبندی شده (Tiered Storage): در سیستمهای SAN Storage مدرن قابلیتی وجود دارد که به صورت هوشمند دادههایی را که مکررا مورد استفاده قرار میگیرند (Hot Data) به سمت درایوهای گرانقیمت NVMe یا SSD منتقل کرده و دادههای بایگانی و کممصرف (Cold Data) را به درایوهای ارزانقیمت مکانیکی منتقل میکند. این کار بالاترین راندمان را با کمترین هزینه سختافزاری فراهم میسازد.
۳. تغییر سطح RAID: همانطور که پیشتر اشاره شد، اگر دیتابیس شما درگیر نوشتنهای متوالی و سنگین است، مهاجرت از RAID 5 به RAID 10 میتواند گلوگاه عملکردی شما را به سرعت برطرف کند.
نتیجهگیری
در دنیای تکنولوژی امروز که حجم دادهها به شکل غیرقابل باوری در حال رشد است و کاربران انتظار دریافت پاسخ آنی از سیستمها را دارند، آشنایی عمیق با معماری ذخیرهسازی و معیارهای سنجش عملکرد آن دیگر یک دانش تزئینی نیست. معیار IOPS به عنوان قطبنمای اصلی برای ارزیابی قدرت دیسکها در مواجهه با بارهای کاری تصادفی، به شما کمک میکند تا انتخابهای هوشمندانهتری در زمان خرید سختافزار داشته باشید، گلوگاههای سیستم را سریعتر شناسایی کنید و پایداری و سرعت سرویسهای سازمانی خود را تضمین نمایید. همواره به خاطر داشته باشید که برای طراحی یک معماری بینقص، بررسی همزمان این معیار در کنار ظرفیت، پهنای باند و میزان تاخیر دیسک الزامی است.