زیرساخت خصوصی فراساحلی
ذخیره‌سازی و بازیابیبنیاد · 4 دقیقه مطالعه

چه زمانی NVMe برای برنامه شما تفاوت ایجاد می‌کند

ظرفیت، تأخیر و توان عبور را از هم تشخیص دهید تا یک برچسب ذخیره‌سازی سریع‌تر به یک مشکل واقعی برنامه پاسخ دهد.

نوشته SwissOctet Editorial
پاسخ مستقیم

NVMe می‌تواند به یک بار کاری حساس به ورودی/خروجی کمک کند، اما ابتدا تأیید کنید که برنامه در انتظار ذخیره‌سازی است. تأخیر نماینده، همزمانی و زمان‌بندی برنامه را مقایسه کنید؛ یک برچسب پروتکل سریع‌تر همه گلوگاه‌ها را برطرف نمی‌کند.

01

عملکرد ذخیره‌سازی چیزی بیش از یک عدد انتقال است

وقتی یک برنامه کند به نظر می‌رسد، وسوسه‌انگیز است که فوراً ذخیره‌سازی سریع‌تری بخرید. ابتدا بفهمید برنامه در انتظار چه چیزی است. پایگاه داده‌ای که رکوردهای کوچک بسیاری را جستجو می‌کند، الگوی دسترسی متفاوتی از سرویسی دارد که یک آرشیو بزرگ را می‌خواند. معیارهای مفید شامل زمان پاسخ برای عملیات فردی، تعداد عملیات تکمیل‌شده و مقدار پایدار داده جابه‌جاشده است.

NVMe یک پروتکل ذخیره‌سازی است که حول رسانه‌های حالت جامد و ورودی/خروجی موازی کارآمد طراحی شده است. می‌تواند مزایایی نسبت به رابط‌های ذخیره‌سازی قدیمی‌تر ارائه دهد، به‌ویژه جایی که عملیات بسیاری همزمان رخ می‌دهند. نام پروتکل یک قابلیت مسیر ذخیره‌سازی را توصیف می‌کند؛ این وعده‌ای نیست که هر درخواست برنامه سریع‌تر تمام می‌شود.

02

کاری را که به دیسک می‌رسد پیدا کنید

به پرس‌وجوهای پایگاه داده، خطاهای حافظه نهان، پردازش بارگذاری، نمایه‌های جستجو و مصنوعات ساخت نگاه کنید. اگر برنامه مکرراً در انتظار خواندن‌های دیسک یا نوشتن‌های بادوام است، ذخیره‌سازی ممکن است یک محدودیت معنادار باشد. اگر در انتظار یک API راه دور است یا بیشتر زمان خود را صرف انجام کار CPU می‌کند، تغییر رسانه ذخیره‌سازی ممکن است اثر کمی بر تأخیر قابل مشاهده داشته باشد.

حافظه نیز می‌تواند تقاضای ذخیره‌سازی را تغییر دهد. مجموعه داده کاری‌ای که در یک حافظه نهان مناسب جا می‌شود ممکن است از خواندن‌های بسیاری اجتناب کند. نمایه‌سازی بهتر یا حذف پرس‌وجوهای تکراری ممکن است ورودی/خروجی را مؤثرتر از یک ارتقای سخت‌افزاری کاهش دهد. تغییرات نرم‌افزاری و انتخاب‌های منابع را بخش‌هایی از همان بررسی در نظر بگیرید.

03

یک بار کاری نماینده را اندازه بگیرید

یک آزمون کپی ترتیبی برای فایل‌های بزرگ مفید است، اما همه بارهای کاری پایگاه داده را توصیف نمی‌کند. اندازه عملیات، ترکیب خواندن به نوشتن و همزمانی‌ای را که نماینده پروژه است ثبت کنید. مجموعه داده‌ها و شرایط آزمون را قابل مقایسه نگه دارید. نتیجه‌ای از یک ماشین عمدتاً خالی می‌تواند با نتیجه‌ای که در یک استقرار شلوغ یا بازه پشتیبان‌گیری تولید شده متفاوت باشد.

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

04

برای کارهای نگهداری جا بگذارید

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

هنگام خواندن یک مشخصات، دیسک بوت را از ظرفیت یک سرویس ذخیره‌سازی‌محور جدا کنید. یک حجم بوت کوچک NVMe باعث نمی‌شود یک ناحیه ذخیره‌سازی بسیار بزرگ‌تر از نظر عملکرد یکسان باشد. توضیح هر مؤلفه ذخیره‌سازی را بخوانید و وقتی چیدمان موردنظر روشن نیست درخواست شفاف‌سازی کنید.

05

یک سناریوی عملی: گزارشی که رکوردهای بسیاری می‌خواند

فرض کنید یک برنامه گزارش‌گیری هنگام خواندن مجموعه بزرگی از رکوردهای کوچک کند است. تیم پیش از انتخاب یک نمایه ذخیره‌سازی متفاوت، طرح‌های پرس‌وجو، رفتار حافظه نهان و انتظارهای ورودی/خروجی را بررسی می‌کند. خواندن‌های تکراری‌ای را کشف می‌کند که می‌توان از طریق نمایه‌سازی کاهش داد، سپس کار باقی‌مانده را اندازه می‌گیرد. این کار یک بهبود نرم‌افزاری را از پرسش اینکه آیا مسیر ذخیره‌سازی همچنان گزارش را محدود می‌کند جدا می‌کند.

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

