iops چیست

برای درک بهتر از مشخصات هر وسیله ذخیره‌سازی بهتر است که حداقل سه ویژگی مختلف آن مد نظر گرفته شود. IOPS، زمان پاسخ‌دهی و حجم‌کاری. حال ما در این مقاله قصد داریم در رابطه با iops صحبت کنیم، پس با ما همراه باشید.

iops چیست؟

IOPS مخفف عبارات input output operation per second می باشد که یک واحد اندازه گیری حداکثر میزان خواندن و نوشتن بر روی تجهیزات ذخیره سازی اطلاعات است. در واقع به واحد استاندارد اندازه گیری برای بیشترین تعداد خواندن و نوشتن در فضاهای ذخیره سازی ( مانند هارد دیسک، SSD و درایو های SAN) گفته می شود. به طور کلی می توان گفت دستگاه یا هاردی که مقدار IOPS آن بیشتر باشد می تواند عملیات بیشتری را در یک ثانیه انجام دهد.

برای آنکه بهتر متوجه IOPS شوید مثالی می زنیم: برای مثال می‌توان IOPS را به سرعت در دقیقه یک موتور در ماشین تشبیه کرد. یک موتور قدرت گردش 10 هزار دور در دقیقه را دارد. انجام این مقدار گردش در حالی که موتور دنده در حالت خلاص قرار گرفته اهمیت خاصی ندارد. اما اگر موتوری بتواند اسب بخار و گشتاور خاصی را با استفاده از ده هزار دور در دقیقه به کار گیرد می‌توان به قدرت آن موتور اطمینان داشت.

در سال 1999 اکثر شرکت های تولید کننده سخت افزار شروع به سواستفاده از IOPS کرده که این عامل مشکلات زیادی را به وجود آورد. این شرکت ها شروع به اعلام اعداد غیر واقعی در رابطه با IOPS کردند. برای حل این مشکل شرکت اینتل بنچمارک IOmeter را برای اندازه‌گیری ویژگی‌های مختلف وسایل ذخیره‌سازی منتشر کرد. سازمان Storage Performance Council نیز توانست بنچمارکی به نام SPC-1 Benchmark Suite را منتشر کند که یکی از دقیق‌ترین بنچمارک‌های موجود است.

SPC-1 از تولیدکنندگان درخواست می‌کند تا تمام مشخصات مربوط به دستگاه‌های ذخیره‌سازی خود را اعلام کنند. استاندارد‌هایی که در محیط‌کاری استفاده می‌شوند. در این میان باید میزان IOPS و زمان پاسخ‌دهی به دقت مشخص شود تا از تقلب و ارائه اعداد غیرواقعی جلوگیری شود. در نتیجه تست و بنچمارک SPC-1 نتیجه‌ای واقع‌گرا از IOPS، زمان پاسخ‌دهی، پایداری داده و عملکرد در وسیله ذخیره‌سازی است.

همچنین این تست با توجه به دریافت قیمت‌ قطعات استفاده شده در ساخت وسیله ذخیره‌سازی انجام می‌شود و در نهایت ارزش خرید نسبت به هر IOPS نیز ارائه می‌شود. مقدار دقیق IOPS در هر سیستم بسته به تنظیمات مختلف می‌تواند بسیار متفاوت باشد. شاید مهم‌ترین نوع تست IOPS دسترسی به داده‌ها به صورت ترتیبی و یا تصادفی است. گرچه تست‌های دیگری نیز وجود دارند. از عوامل محیطی موثر روی نتیجه تست SPC-1 می‌توان به کانفیگ سیستم، سیستم عامل و … اشاره کرد.

 

بررسی IOPS، تاخیر (latency) و توان عملیاتی (throughput):

در این جا لازم است که به این نکته اشاره کنیم که iops به تنهایی نمی تواند معیار خوبی برای اندازه گیری عملکرد باشد. از این رو آی او پی اس همراه با یکی از دو معیار توان عملیاتی (throughput) و تاخیر (latency) می توانند برای اندازه گیری عملکرد، معیارهای مناسبی باشند.

Throughput (توان عملیاتی) تعداد واحدهای اطلاعاتی را که یک سیستم می تواند در یک دوره ی زمانی پردازش کند، اندازه گیری می نماید. همچنین تعداد عملیات I/O در ثانیه را شامل می شود اما معمولا به صورت بایت بر ثانیه محاسبه می شود. IOPS و throughput به تنهایی نمی توانند معیار مناسبی برای اندازه گیری عملکرد باشند.

Latency (تاخیر) فاصله زمانی بین ارسال یک درخواست و دریافت یک پاسخ است. در رابطه با IOPS تاخیر به مدت زمانی گفته می شود که یک درخواست I/O از طرف اپلیکیشن کامل می شود. همانطور که گفته شد مقیاس هایی همچون latency، IOPS و throughput به تنهایی تصویر کاملی ارائه نمی دهند اما در کنار هم، به سنجش عملکرد کمک می کنند.

 

