دیکشنری ای دیتا : DWPD چیست؟

DWPD (Drive Writes Per Day) چیست ؟

این مقاله به توضیح DWPD (حداکثر تعداد نوشتن‌ها روی کل درایو SSD در طول یک روز) و روش محاسبه‌ی صحیح آن درباره‌ی SSD می‌پردازد. ما عوامل مؤثر بر DWPD و روش‌های بهبود آن را بررسی خواهیم کرد. همچنین، توضیح خواهیم داد که چه نوع برنامه‌هایی به SSD هایی با نرخ بالاتر DWPD احتیاج دارند.

برای تعیین اینکه آیا یک SSD برای شما مناسب است یا نه، علاوه بر در نظر گرفتن ظرفیت و کارایی، طول عمر نیز فاکتور بسیار مهمی است. طول عمر یک SSD معمولا به مقدار داده‌های نوشته شده مربوط می‌شود ، هرچقدر نوشتن بیشتر انجام شود، سرعت فرسوده شدن SSD بیشتر خواهد شد. دو شاخص اصلی برای اندازه‌گیری طول عمر یک SSD وجود دارد. یکی TBW است (Total Bytes Written-مجموع بایت‌های نوشته شده) که نشان می‌دهد یک SSD قبل از اینکه خراب شود، می‌تواند چقدر داده بنویسد. از آنجایی که اکثر SSD ها می‌توانند از ده‌ها تا صدها ترابایت داده بنویسند، TBW می‌تواند Tera Bytes Written (ترابایت‌های نوشته شده) را هم نمایندگی کند که به مجموع تعداد ترابایت‌هایی اشاره دارد که یک SSD می‌تواند بنویسد. شاخص دیگر DWPD است که تعداد دفعاتی را مشخص می‌کند که یک کاربر می‌تواند در دوره‌ی ضمانت، به صورت روزانه در کل دیسک بنویسد. فرض کنیم ظرفیت یک SSD معادل 256 گیگابایت و مقدار DWPD برابر 1.5 باشد. تا زمانی که مقدار داده‌های نوشته شده توسط کاربر، کمتر از 384GB = 1.5 × 256GB در روز باشد، SSD در طول مدت گارانتی آسیب نخواهد دید.

TBW و DWPD مربوط به SSD های مختلف، معمولا به فریمور SSD، نوع NAND Flash و هداسپیس درایو اس اس دی (SSD headspace) وابسته است. به طور کلی فرمول به این شرح است:

محاسبه DWPD محاسبه DWPD

NAND Size (با واحد ترابایت) به کل حجم NAND Flash اشاره دارد که به SSD متصل است. ترابایت‌ها به عنوان واحد اندازه گیری در نظر گرفته می‌شوند. PE Cycle تعداد دفعاتی است که یک NAND می‌تواند نوشته و پاک شود؛ WAF مربوط به فاکتور تقویت نوشتن (Write Amplification Factor) است، در حالی که Wear Level Factor به پارامتر میانگین پاک کردن ​​اشاره دارد. WAF و Wear Level Factor عمدتا به الگوریتم فریمور SSD مرتبط می‌شوند. SSD Capacity (با واحد ترابایت) ظرفیت SSD است؛ Warranty Day تعداد روزهایی است که گارانتی دارد. فرمول بالا نشان می‌دهد که برای افزایش DWPD یک SSD، علاوه بر بهبود الگوریتم فریمور، فقط دو روش وجود دارد؛ یکی استفاده از NAND Flash با چرخه PE (PE Cycle) بالاتر است؛ برای مثال، PE Cycle برای SLC NAND معمولا 20 هزار تا 60 هزار است، در حالی که برای TLC NAND فقط هزار تا 2 هزار است. اما باید توجه داشت که قیمت SLC NAND از قیمت TLC NAND بالاتر است. گزینه‌ی دیگر، افزایش هدروم (headroom) یک SSD است که به معنای Over Provisioning (OP) است. هر دوی این روش‌ها می‌توانند قیمت SSD را افزایش دهند. بنابراین، قیمت SSD هایی با DWPD بالاتر، معمولا بیشتر است.

محاسبه DWPD

