
نویسنده:
دسته:
تاریخ انتشار:
برای این که بتوانیم کیفیت عملکرد دستگاههای ذخیرهسازی را بررسی کنیم، میتوانیم از واحدهای اندازهگیری مختلفی استفاده کنیم. واحدهایی که نشاندهنده سرعت، امنیت و... استوریجها هستند. یکی از این واحدها IOPS نام دارد. در این مقاله میخواهیم به بررسی چیستی IOPS، کاربردها، نحوه اندازهگیری این واحد و... بپردازیم. با ادامه این مطلب ما را همراهی کنید.
IOPS چیست؟
برای سنجش عملکرد دستگاههای ذخیرهسازی میتوانیم از معیارهای مختلفی استفاده کنیم. یکی از این معیارها IOPS یا Input/Output Operations Per Second به معنای عملیات ورودی/خروجی در هر ثانیه است. این معیار نشاندهنده سرعت خواندن و نوشتن دادهها توسط یک دستگاه ذخیرهسازی است یعنی IOPS به تعداد عملیات ورودی/خروجی که یک دستگاه ذخیرهسازی میتواند در یک ثانیه انجام دهد، اشاره دارد.
به عبارت سادهتر، سرعت انتقال دادهها به و از دستگاه ذخیرهسازی را اندازهگیری میکند. این امر شامل عملیات خواندن (هنگامی که دادهها از دستگاه ذخیرهسازی بازیابی میشوند) و عملیات نوشتن (هنگامی که دادهها روی دستگاه ذخیرهسازی ذخیره میشوند) میشود. در نتیجه، IOPS نشان میدهد که یک استوریج چقدر سریع است. هرچه IOPS بالاتر باشد، دستگاه ذخیرهسازی سریعتر میتواند درخواستهای داده را پردازش کند و در نتیجه، عملکرد کلی بهتر است. البته ذکر این نکته حائز اهمیت است که این مقدار به حجم دادههای پردازش شده توسط دستگاه اشاره نمیکند.

چرا IOPS یک معیار مهم برای سنجش عملکرد ذخیرهسازی است؟
اندازه IOPS تأثیر مستقیم بر عملکرد کلی سیستم و تجربه کاربری دارد. اگر نرخ IOPS پایین باشد، به این معنی است که انتقال دادهها بین برنامه و دستگاه ذخیرهسازی کند خواهد بود و در نتیجه زمان انتظار کاربران طولانیتر میشود. بیایید به برخی از دلایل کلیدی که چرا IOPS باید هنگام ارزیابی سیستمهای ذخیرهسازی جدی گرفته شود، بپردازیم:
- IOPS مستقیماً بر زمان پاسخ برنامه تأثیر میگذارد، زیرا سرعت پردازش عملیات خواندن و نوشتن توسط یک دستگاه ذخیرهسازی را اندازهگیری میکند و در نتیجه دسترسی سریعتر به دادهها به معنای بهبود تجربه کاربری است.
- IOPS بالا به معنای فراهم کردن امکان دسترسی همزمان چندین برنامه به دادهها بدون تأخیر یا گلوگاه است. این امر به معنای تضمین مقیاسپذیری و امکان مدیریت بار کاری بیشتر است.
- در فناوری مجازیسازی، چندین ماشین مجازی (VM) منابع را از طریق یک سرور یا خوشه فیزیکی واحد به اشتراک میگذارند. این ماشینهای مجازی برای عملکرد کارآمد بسیار به دسترسی سریع به دادهها از دستگاههای ذخیرهسازی مشترک متکی هستند. با نرخهای IOPS بالاتر، این ماشینهای مجازی میتوانند دادهها را سریعتر بازیابی کنند و بارهای کاری مختلف را بدون ایجاد اختلال در عملکرد یکدیگر اجرا کنند.
- این معیار در زیرساختهای مبتنی بر ابر نیز بسیار اهمیت دارد. هر چه نرخ آن بالاتر باشد، عملکرد برنامهها در سرورهای راه دور روانتر میشود. مخصوصاً زمانی که شبکهها با سرعتها و پهنای باند متنوع سر و کار دارند.
- برنامههایی با تقاضای ورودی/خروجی بالا، مانند پایگاههای داده، مجازیسازی و سیستمهای بلادرنگ، برای حفظ سرعت پردازش تراکنشها و تأخیر کم، به شدت به IOPS بالا متکی هستند.
انواع عملکرد IOPS
منظور از انواع عملکرد، الگوهای دسترسی به دیسک است که نحوه خواندن و نوشتن دادهها از یک دستگاه ذخیرهسازی را نشان میدهند. 3 نوع الگوی دسترسی وجود دارد:
- عملیات متوالی یا ترتیبی: الگوی دسترسی ترتیبی به خواندن و نوشتن مداوم دادهها اشاره دارد. این الگو معمولاً سریعتر است و عموماً در عملیات مربوط به فایلهای بزرگ دیده میشود.
- عملیات تصادفی: الگوهای دسترسی تصادفی، به دادهها به صورت غیر ترتیبی دسترسی پیدا میکنند و بنابراین کندتر هستند. این امر عمدتاً به این دلیل است که دادهها در سراسر محیط ذخیرهسازی پراکنده هستند.
- ترکیبی از دو مورد بالا: در این حالت، هر دو نوع دسترسی مورد استفاده قرار میگیرد.
حال برای سنجش این الگوها از معیارهای زیر استفاده میشود:
- Total IOPS: نشانه تعداد کل عملیات ورودی/خروجی (I/O)، دسترسی ترتیبی و تصادفی (خواندن و نوشتن) که در عرض یک ثانیه رخ میدهد.
- Sequential Write IOPS: نوشتن متوالی میانگین تعداد عملیات ورودی/خروجی نوشتن متوالی را که در یک ثانیه رخ میدهد، نشان میدهد.
- Sequential Read IOPS: خواندن متوالی، میانگین تعداد عملیات ورودی/خروجی خواندن متوالی را که در یک ثانیه رخ میدهد، نشان میدهد.
- Random Write IOPS: نوشتن تصادفی، میانگین تعداد عملیات ورودی/خروجی نوشتن تصادفی را که در عرض یک ثانیه رخ میدهد، نشان میدهد.
- Random Read IOPS: خواندن تصادفی، میانگین تعداد عملیات I/O خواندن تصادفی را که در عرض یک ثانیه رخ میدهد، نشان میدهد.

