اصطلاح IOPS در بازار IT بسیار پرکاربرد است، بهویژه وقتی خرید و فروش ذخیرهسازی در میان باشد. این اصطلاح در واقع به حجم کاری ذخیرهسازها اشاره دارد که یک واحد اندازهگیری برای میزان خواندن و نوشتن اطلاعات است. با در نظر گرفتن میزان IOPS یک ذخیره ساز مناسب سرورهای فیزیکی یا مجازی میتوانید، یک هارد یا سن استوریج مناسب تهیه کنید. با ما همراه باشید تا در این مطلب علاوه بر آشنایی با محاسبه IOPS ، از اهمیت تا نحوهی اندازهگیری آن آشنا شوید.
⏲ زمان تخمینی مطالعه: 14 دقیقه
فهرست موضوعات
IOPS چیست؟
Input/output Operations per Second به معنای تعداد ورودی و خروجی داده در هر ثانیه که بهصورت مخفف IOPS در صنعت IT کاربر دارد، یک واحد استاندارد و رایج برای ارزیابی عملکرد و محاسبهی انواع تجهیزات ذخیرهساز مانند هارددیسک (HDD) SAN Storage، درایوهای حالت جامد (SSD) و… است. در حقیقت IOPS میزان خواندن و نوشتن اطلاعات در فضای محصولات ذخیرهساز را مشخص میکند و بهطورکلی IOPS برای اندازهگیری نوشتن تصادفی و متوالی و خواندن تصادفی و متوالی کاربرد دارد.
عمدتاً کمپانیهای تولیدکننده تجهیزات ذخیرهساز اعداد آیاُپس (تلفظ صحیح EYE-OPS) محصولاتشان را در هنگام ورود به بازار مشخص میکنند، با اینحال عدد درج شده روی محصول دقیقاً همان عملکردی را که در آزمایشگاه ارائه داده است، در عملکرد واقعی نشان نخواهد داد.
این بدانمعنا نیست که عدد درج شده در محصول غیرواقعی است، بلکه بدان معنا است که اندازهی IOPS به ورودی I/O یا بلاک دیتا، عملکرد نوشتن و خواندن یا I/O stream در ذخیرهساز بستگی دارد. بهعنوان مثال دور موتور در ماشین بسیار به حالت رانندگی، تعویض دنده و سرعت بستگی دارد.
اهمیت اندازه گیری IOPS
ممکن است این سوال برای کاربران بهوجود بیاید که «اندازهگیری IOPS چقدر مهم است؟» از آنجایی که عمدتاً از این روش جهت اندازهگیری هارد درایوهای SATA، SAS، SSD و SAN Storage استفاده میشود، دانستن میزان IOPS یک دستگاه ذخیرهساز در قیمت خرید تجهیزات ذخیرهسازی تأثیرگذار است، عمدتاً هرچه میزان ای اُپس ذخیرهساز بیشتر باشد، بههمان نسبت نیاز به تجهیزات پیشرفتهتر و هزینهی بیشتر دارد.
همچنین برای مدیران یک شبکه و افرادی که در زمینه سرور و ذخیرهساز فعالیت دارند، دانستن عدد IOPS و میزان تأخیر در شبکه باعث میشود تا میزان عملکرد شبکه و کارآیی سرور را در آینده تخمین بزنند. متأسفانه بسیاری از شرکت و سازمانها بدون درک نیازهای خود و نوع فعالیت اقدام به خرید ذخیرهساز میکنند، بدون اینکه IOPS موردنیاز خود را در نظر بگیرند.
فاکتور دیگری که اهمیت اندازهگیری IOPS را مشخص میکند، دریافت رتبهبندی از سایت گوگل است. طبق اعلام این کمپانی، هرچقدر یک وبسایت سرعت بالاتری در بارگذاری داشته باشد، رتبه بهتری دریافت میکند. در نتیجه IOPS مشخص میکند که یک هارد دیسک تا چه اندازه میتواند سریع و سخت کار کند. که این نکتهی بسیار مهمی برای مدیران یک وبسایت است.
توجه داشته باشید که در هنگام خرید تجهیزات ذخیره ساز، اطلاع داشتن از مقدار IOPS، زمان پاسخدهی و حجمکاری از اهمیت بالایی برخورد است.
روش محاسبه IOPS
هر دیسک در ذخیرهساز سیستم دارای حداکثر مقدار IOPS علمی است که براساس یک فرمول مشخص میشود. عملکرد دیسک و IOPS به سه عامل اصلی بستگی دارند:
- سرعت چرخشی (Rotational Speed)؛ اندازه گیری دور در دقیقه یا سرعت چرخشی یکی از عواملی است که در عملکرد دیسک و IOPS تأثیر دارد. معمولاً ذخیرهسازها دارای سرعت چرخشی 7200، 10000 یا 15000 دور در دقیقه هستند که دو مورد آخر رایجتر است. امکان سرعت چرخش دیسک از این مقادیر بالاتر وجود ندارد و معمولاً مقادیر بالاتر در محاسبه IOPS استفاده نمیشود.
- میانگین تأخیر (Average latency): مدت زمانی که طول میکشد تا قستمی از دیسک در طی عملیات خواندن/نوشتن در دسترس قرار گیرد.
- میانگین زمان جستجو (Average seek time): زمانیکه برای حرکت یا جستجو از یک خط به خط دیگر دیسک در موقعیت خواندن یا نوشتن در نظر گرفته میشود. این زمان معمولاً با میلیثانیه مشخص میشود و مضربی از 10 میلیثانیه است. برای رسیدن به این عدد باید میانگین رسیدن موقعیت جستوجو خواندن به خواندن یا حرکت نوشتن هارد برای رسیدن به موقعیت نوشتن را در نظر گرفت.
برای محاسبه محدوده IOPS از فرمول زیر استفاده کنید:
عد 1 را بر مجموع میانگین زمان تأخیر(latency) برحسب میلی ثانیه و میانگین زمان جستوجو (seek time) برحسب میلیثانیه تقسیم کنید. (1÷ average latency in ms + average seek time in ms)
بهعنوان مثال:
- هارد درایو SATA، 2.5 اینچی مدل Western Digital VelociRaptor
- سرعت چرخشی: 10000 دور در دقیقه
- میانگین latency: تاخیر 3 میلیثانیه (003 seconds)
- میانگین seek time: زمان خواندن 4.2R زمان نوشتن 4.7W= عدد 4.45 میلیثانیه (0.0045 seconds)
- IOPS محاسبه شده برای این دیسک: 1 ÷ (003+0.0045) = در حدود 133 IOPS
بنابراین این مدل هارد درایو 133 IOPS را پشتیبانی میکند. این را با جدول زیر مقایسه کنید، خواهید دید که مقدار IOPS 133 توسط درایوهای 10K RPMمشخص شده است.
میانگین IOPS/ درایو | |||
سرعت درایو | منبع 1 | مبنع 2 | مبنع 3 |
7200 PRM | 75-100 | 75 | 30-80 |
10K PRM | 100-130 | 125 | 140 |
15K PRM | 150-190 | 175 | 180 |
توجه داشته باشید که بهجای کار با فرمول برای هارد دیسکهای خود، میتوانید از منابع موجود که میانگین مقادیر IOPS را مشخص کردهاند، استفاده کنید. مگر اینکه فکر میکنید دیسک شما در مواردی متفاوت عمل میکند.
همچنین نوع درایو بههیچوجه مورد محاسبه قرار نمیگیرد. زیرا ممکن است تولیدکنندهای تصمیم بگیرید که کمترین زمان جستوجو (Seek Time) و تأخیر (latency) را در یک دیسک 15K RPM SAS محاسبه کند، در نتیجه مقدار IOPS بالایی بهدست خواهد آورد.
خرید سرور hp و خرید cpu سرور hp
اندازه گیری IOPS در ویندوز و معرفی ابزار آن
برای اندازهگیری IOPS در محیط ویندوز چندین برنامه وجود دارد که عبارتند از:
- نرمافزار Performance Monitor: این نرمافزاری است که در خود ویندوز وجود دارد و آخرین ورژن آن در windows 10 ارائه شده است. برای استفاده از این ابزار کافی است که Run را باز کرده و دستور Performance Monitor را تایپ کنید. یا میتوانید از طریق کنترل پنل، در گزینهی System and Security کلیک کنید و با باز شدن صفحه Administrative Tools، Performance Monitor را میتوانید انتخاب کنید. (شکل 1) در این برنامه میتوانید زمان تأخیر و زمان Seek Time را اضافه کرده و براساس نمودار ارائه شده مقدار آی اُپس را بهدست بیاورید.
- نرمافزار CrystalDiskMark: برای اندازهگیری عملکرد درایو در خواندن و نوشتن میتوانید از نرمافزار CrystalDiskMark استفاده کنید. ابتدا همهی برنامههای را ببندید و سپس مراحل زیر را انجام دهید:
- نرمافزار را از وبسایت مایکروسافت دانلود کنید.
- پس از دانلود آن را نصب کنید.
- برنامه را اجرا کنید و با استفاده از اولین منو کشویی در سمت چپ تعداد عملکرد را انتخاب کنید. (اگر پیشفرض عدد 5 است برای بهدست آوردن نتایج دقیقتر آن را به 3 تغییر دهید.)
- در دومین منوی کشویی، میتوانید اندازه فایل را برای تست عملکرد درایو انتخاب کنید. (بهتر است روی حالت پیشفرض باشد و آن را تغییر ندهید.).
- سومین گزینه در منوی کشویی سمت راست، انتخاب نوع درایو براساس HDD یا SDD است که قصد دارید IOPS آن را اندازهگیری کنید. گزینه ALL را بزنید.
با انتخاب گزینه ALL، این نرمافزار تمام تستهای موجود از جمله خواندن/نوشتن متوالی، تصادفی و… را بررسی میکند. اگر قصد دارید تنها یک آزمایش را اجرا کنید، روی دکمه سبز رنگ در سمت چپ برنامه کلیک کنید. پس از چند دقیقه، نتایج تست عملکرد درایو را بهصورت شکل 2 مشاهده خواهید کرد.
- نرمافزار PowerShell: این نرمافزاری نیز تحت ویندوز است با این تفاوت که عملکرد آن بهصورت خط فرمان و شبیه Command Prompt است و در محیط DOS انجام میگیرد. این برنامه که از Command Prompt قدرتمندتر توسط مایکروسافت در هر سری از سیستم عاملهای این کمپانی قرار دارد. برای اجرای برنامه در استارت ویندوز گزینه PowerShell را تایپ کنید تا صفحه دستورات اجرا شود.(شکل 3)
برای اندازه گیری IOPS فرمان winsat disk را تایپ کنید و اینتر را بزنید. (شکل 4)
برای اطلاع از کلیه دستورات در محیط PowerShell باید به سایت مایکروسافت مراجعه کنید.
- نرم افزار Horizon View: این نرمافزار نیز تحت ویندوز است که مانند یک ماشین مجازی عمل میکند. عمدتاً کارآیی آن براساس بلاک management است که برای اندازهگیری IOPS باید تنظیمات ماند جدول زیر باشد:
Windows server 2088 R2 64-bit | Supported operating systems |
Windows server 2012 R2 64-bit | |
10 GB | Memory |
4vVPU | Virtual CPUs |
70GB | Hard disk space required |
توجه داشته باشید که برای استفاده از نرمافزار Horizon view باید یک تنظیمات مشخص در نظر بگیرید که حداکثر تنظیمات در جدول زیر مشخص شده است:
Maximum | Item |
2,000 | Maximum number of connections for single connection server (PCoIP or RDS) |
10,000 | Maximum number of connection for 7 connection servers (PCoIP or RDS) |
2,000 | Blast Secure Gateway connections to remote desktops using HTML Access |
50.000 | Maximum number of desktops in a cloud pod |
25 | Maximum Number of pods in cloud pod architecture |
5 | Maximum Number of sites in cloud pod architecture |
125 | Maximum view connection servers in a cloud pod architecture |
1 | Clusters per desktop pool |
32 | Hosts per cluster |
4 | Maximum monitors with PCoIP |
2 | Maximum Monitors with 3D Rendering enabled |
16 | Maximum Monitors with RDP 7 |
3 | Maximum 4K monitors with |
- نرم افزار VMware ESXi: نرم افزار Vmware ESXi که با نام ESX نیز شناخته میشود توسط کمپانی VMwareو بهمنظور مجازیسازی سختافزارهای سرور تولید شده است. این نرمافزار که آخرین وژن از مجموعه VMware Hypervisor است در آخرین آپدیت خود عملکردی مانند سیستم عامل دارد و همچنین دارای هسته مرکزی نیز است. بهدلیل قابلیت بسیار ویژه این نرمافزار در شبیه سازی محیطهای سختافزاری از این برنامه عمدتاً در سازمانهای بزرگ و دیتاسنترها بهمنظور محاسبه و اندازه گیری IOPS استوریج (Storage) استفاده میشود.
ابزارهای پیشرفته در اندازه گیری یا محاسبه IOPS
در سال 1999 کمپانی اینتل بهمنظور جلوگیری از سوءاستفاده شرکتهای تولیدکننده سختافزار در درج عدد IOPS ابزار IOmeter را برای اندازه گیری سرعت Input/output منتشر کرد. با این ابزار مدیران شبکه میتوانند حداکثر سرعت خواندن و نوشتن را مشخص کنند و همچنین میزان بارگیری شبکه بدون اثر منفی را پیشبینی کنند.
کمپانی Storage Performance Council نیز ابزار SPC-1 Benchmark Suite را بهمنظور اندازهگیری IOPS منتشر کرده است که نسبت به IOmeter دقیقتر است. در این ابزار کلیه مشخصات تجهیزات ذخیرهساز درج و براساس استانداردهای محیط کاری میزان دقیق سرعت Input/output مشخص میشود.
سرعت iops در درایوهای HDD و حافظه های SSD
سرعت IOPS در درایوهای HDD و حافظههای SDD متفاوت است. بهطورکلی عملکرد SDD در طول زمان بیثبات است و سرعت آن بسیار به کنترلر داخلی وابسته است. اما سرعت IOPS در HDDها بسیار به خواندن و نوشتن بستگی دارد. در نتیجه با توجه به تستهای مختلف بسیاری از افراد اعتقاد دارند که حافظه SDD عملکرد بهتری در زمانهای پایدار دارد ولی در HDD زمانی که تعداد I/O افزایش پیدا میکند، بههمان نسبت عملکرد درایو نیز بهتر میشود. با اینحال عدد IOPS در HDD و SDD حداکثر پهنای باند پایدار و بیشترین سرعت نمایش را نشان میدهد.
علاوه بر این در درایو HDD کنترلر درایو با افزایش تعداد I/O باعث بهینه شدن سرعت میشود که به آن نیز Native Command Queaching (NCQ) گفته میشود در صورتی که حافظه SATA از این ویژگی در فرآیند I/O برخوردار نیست.
اغلب IOPSهای متوالی به صورت یک عدد MB/s ساده در درایوهای HDD بهصورت زیر ارائه میشوند:
IOPS×TransferSizeInByts =BytsPerSec {MegabytesPerSec}
و IOPSهای متوالی در حافظههای SDD به صورت زیر مشخص میشود.
IOPS×TransferSizeInBytes = BytesPerSec {\displaystyle\text{IOPS}} × {\text{TransferSizeInBytes}} = {\text{BytesPerSec}}}
همچنین برای محاسبه iops در حافظه SSD باید سه عامل اصلی یعنی توان عملیاتی، زمان تأخیر و سرعت نرخ جابهجایی اطلاعات در یک ثانیه را در نظر بگیرید.
اندازه گیری IOPS براساس الگوریتمهای رید
روش دیگری که میتوانید IOPS را اندازهگیری کنید، استفاده از الگوریتمهای رید است که شاید مهمترین جزء در محاسبه IOPS برای درک بهتر آن و پیکربندی RAID باشد به جز RAID 0. پیکربندیهای Raid مبتنی بر این واقعیت است که عملیات نوشتن منجر به نوشتن چندگانه در آرایه میشود. بههمین دلیل پیکربندیهای مختلف RAID برای کارهای مختلف مناسب است.
بهعنوان مثال، برای هر درخواست نوشتن تصادفی، RAID 5 به عملیات دیسک بالایی نیاز دارد که تأثیر قابل توجهی در محاسبه IOPS میگذارد. بههمین خاطر برای محاسبه IOPS در RAID 5 به 4 عملیات نیاز است. جدول زیر بهطور خلاصه مقدار خواندن و نوشتن را براساس انواع سطوح RAID مشخص میکند:
I/O Impact | ||
Write | Read | RAID LEVEL |
1 | 1 | RAID 0 |
2 | 1 | RAID1 و 10 |
4 | 1 | RAID 5 |
6 | 1 | RAID 6 |
برای بهدست آوردن IOPS براساس الگوریتمهای رید میتوانید براساس فرمول زیر عمل کنید :
(کل حجم IOPS×درصد عملیات عملکرد خواندن) +(کل حجم IOPS × درصد عملیات عملکرد نوشتن)× مقدار RAID
(TOTAL IOps × % READ)+ ((TOTAL IOps × % WRITE) ×RAID Penalty)
برای نمونه به مثال زیر توجه کنید:
تعداد کل IOPS : 1000
حجم خواندن: 40 درصد
حجم نوشتن 60 درصد
سطح RAID: 5
(1000 x 0.4) + ((1000 x 0.6) x 4) = 400 + 2400 = 2800 IO’s
جمعبندی
همانطور که گفتیم برای پیشبینی میزان کارکرد سرور، خرید تجهیزات و گرفتن رتبه سرعت در گوگل اطلاع داشتن از IOPS تجهیزات ذخیرهسازی بسیار مهم است. اما باید توجه داشته باشید که این اندازهگیری زمانی اثربخش است که محیط استاندارد، مناسب و کارآمد ایجاد کنید، در غیر اینصورت فقط یک عملیات ریاضی بدون نتیجه دقیق را انجام دادهاید.
بههمین خاطر این اندازهگیری باید براساس عملکردها و محیط استاندارد انجام گیرد که بیشتر سازمانها براساس RAID و نرمافزارهای استاندارد، محاسبه IOPS را انجام میدهند. همچنین بسیاری از وبسایتهای معتبر خارجی برخی از IOPSهای تجهیزات سختافزاری را مشخص کردهاند که اگر شرایط کاریتان با محیط اندازهگیری شده این وبسایتها برابر باشد، میتوانند مراجع خوبی برای محاسبه IOPS باشند.