بررسی IOPS و Latency و Storage Performance:

وقتی صحبت از ذخیره سازی می شود اغلب افراد به throughput فکر می کنند. اما throughput مانند حداکثر سرعت یک خودرو می ماند که ممکن است شما نتوانید از حداکثر سرعت یک خودرو استفاده نمایید. برخی ویژگی هایی مانند سرعت ماشین شما و نحوه کنترل خمیدگی ها و پیچ ها، اغلب از حداکثر سرعت آن مهم تر هستند. و این مثال برای عملکرد ذخیره سازی نیز صادق است.

همانطور که می دانید SSD ها اغلب بسیار سریعتر از هارد دیسک های معمولی هستند اما این در مورد توان عملیاتی یا throughput نمی توان این مسأله را عنوان کرد. همه چیز به عملیات ورودی/خروجی در ثانیه (IOPS) بر می گردد. اما IOPS کل داستان نیست. به بیان دقیق تر IOPS یک رقم بی معنی است مگر اینکه به میانگین latency و اندازه درخواست معین (چه مقدار داده با I/O پردازش می شود) مرتبط باشد. بیایید ابتدا روی IOPS و Latency تمرکز کنیم و بعداً در مورد اندازه درخواست صحبت کنیم.

پس اول تمرکزمون رو روی IOPS و latency می گذاریم.

iops چیست

latency بسیار مهم است، زیرا یک سیستم ذخیره‌سازی که می‌تواند 1000 IOPS با تاخیر متوسط 10 میلی‌ثانیه را مدیریت کند، ممکن است عملکرد برنامه بهتری نسبت به یک زیرسیستم که می‌تواند 5000 IOPS با تأخیر متوسط 50 میلی‌ثانیه را مدیریت کند، داشته باشد. به خصوص اگر برنامه شما به latency حساس باشد، مانند سرویس پایگاه داده.

درک این موضوع بسیار مهم است: IOPS و latency چگونه با یکدیگر ارتباط دارند. تصور کنید که در یک سوپر مارکت هستید. این یک سوپرمارکت ویژه است که در آن به مشتریان (I/Os) با صندوقدار (دیسک) با سرعت متوسط 10 میلی ثانیه خدمات ارائه می شود. اگر یک ثانیه را با 10 میلی ثانیه تقسیم کنید، متوجه می شویم که این صندوقدار می تواند 100 مشتری در ثانیه را اداره کند. اما فقط یکی در یک زمان و پشت سر هم.

iops چیست

واضح است که با اینکه صندوقدار می تواند در هر ثانیه 100 مشتری را اداره کند، اما نمی تواند همزمان از عهده آنها برآید! بنابراین هنگامی که مشتری به ثبت می رسد، و در مدت زمان رسیدگی به 10 میلی ثانیه، مشتری دوم می رسد، آن مشتری باید منتظر بماند. هنگامی که مشتری منتظر توسط صندوقدار رسیدگی می شود، رسیدگی به آن مشتری هنوز فقط 10 میلی ثانیه طول می کشد، اما زمان پردازش کلی شاید 15 میلی ثانیه یا در بدترین حالت (دو مشتری همزمان وارد می شوند) حتی 20 میلی ثانیه بود.

iops چیست

البته یک دیسک ممکن است ورودی/خروجی های با تاخیر متوسط 10 میلی ثانیه را مدیریت کند. تأخیر واقعی همانطور که توسط برنامه درک می شود ممکن است بیشتر باشد زیرا برخی از I/O ها باید در صف منتظر بمانند.

این مثال همچنین نشان می‌دهد که انتظار در صف، تأخیر یک I/O خاص را افزایش می‌دهد. بنابراین اگر صف خواندن ورودی/خروجی را افزایش دهید، متوجه خواهید شد که میانگین تأخیر افزایش خواهد یافت. صف های طولانی تر به معنای تأخیر بیشتر و همچنین IOPS بیشتر خواهد بود!!!

iops چیست

چطور ممکنه؟ چگونه یک هارد دیسک می تواند ناگهان IOP های تصادفی بیشتری را به قیمت latency انجام دهد؟ ترفند در این است که سیستم ذخیره سازی می تواند هوشمند باشد و به صف نگاه کند و سپس ورودی/خروجی ها را به گونه ای سفارش دهد که الگوی دسترسی واقعی به دیسک سریالی تر شود. بنابراین یک دیسک می تواند IOPS/s بیشتری را به قیمت افزایش متوسط latency ارائه دهد. بسته به تأخیر به دست آمده و الزامات عملکرد لایه کاربردی، این می تواند قابل قبول باشد یا خیر.

میانگین سرعت iops در HDD ها و SSD ها:

میزان iops هارد دیسک ها به زمان جستجو بستگی دارد ولی میزان iops در SSD ها عمدتا به کنترلر داخلی دستگاه بستگی دارد. لازم به ذکر است که عملکرد SSD در طول زمان تغییر می کند و در مراحل اولیه بیشتر است به طوری که حتی زمانی که به حالت پایدار می رسد همچنان از نظر آی او پی اس نسبت به هارد دیسک ها بهتر عمل می کند زیرا HDD ها اغلب درگیر مسائلی از قبیل تاخیر و زمان خواندن و نوشتن می باشند.

اعداد مربوط به آی او پی اس در هر دو وسایل ذخیره سازی SSD و HDD معمولا بیشترین سرعت را نمایش می دهد و تعداد آی او پی اس ترتیبی معمولا حداکثر پهنای باند پایدار را نشان می دهد که سیستم ذخیره سازی قادر به انجام آن می باشد. اغلب آی او پی اس ترتیبی به عنوان یک مگابایت بر ثانیه به شرح زیر گزارش می شود:

IOPS*TransferSizeInBytes = BytesPerSec

که اصولا نتیجه عملیات فوق به مگابایت بر ثانیه تبدیل می شود.

با افزایش تعداد IO ها، برخی از HDD ها در عملکرد بهبود می یابند. این معمولاً نتیجه منطق کنترلر پیشرفته تری درایو است که فرماندهی را مرتب می کند که مرتب سازی مجدد آن را معمولاً یا Tagged Command Queaching (TCQ) یا Native Command Queaching (NCQ) می نامند. اکثر درایوهای SATA  قادر به انجام این کار نیستند و یا اجرای آنها به حدی ضعیف است که هیچ فایده ای از عملکرد را نمی توان مشاهده کرد.

در حالی که HDD های سنتی تقریباً دارای همان  آی او پی اس برای عملیات خواندن و نوشتن هستند، اکثر SSD های مبتنی بر فلش NAND نوشتن آن بسیار کندتر از خواندن به دلیل عدم امکان بازنویسی مستقیم به طور مکتوب در مکان قبلی است که مجبور می شود روشی به نام garbage collection  را انجام دهد.

IOPS ∗ TransferSizeInBytes = BytesPerSec {\displaystyle {\text{IOPS}}*{\text{TransferSizeInBytes}}={\text{BytesPerSec}}}

IOPS در SATA و SAS:

این دو نوع از هارد ها در دنیای امروز بیشترین کاربرد را دارند. هر دو این هارد ها برای انجام عملیات خود در حال چرخاندن یک دیسک هستند. فقط یک نوع از هارد دیسک SATA در بازار موجود می باشد این در حالی است که از هارد دیسک SAS دو نوع در بازار موجود است. مبنای این دسته بندی مقدار IOPS آن هاست. در ادامه به این دسته بندی ها خواهیم پرداخت.

ـ SATA:

میانگین سرعت SATA 7.2K rpm است و می تواند حداکثر ۱۰۰ عملیات ورودی و خروجی را در ثانیه انجام دهد. این هارد با سرعت ۱۰K rpm می تواند حداکثر ۱۵۰ عملیات را در ثانیه انجام دهد.

ـ SAS:

این نوع از هارد دیسک با دو سرعت ۱۰k و ۱۵k در بازار موجود است. SAS 10k می تواند ۱۴۰ عملیات را در ثانیه انجام دهد و SAS 15k می تواند ۲۱۰ عملیات را در ثانیه انجام دهد. SAS سریعتر از SATA است و در معاملات بانکی و تجارت الکترونیکی استفاده می شود.

ـ SSD:

در این نوع از هارد ها مقدار IOPS بسته به نیاز سرعت خواندن و نوشتن بسیار زیاد است. مقدار IOPS در هارد های SSD بین ۴۶۰۰ تا ۷۵۰۰ است ولی این مقدار نیز قابل افزایش است. امروزه یک هارد SSD مدرن می تواند ۱۰۰۰۰۰ عملیات را در یک ثانیه انجام دهد.

 

اهمیت iops: 

جالب است بدانید که میزان اهمیت IOPS به عنوان یک مقیاس اندازه گیری همچنان سوال برانگیز است. با توجه به میزان لود بار اعداد مربوط به واحد بیشترین تعداد خواندن و نوشتن بسیار متفاوت است در نتیجه نمی توان IPOS را به تنهایی پارامتر موثری برای تصمیم گیری در نظر گرفت.

از آنجایی که اعداد بیشترین تعداد خواندن و نوشتن تحت تاثیر اندازه بلوک داده ها و حجم کار است، بعید است که فروشندگان در هنگام اندازه گیری آن از متغیرهای استاندارد استفاده کنند. حتی در صورت استفاده از سیستم استانداری با در نظر گرفتن اندازه بلوک و عملیات خواندن و نوشتن، عدد به دست آمده معنایی به جز میزان کارایی در یک حجم کار مشخص ندارد. 

منبع : iops چیست