عوامل مؤثر بر IOPS
عوامل مختلفی بر IOPS تأثیر میگذارند. این موارد عبارتاند از:
نوع دستگاه ذخیرهسازی
نوع دستگاه ذخیرهسازی مورد استفاده تأثیر قابلتوجهی بر IOPS دارد. هارددیسکهای سنتی (HDD) معمولاً IOPS کمتری در مقایسه با درایوهای حالت جامد (SSD) دارند. دلیل این امر این است که HDDها برای خواندن و نوشتن دادهها به اجزای مکانیکی متکی هستند، در حالی که SSDها از فناوری حافظه فلش استفاده میکنند که سرعت دسترسی سریعتری را فراهم میکند.
سرعت رابط
سرعت رابط بین دستگاه ذخیرهسازی و رایانه نیز در IOPS نقش دارد. بهعنوانمثال، رابطهای SATA) Serial Advanced Technology Attachment) معمولاً سرعت کمتری نسبت به رابطهای NVMe (Non-Volatile Memory Express) دارند که منجر به IOPS پایینتر برای دستگاههای مبتنی بر SATA میشود.
عمق صف
عمق Queue به تعداد درخواستهای ورودی/خروجی معوقه اشاره دارد که میتواند توسط یک دستگاه ذخیرهسازی در هر زمان معین پردازش شود. هرچه عمق صف بیشتر باشد، عملیات همزمان بیشتری میتواند پردازش شود و این امر منجر به IOPS بالاتر میشود. این امر به ویژه در برنامههای کاربردی با تقاضای بالا مانند پایگاههای داده یا محیطهای مجازیسازی اهمیت دارد.
حجم کار
نوع و میزان حجم کاری که توسط یک سیستم پردازش میشود نیز بر الزامات IOPS آن تأثیر میگذارد. برنامههایی با حجم کاری سنگین مانند پایگاههای داده یا ماشینهای مجازی برای عملکرد بهینه به IOPS بالاتری نیاز دارند.
اندازه بلوک
اندازه بلوکهای دادهای که منتقل میشوند نیز میتواند بر IOPS تأثیر بگذارد. اندازه بلوکهای کوچکتر معمولاً منجر به IOPS بالاتر میشوند، اما اندازه بلوکهای بزرگتر ممکن است برای حجمهای کاری خاص کارآمدتر باشند.
فایل سیستم
فایل سیستمهای مختلف دارای سطوح گوناگونی از سربار و روشهای سازماندهی هستند که میتوانند بر سرعت دسترسی به دادهها و نوشتن روی درایو تأثیر بگذارند.
نوع بار کاری
نوع حجم کاری انجام شده نیز بر IOPS تأثیر میگذارد. حجمهای کاری تصادفی با اندازه بلوک کوچک، در مقایسه با حجمهای کاری متوالی با اندازه بلوک بزرگتر، به عملیات ورودی/خروجی بیشتری نیاز دارند. بهعنوانمثال، برنامههای پایگاه داده با خواندن و نوشتنهای تصادفی مکرر، تقاضای IOPS بالاتری نسبت به برنامههای استریم ویدئو خواهند داشت.
پیکربندی RAID
نحوه توزیع و ذخیره دادهها در چندین درایو در پیکربندی RAID میتواند بر عملکرد IOPS تأثیر بگذارد. بهعنوانمثال، استریپینگ RAID 0 سرعت خواندن/نوشتن بیشتری را ارائه میدهد؛ اما به قیمت افزونگی دادهها، در حالی که پیکربندیهای RAID 5 یا 6 محافظت از دادهها را ارائه میدهند؛ اما با IOPS پایینتر در مقایسه با RAID 0.
مزایای IOPS بالا
IOPS بالا مزایای متعددی را به همراه دارد، از جمله:
- بهبود عملکرد اپلیکیشنها
- کاهش تأخیر
- پاسخ سریعتر
- مقیاسپذیری بهتر
- تجربه کاربری بهبود یافته
نحوه اندازهگیری و محاسبه IOPS
نوع دستگاه ذخیرهسازی نقش مهمی در تعیین IOPS ایفا میکند. انواع مختلف دستگاههای ذخیرهسازی مانند هارد دیسک (HDD)، درایوهای حالت جامد (SSD) یا ذخیرهسازی متصل به شبکه (NAS) در هنگام مدیریت عملیات ورودی/خروجی، قابلیتهای توان عملیاتی متفاوتی خواهند داشت. HDDها معمولاً به دلیل ماهیت مکانیکی خود، IOPS کمتری در مقایسه با SSDها دارند، در حالی که سیستمهای NAS ممکن است IOPS بالاتری را برای چندین کاربر که به طور همزمان به دادهها دسترسی دارند، فراهم کنند.
رایجترین روش محاسبه IOPS، انجام تستهای بنچمارک با استفاده از نرمافزارهای تخصصی طراحیشده برای اندازهگیری عملکرد ذخیرهسازی مانند Iometer، CrystalDiskMark یا ATTO Disk Benchmark است.
این تستهای بنچمارک با ایجاد عملیات خواندن/نوشتن تصادفی روی اندازههای مختلف بلوک و سپس محاسبه میانگین IOPS برای هر عملیات، سناریوهای دنیای واقعی را شبیهسازی میکنند. توجه به این نکته ضروری است که نتایج بنچمارک میتواند با توجه به محیط آزمایش متفاوت باشد، بنابراین توصیه میشود چندین تست اجرا شود و میانگین نتایج در نظر گرفته شود.
اندازهگیری و محاسبه IOPS گامی حیاتی در درک عملکرد ذخیرهسازی است. با در نظر گرفتن نوع دستگاه ذخیرهسازی، سیستمعامل و حجم کار مربوطه، و همچنین استفاده از ابزارهای بنچمارک قابل اعتماد، میتوان حداکثر IOPS بالقوه یک سیستم را به طور دقیق مشخص کرد و در مورد بهینهسازی عملکرد ذخیرهسازی، تصمیمات آگاهانهای گرفت.
بهینهسازی IOPS
برای بهینهسازی IOPS میتوانید از روشهای زیر استفاده کنید:
- Benchmarking: میتوانید از ابزارهای Benchmarking برای اندازهگیری عملکرد فعلی IOPS تحت بارهای کاری مختلف استفاده کنید.
- تجزیه و تحلیل بارهای کاری: ماهیت بارهای کاری خود را درک کنید تا نقاط ضعف و قوت را بتوانید بهتر شناسایی کنید.
- ارتقای سختافزاری: در صورت نیاز به IOPS بالاتر، روی SSDهای با کارایی بالا یا درایوهای NVMe سرمایهگذاری کنید.
- بهینهسازی پیکربندیها: پیکربندیهایی مانند سطوح RAID، عمق صف و اندازه بلوک را در جهت به حداکثر رساندن IOPS تنظیم کنید.
بررسی IOPS در درایوهای SSD و HDD
پیشتر اشاره کردیم که مقدار IOPS در HDD و SSD متفاوت است. در جدول زیر میتوانید این تفاوتها را به صورت خلاصه مشاهده کنید:
| SSDs (Solid-State Drives) | HDDs (Hard Disk Drives) | معیارها |
|---|---|---|
| دهها هزار تا صدها هزار (تا چند صدهزار؛ مدلهای گرانقیمت میتوانند از ۱ میلیون IOPS فراتر روند) | صدها تا چند هزار (تقریباً ۵۰ تا ۲۱۰ IOPS بسته به دور در دقیقه) | محدوده معمول IOPS |
| تا ۳۸۰،۰۰۰+ | حدود ۷۵ تا ۲۱۰ IOPS بسته به سرعت اسپیندل (۷۲۰۰ دور در دقیقه - ۷۵ تا ۱۰۰ IOPS؛ ۱۵۰۰۰ دور در دقیقه - ۱۷۵ تا ۲۱۰ IOPS) | Random Read IOPS |
| تا ۳۳۰،۰۰۰+ | مشابه Random Read IOPS اما معمولاً پایینتر | Random Write IOPS |
| تا چندین گیگابایت بر ثانیه (درایوهای حالت جامد NVMe PCIe 4.0/5.0 با سرعت ۳.۲ تا ۳.۵ گیگابایت بر ثانیه) | معمولاً ۱۰۰ تا ۲۷۰ مگابایت بر ثانیه، با توجه به نسل و سرعت درایو | Sequential Read Speed |
| به طور کلی نزدیک به سرعت خواندن در SSDهای مدرن (۱.۹ تا ۲.۱ گیگابایت بر ثانیه یا بیشتر) | مشابه یا کندتر از سرعت خواندن، محدود به دیسکهای چرخان | Sequential Write Speed |
| معمولاً کمتر از ۱ میلیثانیه، اغلب میکروثانیه | معمولاً ۵ تا ۲۰ میلیثانیه، بسته به RPM و زمان جستجو | Latency یا تأخیر |
داشتن چه میزان از IOPS خوب است؟
نمیتوان عددی برای IOPS اعلام کرد و گفت این مقدار، بهترین حالت IOPS است. واقعاً عددی وجود ندارد؛ مقدار ایدئال IOPS بیشتر به مورد استفاده خاص شما و الزامات سیستم بستگی دارد. در ادامه مثالی میآوریم تا بهتر متوجه این موضوع شوید:
برای یک کامپیوتر دسکتاپ یا لپتاپ مجهز به SSD، مقدار مناسب IOPS چیزی بین دهها هزار تا صدها هزار است. البته برای I/O متوالی این مقدار باید بالاتر باشد، چیزی بین چند صدهزار یا بیش از یک میلیون IOPS. با این حال، اگر همین لپتاپ مجهز به HDD باشد، مقدار IOPS خوب از چند صد تا چند هزار IOPS خواهد بود.
همین امر در مورد سرورهای مجازی و پایگاههای داده نیز صدق میکند. همه چیز به حجم کار و تقاضای برنامه بستگی دارد. با این حال، به طور میانگین میتوان گفت که سرورهای مجازی معمولاً به چیزی بین ۱۰۰ تا ۱۰۰۰۰ IOPS نیاز دارند. در حالی که پایگاههای داده میتوانند به چند صد تا دهها هزار یا حتی بیش از ۶۰۰۰۰ IOPS برای سیستمهای OLTP بسیار پرمصرف نیاز داشته باشند.
ذخیرهسازی مبتنی بر ابر و شبکههای تحویل محتوا (CDN) به چندین هزار تا صدها هزار IOPS در هر گره نیاز دارد. برخی از فلش مموریهای رده بالا مقادیر IOPS بالای یک میلیون دارند.
IOPS در چه بخشهایی کاربرد دارد؟
IOPS در بخشهای مختلف صنعتی، کسب و کاری و... در نظر گرفته میشود. از جمله در:
- مدیریت پایگاه داده
- مجازیسازی
- تجزیه و تحلیل کلان داده
- اپلیکیشنهای سازمانی
- محاسبات ابری
تفاوت IOPS با توان عملیاتی و تأخیر
در برخی موارد IOPS با Throughput (توان عملیاتی) و Latency (تأخیر) اشتباه گرفته میشود.
توان عملیاتی، میزان دادههایی را که یک سیستم میتواند در یک دوره مشخص منتقل یا پردازش کند، اندازهگیری میکند که اغلب با بایت یا بیت در ثانیه بیان میشود. این معیار، میزان اطلاعات قابل انتقال یا قابل مدیریت را کمّی میکند و نشاندهنده ظرفیت انتقال دادههای حجیم است. این امر برای عملیات متوالی بزرگ حیاتی است. توان عملیاتی بالا، قابلیت انتقال سریع دادهها را نشان میدهد. این معیار به ویژه در هنگام کار با فایلهای بزرگ یا جریانهای پیوسته دادهها اهمیت پیدا میکند.
Latency تأخیر بین ارسال درخواست برای خواندن یا نوشتن دادهها و تکمیل آن عملیات را توصیف میکند. این زمان صرف شده برای پردازش یک عملیات ورودی/خروجی واحد، شامل تمام زمانهای پردازش داخلی و بازیابی دادههای فیزیکی میشود. تأخیر کم برای برنامههایی که نیاز به زمان پاسخ سریع دارند، بسیار مهم است، زیرا بر سرعت تکمیل عملیات و تجربه کاربران نهایی یا کارایی سیستمهای بلادرنگ تأثیر میگذارد.
در جدول زیر میتوانید تفاوت IOPS با توان عملیاتی و تأخیر را مشاهده کنید:
| واحد | تمرکز | موارد استفاده | پیچیدگی اندازهگیری | تعریف | Metric |
|---|---|---|---|---|---|
| عملیات بر ثانیه | تعداد عملیات ورودی/خروجی | حجم کاری دادههای کوچک و تصادفی، مانند پایگاههای داده | نیاز به ابزارهای بنچمارک خاص، بسا توجه به اندازه بلوک | تعداد عملیات خواندن/نوشتن در ثانیه | IOPS |
| بایت یا بیت بر ثانیه | حجم داده منتقل شده | انتقال دادههای متوالی بزرگ، دادههای جریانی (استریم) | اندازهگیری آسانتر، اغلب به طور مستقیم با ابزارهای شمارنده سیستم قابل مشاهده است | مقدار داده منتقل شده در واحد زمان | Throughput |
| زمان (میلیثانیه، میکروثانیه) | تأخیر بین درخواست و اتمام کار | برنامههای کاربردی که نیاز به پاسخ سریع دارند، سیستمهای تعاملی | نیاز به ابزارهای زمانبندی دقیق، اندازهگیری پایدار به فناوری بستگی دارد | تأخیر زمانی برای پردازش یک عملیات ورودی/خروجی | Latency |

