Redis و Intel در حال همکاری در عملکرد “لمسی صفر” و اتوماسیون پروفایل برای مقیاس توانایی Redis در پیگیری رگرسیون عملکرد و بهبود کارایی کد پایگاه داده هستند.
Redis و Intel در حال همکاری با عملکرد “لمسی صفر” و اتوماسیون پروفایل برای مقیاس توانایی Redis در پیگیری رگرسیون عملکرد و بهبود کارایی کد بانک اطلاعاتی هستند. مشخصات معیار Redis ، الزامات و انتظارات و انتظارات را برای تقویت استانداردهای عملکرد و مشاهده در مورد فن آوری های مرتبط با Redis توصیف می کند.
دلیل اصلی محبوبیت Redis به عنوان یک پایگاه داده با ارزش کلیدی ، عملکرد آن است ، همانطور که با زمان پاسخ زیر میلیسوت ثانیه برای نمایش داده شد. برای ادامه بهبود عملکرد در مؤلفه های Redis ، Redis و Intel با هم کار کردند تا چارچوبی را برای ایجاد خودکار تست های عملکرد ، جمع آوری تله متری ، پروفایل و تجسم داده ها پس از انجام کد ایجاد کنند. هدف ساده است: شناسایی تغییر در عملکرد در اسرع وقت.
اتوماسیون شرکای سخت افزاری مانند Intel را با
در این پست وبلاگ ، ما توضیح می دهیم که چگونه Redis و Intel در این نوع اتوماسیون همکاری می کنند. پروفایل “لمس صفر” می تواند پیگیری رگرسیون عملکرد را مقیاس کند و فرصت هایی برای بهبود کارایی کد پایگاه داده پیدا کند. هر دو Redis و Intel می خواهند فرصت های بهینه سازی نرم افزار و سخت افزار را شناسایی کنند. برای تحقق این امر ، ما تصمیم گرفتیم مجموعه ای از استانداردهای متقابل و متقابل جامعه را در کلیه امور مربوط به عملکرد و الزامات و انتظارات عملکرد و انتظارات تقویت کنیم. از دیدگاه نرم افزار ، ما هدف ما این است که به طور خودکار رگرسیون عملکرد را شناسایی کرده و درک عمیق تری از نقاط مهم برای یافتن فرصت های بهبود کسب کنیم. ما می خواهیم این چارچوب از نظر پوشش مورد آزمایش به راحتی قابل نصب ، جامع باشد و به راحتی قابل ارتقا باشد. هدف این است که معیارهای سفارشی ، ابزارهای معیار و مکانیسم های ردیابی/کاوش را در خود جای دهید. از دیدگاه سخت افزاری ، ما می خواهیم نسل های مختلف سیستم عامل ها را برای ارزیابی تأثیر ویژگی های جدید سخت افزاری مقایسه کنیم. علاوه بر این ، ما می خواهیم از راه دور جمع آوری کنیم و تست های “چه-اگر” مانند مقیاس بندی فرکانس ، مقیاس بندی هسته و پیش نویس های حافظه نهان را در تست های خاموش انجام دهیم. این به ما کمک می کند تا تأثیر هر یک از آن بهینه سازی ها را بر عملکرد Redis جدا کنیم و بهینه سازی های مختلف و CPU و تصمیمات معماری آینده را آگاه کنیم. بر اساس فرضیه توضیح داده شده در بالا ، ما مشخصات معیارهای معیارهای redis را ایجاد کردیم. به راحتی از طریق pypi و روش های ساده ای برای ارزیابی عملکرد Redis و سیستم های زیرین که Redis اجرا می شود ، به راحتی قابل نصب است. مشخصات معیار Redis در حال حاضر شامل ۶۰ معیار مجزا است که به چندین دستور و ویژگی می پردازند. با معیارهای سفارشی خود ، ابزارهای معیار و مکانیسم های ردیابی یا پروب به راحتی می توان آن را به راحتی گسترش داد. redis و اینتل به طور مداوم معیارهای چارچوب را اجرا می کنند. ما هر نتیجه معیار را با شاخه و برچسب تجزیه می کنیم و داده های عملکرد حاصل را در طول زمان و نسخه تفسیر می کنیم. علاوه بر این ، ما از ابزاری برای تأیید درخواست های کشش مربوط به عملکرد به پروژه Redis استفاده می کنیم. فرآیند تصمیم گیری شامل نتایج معیار و توضیحی در مورد اینکه چرا ما این نتایج را بدست آوردیم ، با استفاده از خروجی ابزارهای پروفایل و خروجی های پروفایل در یک حالت کاملاً خودکار “با لمس صفر”. نتیجه: ما می توانیم بینش های سطح سکو را ایجاد کنیم و تجزیه و تحلیل “چه-اگر” را انجام دهیم. این به لطف ردیابی و بررسی ابزارهای منبع باز ، مانند memtier_benchmark ، redis-benchmark ، linux perf_events ، bcc/bpf toolsing trodsing href = “https://github.com/brendangregg/flamegraph/” rel = “nofollow noopener” target = “_ blank”> repo شعله داده های تله متری مربوط به سخت افزار. اگر علاقه مند به جزئیات بیشتر در مورد نحوه استفاده از پروفایل با Redis هستید ، به ما بسیار دقیق راهنمای مهندسی عملکرد برای پروفایل on-cpu و em> em> بنابراین ، چگونه کار می کند؟ خوشحالم که پرسیدید. هدف اصلی مشخصات معیارهای Redis شناسایی تغییر در عملکرد در اسرع وقت است. این بدان معناست که ما می توانیم (یا باید) اثر عملکرد تغییر تحت فشار را ارزیابی کنیم ، همانطور که در معیارهای مختلف اندازه گیری می شود ، به محض اینکه مجموعه ای از تغییرات را به سمت git سوق دادیم. یک اثر مثبت این است که نگهدارنده های اصلی Redis کار ساده تری دارند. محرک معیارهای CI/CD با برچسب زدن یک درخواست خاص کشش (PR) با ‘Action Run: معیار‘ اتفاق می افتد. That trigger is then converted into an event (tracked within Redis) that initiates multiple build variants requests based upon the distinct platforms described in the معیارهای redis معیارهای مرجع مشخصات مشخصات . هنگامی که یک درخواست جدید ساخت و ساز دریافت می شود ، عامل ساخت (
تعهدات جدید به همان شاخه کار مجموعه ای از رویدادهای معیار جدید را تولید می کند و روند بالا را تکرار می کند. شکل ۱. معماری سکو از مرحله تحریک گردش کار از درخواست کشش تا زمانی که عوامل معیار چندگانه معیار نهایی و داده های پروفایل را تولید کنند. این چارچوب را می توان هم در مقدمات و هم در ابر مستقر کرد. در همکاری ما ، اینتل میزبان یک خوشه سرنوشت از سرورهای اختصاص داده شده به چارچوب تست عملکرد اتوماتیک همیشه در آن است (شکل ۲ را ببینید). شکل ۲. تنظیم آزمایشگاه اینتل خوشه حاوی شش سرور نسل فعلی (Icelake) و شش سرور نسل قبلی (Cascadelake) است که به یک سوئیچ ۴۰ گیگابایتی با سرعت بالا متصل می شوند (شکل ۳ را ببینید). سرورهای قدیمی برای آزمایش عملکرد در سراسر نسل های سخت افزاری و همچنین برای مشتری های تولید بار در معیارهای مشتری سرور استفاده می شوند. ما قصد داریم آزمایشگاه را گسترش دهیم تا چندین نسل از سرورها از جمله سیستم عامل های بتا (پیش از انتشار) برای ارزیابی زودهنگام و تجزیه و تحلیل “چه-اگر” از ویژگی های پلت فرم پیشنهادی را شامل شود. یکی از مزایای مشاهده شده در تنظیمات اختصاصی در پیش نمایش این است که می توانیم با تنوع کمتر اجرا شده به نتایج پایدارتر بدست آوریم. علاوه بر این ، ما انعطاف پذیری برای اصلاح سرورها برای اضافه کردن یا حذف اجزای موجود در صورت نیاز داریم. شکل ۳. پیکربندی سرور امروز ، مشخصات معیار Redis ، ابزار تست عملکرد de facto در Redis است که توسط تیم عملکرد استفاده می شود. تقریباً ۶۰ معیار در ادغام مداوم روزانه (CI) اجرا می شود ، و ما همچنین از آن برای تحقیقات عملکرد دستی استفاده می کنیم. ما از قبل مزایایی را می بینیم. در redis 7.0 و ۷.۲ چرخه توسعه ، مشخصات جدید به ما اجازه داده است تا پیشرفت های جدید جدید مانند موارد موجود در این درخواست های کشش را تهیه کنیم: به طور خلاصه ، کار فوق تا ۶۸ ٪ افزایش عملکرد در دستورات تحت پوشش اجازه می دهد. شکل ۴. نمونه تجسم گروه توسعه دهنده Redis Grafana پیگیری عملکرد هر پلت فرم/معیار/نسخه با گذشت زمان. سیستم مهندسی عملکرد فعلی ما به ما این امکان را می دهد تا تغییرات عملکرد را در طول چرخه توسعه تشخیص دهیم و توسعه دهندگان خود را قادر سازیم تا تأثیر تغییرات کد آنها را درک کنند. در حالی که ما پیشرفت چشمگیری داشته ایم ، هنوز چیزهای زیادی وجود دارد که دوست داریم پیشرفت کنیم. ما در تلاش هستیم تا توانایی جمع آوری داده های عملکرد را در گروهی از معیارها بهبود بخشیم. این به ما اجازه می دهد به سؤالاتی مانند: “پشته های برتر CPU در همه معیارها چیست؟” و “کمترین میوه آویزان برای بهینه سازی و تولید بیشترین تأثیر در تمام دستورات چیست؟” علاوه بر این ، تجزیه و تحلیل پایه ما در مقابل مقایسه عمیق به محاسبه مبتنی بر واریانس بستگی دارد. ما قصد داریم به روشهای تجزیه و تحلیل آماری بهتر نزدیک شویم که تجزیه و تحلیل مبتنی بر روند را در بیش از گروهی از نقاط داده و برای تجزیه و تحلیل ریز تر فراهم می کند تا از “مسئله جوشاندن” محیط های پر سر و صدا ابر جلوگیری شود. Redis API بیش از ۴۰۰ دستور دارد. ما باید برای دید بیشتر و عملکرد بهتر در کل عملکرد API فشار بیاوریم. و ما باید این کار را انجام دهیم در حالی که بر روی دستورات بیشترین استفاده نیز تمرکز می کنیم ، همانطور که توسط بازخورد جامعه و مشتری تعیین می شود. ما انتظار داریم گزینه های استقرار ، از جمله معیار سطح خوشه ، تکثیر و موارد دیگر را گسترش دهیم. ما قصد داریم قابلیت های تجسم و تجزیه و تحلیل را غنی سازی کنیم و قصد داریم آزمایش را به سیستم عامل های سخت افزاری بیشتر ، از جمله سیستم عامل های اولیه (قبل از انتشار) از اینتل گسترش دهیم. هدف ما این است که به یک استفاده بزرگتر از سکوی عملکرد خود در سراسر جامعه و گروه توسعه دهنده Redis رشد کنیم. هرچه داده های بیشتر و دیدگاههای متفاوت تری که به این پروژه می رسیم ، احتمال بیشتری برای ارائه سریعتر redis . یک مشخصات استاندارد: انگیزه و الزامات
اجرای مشخصات استاندارد
معماری نرم افزار
پیکربندی سخت افزار آزمایشگاه اینتل
به جلو نگاه می کنید
کار آینده
پست های مرتبط
معرفی مشخصات معیار Redis/Intel برای آزمایش عملکرد ، پروفایل و تجزیه و تحلیل
معرفی مشخصات معیار Redis/Intel برای آزمایش عملکرد ، پروفایل و تجزیه و تحلیل
معرفی مشخصات معیار Redis/Intel برای آزمایش عملکرد ، پروفایل و تجزیه و تحلیل