به منظور بهبود عملکرد و ثبات SSD های موجود، برخی از بلوک‌های TLC NAND اغلب به عنوان  شبه SLC در نظر گرفته می‌شوند تا به عنوان حافظه کش SLC استفاده گردند. کش‌های SLC به دو نوع تقسیم می‌شود که شامل Static SLC و Dynamic SLC است. همانطور که در شکل بالا نشان داده شده، SLC استاتیک (Static SLC) بدین معناست که این بلوک‌ها همیشه به عنوان Pseudo SLC استفاده می‌شوند. در عین حال، SLC داینامیک (Dynamic SLC) از نظر تئوری می‌تواند به صورت داینامیک و پویا به TLC سوییچ کند. در صورت استفاده از این راه‌حل، در روش محاسبه DWPD مشکلاتی به وجود می‌آید. از آنجایی که Pseudo SLC با PE Cycle مربوط به TLC بسیار متفاوت است، هنگام محاسبه WAF آیا اثر حافظه کش SLC را شامل می‌شود؟ الگوریتم‌های مورد استفاده توسط هر تامین‌کننده‌ی کنترلر نیز متفاوت است. برای اجتناب از این مشکلات، باید از فرمول زیر برای محاسبه DWPD استفاده شود:

محاسبه DWPD

فرمول بالا SLC استاتیک را به طور جداگانه از TLC به عنوان دو منطقه‌ی مجزا محاسبه می‌کند. از آنجایی که این دو منطقه Wear Leveling (یکسان‌سازی پوشش) را روی یکدیگر اجرا نمی‌کنند، زمانی که هر منطقه به PE Cycle برسد، عمر SSD به پایان می‌رسد. بنابراین حداقل مقدار TBW بین دو منطقه در نظر گرفته می‌شود و در آخر DWPD محاسبه می‌گردد. موارد زیر باید لحاظ شود:

چون چرخه PE در منطقه Dynamic SLC باید برابر با TLC باشد و Wear Leveling را با بلوک TLC اجرا کند، پس لازم است که محاسبه TBW را ترکیب نماید. برخی از کش‌های SLC به صورت round-robin یا همان RR مرتب شده‌اند. تعداد پاک کردن هر بلوک یکسان است؛ بنابراین Wear Level Factor برابر با 1 است. لطفا توجه داشته باشید که اگر فرمول فوق فقط یک منطقه داشته باشد، با فرمول قبلی که پیش‌تر اشاره کردیم، یکسان خواهد بود.

برای محاسبه‌ی الگوی نوشته شده توسط DWPD، شرکت JEDEC دارای دو نوع تعریف برای حجم بارگذاری (workload) است؛ یکی حجم بارگذاری متعلق به برنامه‌هایی از نوع مصرف‌کننده (consumer) است. مورد دیگر، حجم بارگذاری تجاری (enterprise workload) است که به SSD هایی که عموما برای کسب‌وکار استفاده می‌شوند، اشاره دارد. این دو نوع حجم بارگذاری به طور تصادفی در محدوده‌ای نوشته شده است که تأثیر بسیار زیادی بر WAF یک SSD دارد.

پس از محاسبه DWPD، برای تأیید صحت داده‌ها، چندین روش وجود دارد که در ادامه ذکر می‌شود:

  1. روی SSD بنویسید تا زمانی که آسیب ببیند؛ اما عیب کار این است که مدت زمان تست بسیار طولانی می‌شود.
  2. از آنالیزور پروتکل NAND استفاده کنید. تعداد پاک‌کردن NAND را تصدیق کنید تا مشخص شود که تعداد پاک‌کردنی که توسط کنترلر SSD ارائه شده، صحیح است. ‌
  3. عملکرد یکسان‌سازی پوشش (Wear Leveling) از SSD را به طور موقت غیرفعال کنید و نوشتن را در مناطق کوچک متمرکز نمایید؛ اما دقت این روش، به الگوریتم SSD بستگی دارد.

و به صورت خلاصه اینکه :

عموما در برنامه‌های کلود و نظارتی، به دلیل نوشتن مکرر، لازم است که یک SSD با DWPD بالا استفاده شود و معمولا مقدار DWPD باید بین 1 تا 3 باشد. در مورد کاربران عمومی یا برای برنامه‌هایی که بیشتر بر خواندن (read) متمرکز هستند، به این دلیل که بعید است به طور روزانه مقادیر زیادی از داده‌ها نوشته شود، انتخاب یک SSD با DWPD از 0.2 تا 0.5 کفایت می‌کند.