آیا اعداد IOPS واقعاً مهم هستند؟
به طور کلی میتوان IOPS را میتوان با تعداد دور در دقیقه (rpm) موتور خودرو مقایسه کرد. اگر وسیله نقلیه در حالت خلاص باشد، بیان اینکه موتور در آن لحظه قادر به چرخش با سرعت 10000 دور در دقیقه است، بیمعنی است. IOPS به تنهایی معیار خوبی برای سنجش عملکرد استوریج نیست. بدون در نظر گرفتن اندازه بلوک داده، اندازه I/O، فعالیت خواندن/نوشتن یا جریان I/O، IOPS معنایی ندارد.
به عبارت ساده، IOPS برای درک حداکثر تعداد عملیات ورودی/خروجی که درایو ذخیرهسازی میتواند در هر ثانیه انجام دهد، یعنی عملکرد بالقوه آن، مفید است، اما برای درک عملکرد واقعی آن مفید نیست. همچنین، بسته به حجم کار، اعداد IOPS میتوانند به شدت متفاوت باشند، بنابراین درجهبندی عملکرد سیستم ذخیرهسازی صرفاً بر اساس IOPS توصیه نمیشود.
سخن نهایی
IOPS یک معیار حیاتی برای نشان دادن نحوه عملکرد ذخیرهسازی است؛ زیرا مستقیماً بر زمان پاسخ برنامه، مقیاسپذیری و فناوری مجازیسازی تأثیر میگذارد. همچنین نقش حیاتی در تضمین عملکرد کارآمد سیستمهای مبتنی بر ابر، مجازیسازی و... ایفا میکند؛ بنابراین، کسبوکارها باید هنگام انتخاب سیستمهای ذخیرهسازی، نرخهای IOPS را با دقت در نظر بگیرند تا مطمئن شوند که عملکرد مدنظر خود را دریافت میکنند و تجربه کاربری را بهبود میبخشند.
مقالات مرتبط
nvme چیست و مقایسه آن با ssd
اگر فکر میکنید SSD ها سریعترین ابزار ذخیرهسازی داده هستند و هیچ تکنولوژی سریعتری وجود ندارد، سخت در اشتباهید! NVMe یک...
ALU چیست و عملکرد آن در CPU چگونه است؟
ALU یا Arithmetic Logic Unit، واحد محاسبه و منطق پردازنده مرکزی (CPU) است. این واحد وظیفه اجرای عملیات ریاضی مانند...
Replication چیست؟ معرفی انواع روشهای تکثیر داده
روشهای مختلفی برای ذخیره و بکآپگیری دادهها وجود دارد. یکی از این روشها Data replication نام دارد. Data replication فرایند...