محاسبه IOPS مورد نیاز برنامه های کاربردی

مشخص کردن نیازمندی های ذخیره سازی برای برنامه های کاربردی به دو فاکتور، ظرفیت و عملکرد I/O مربوط به دستگاه ذخیره سازی بستگی دارد. ظرفیت به آسانی، با اندازه و تعداد سیستم های فایل و اجزا دیتابیس که به وسیله برنامه های کاربردی استفاده می شوند تخمین زده می شود. اندازه، ویژگی ها و تعداد I/O های تولیدی برنامه های کاربردی در اوج زمان کار، دیگر فاکتورهایی هستند که روی عملکرد، زمان پاسخگویی I/O و طراحی سیستم ذخیره سازی تاثیر گذار هستند.

 

زمان سرویس دهی دیسک)  (Ts برای I/O ، یک پارامتر کلیدی عملکرد دیسک می باشد، Ts به همراه میزان استفاده دیسک (U) زمان پاسخگویی I/O به یک برنامه کاربردی را تعیین می کنند. زمان سرویس دهی کلی دیسک برابر با جمع پارامترهای زیر می باشد.

 seek time + rotational latency + transfer time

 

باید توجه داشت که transfer time بر اساس block size I/O و میزان transfer داده ها در یک دیسک محاسبه می شود. بعنوان مثال اگر یک I/O با block size برابر 32 KB و میزان transfer داده های دیسک برابر با 40MB/s باشد، بنابراین transfer time برابر با 32 KB/40 MB می باشد.

 

 Ts زمانی که توسط کنترلر I/O برای سرویس دادن صرف می شود را مشخص می کند، بنابراین حداکثر I/O که در ثانیه (IOPS) سرویس دهی می شود برابر با 1/Ts می باشد. البته این محاسبه IOPS بر اساس حداکثر استفاده کنترلر I/O (نزدیک به 100 درصد) محاسبه شده است. در صورتیکه برنامه های کاربردی درخواست زمان پاسخگویی سریعتر را داشته باشند، میزان استفاده فضای دیسک باید زیر 70 درصد باشد. بنابراین کل دیسک های مورد نیاز برای یک برنامه کاربردی به صورت زیر محاسبه  می شود:

Max (DC , DP)

 DC = دیسک های مورد نیاز برای برآورده سازی ظرفیت

DP = دیسک های مورد نیاز برای برآورده سازی عملکرد

 

 

مثال: شرایطی را در نظر بگیرید که در آن ظرفیت مورد نیاز برای یک برنامه کاربردی 1.6 TB می باشد و تعداد IOPS مورد نیاز آن در اوج کار 9,000 می باشد. فروشنده دیسک مشخص می کند که یک درایو 146 GB از نوع 15,000 rpm قادر به اجرای حداکثر 180= IOPS می باشد.

تعداد دیسک های مورد نیاز برای برآورده سازی نیازمندی های ظرفیت (DC) به روش زیر بدست می آید:

ظرفیت هر دیسک /  کل ظرفیت مورد نیاز = تعداد دیسک های برآورده سازی ظرفیت  (DC)

1.46 TB / 146 GB = 10 DC =

 

 

تعداد دیسک های مورد نیاز برای برآورده سازی نیازمندی های عملکرد(DP) به روش زیر بدست می آید:

 IOPS هر دیسک IOPS / برنامه کاربردی در زمان اوج کار = تعداد دیسک های برآورده سازی عملکرد (DP)

9000 / 180 = 50 DP =

 

اگر برنامه کاربردی حساس به زمان پاسخگویی باشد، تعداد IOPS هایی یک دیسک می تواند اجرا کند باید بر اساس 70 درصد میزان استفاده دیسک محاسبه شود، که با درنظر گرفتن این فاکتور تعداد IOPS که یک دیسک می تواند در 70 درصد استفاده اجرا کند برابر 180 * 0.7 = 126 می باشد. بنابراین تعداد دیسک های مورد نیاز برای برآورده سازی نیازمندی های IOPS برنامه کاربردی مورد نیاز نیاز است برابر با 9000 / 126 = 72 می باشد.

 

 

در نتیجه تعداد دیسک های مورد نیاز برای برآورده سازی نیازمندی های برنامه کاربردی Max (10,72)= 72 می باشد. یعنی که 10 عدد دیسک از نظر ظرفیت کافی هستند، ولی تعداد دیسک های مورد نیاز برای از نظر عملکرد 72 عدد می باشد.

البته برای بهینه سازی نیازمندی های عملکرد، راهکارهای متعدد دیگری مانند native command queuning ، استفاده از درایوهای فلش، RAID و حافظه کش در محیط های (real-time) قابل پیاده سازی هستند.