تیم همچنین برای صادرات موقت جا رزرو می‌کند و پشتیبان مستقل خود را تأیید می‌کند. پاسخ‌گویی NVMe جای آن تصمیم‌های ظرفیت و بازیابی را نمی‌گیرد. اگر گزارش همچنان توسط یک سرویس خارجی یا یک مرحله محاسباتی سنگین محدود می‌شود، ارتقای ذخیره‌سازی ممکن است مدت آن را تغییر ندهد. این سناریو یک روش را نشان می‌دهد؛ هیچ محک یا سرعت تضمین‌شده‌ای برای یک پیکربندی SwissOctet ارائه نمی‌کند.

پرسشمشاهده مفیداز این نتیجه‌گیری بپرهیزید
آیا ذخیره‌سازی محدودیت است؟انتظارهای برنامه و فعالیت ورودی/خروجیهر درخواست کند به NVMe نیاز دارد
آیا تغییر کمک می‌کند؟زمان‌های تکمیل گزارش قابل مقایسهسرعت ترتیبی برابر با سرعت پایگاه داده است
آیا سیستم قابل بازیابی است؟یک بازیابی مستقل موفقذخیره‌سازی سریع یک پشتیبان است
06

دوام را از سرعت جدا نگه دارید

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

از Pulse NVMe زمانی استفاده کنید که منابع آن با یک پروژه حساس به ورودی/خروجی متناسب باشد، یا وقتی به یک ماشین فیزیکی نیز نیاز دارید پیکربندی‌های اختصاصی NVMe را مقایسه کنید. برای آرشیوهای بزرگ، Vault Storage را بر اساس ظرفیت و مشخصات انتقال آن ارزیابی کنید. بر پایه شواهد درباره بار کاری انتخاب کنید، سپس نتیجه را پس از استقرار تأیید کنید، نه اینکه فرض کنید یک برچسب همه گلوگاه‌ها را برطرف می‌کند.

آن را به عمل تبدیل کنید

چک‌لیست عملی شما.

  • انتظارهای دیسک را در برنامه شناسایی کنید.
  • تأخیر، عملیات و توان عبوری را جدا کنید.
  • همزمانی و داده نماینده را آزمایش کنید.
  • فضای آزاد را برای مهاجرت‌ها و صادرات رزرو کنید.
  • یک پشتیبان مستقل و آزمایش‌شده نگه دارید.
پرسش‌های رایج

جزئیاتی که اهمیت دارند.

آیا NVMe همیشه بهترین انتخاب ذخیره‌سازی است؟+

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

آیا یک آزمون کپی می‌تواند زمان پاسخ پایگاه داده را پیش‌بینی کند؟+

به‌تنهایی خیر. پایگاه‌های داده ممکن است از اندازه‌های عملیات، الگوهای دسترسی و رفتارهای همگام‌سازی متفاوتی استفاده کنند.

آیا NVMe پشتیبان‌گیری را کم‌اهمیت‌تر می‌کند؟+

خیر. سرعت ذخیره‌سازی در برابر حذف، یک استقرار معیوب یا از دست رفتن محیط محافظت نمی‌کند.

منابع اصلی

به منبع بروید.

این منابع از مفاهیم فنی این راهنما پشتیبانی می‌کنند. پیش از تغییر یک سیستم تولیدی، مستندات جاری را دنبال کنید.

  1. NVM Express: پرسش‌های متداول مشخصات nvmexpress.org
  2. fio: مستندات آزمون‌گر انعطاف‌پذیر ورودی/خروجی fio.readthedocs.io

راهنمایی تحریریه توسط SwissOctet. مثال‌ها نمایشی هستند. مشخصات خدمات، گزینه‌های موجود و شرایط قراردادی باید جداگانه تأیید شوند.

دانش را متصل کنید

زیرساخت مرتبط.

رشته را نگه دارید

یادداشت‌های میدانی بعدی شما.

کاوش همه راهنماها
یادداشت میدانی / 01
ذخیره‌سازی و بازیابیپیشرفته

عملکرد NVMe را بدون گمراه کردن خودتان اندازه‌گیری کنید

الگوی ورودی/خروجی را تعریف کنید، اثرات کش را کنترل کنید و توزیع‌های تأخیر را بررسی کنید، پیش از آنکه از یک آزمون دیسک نتیجه‌ای درباره برنامه بگیرید.

6 دقیقه مطالعهراهنما را بخوانید
یادداشت میدانی / 02
ذخیره‌سازی و بازیابیکاربردی

اسنپ‌شات‌ها و پشتیبان‌گیری‌ها: شکستی را انتخاب کنید که باید از آن جان سالم به در ببرید

نقاط بازیابی، مرزهای شکست و سازگاری برنامه را مقایسه کنید، نه اینکه فرض کنید یک اسنپ‌شات و یک پشتیبان مستقل همان محافظت را ارائه می‌دهند.

4 دقیقه مطالعهراهنما را بخوانید
یادداشت میدانی / 03
ذخیره‌سازی و بازیابیبنیاد

ذخیره‌سازی شیء، فایل یا بلوک: رابطی را انتخاب کنید که برنامه شما نیاز دارد

پیش از تبدیل یک نیاز ظرفیت به معماری برنامه، رابط‌های ذخیره‌سازی، معناشناسی دسترسی و مسئولیت‌های عملیاتی را از هم متمایز کنید.

4 دقیقه مطالعهراهنما را بخوانید