قلعه بر روی تقاضا: یک چنگال میکرو ثانیه برای برنامه های کاربردی حساس و حساس به تأخیر

ساخت وبلاگ

این هشدار با موفقیت اضافه شده است و به شما ارسال می شود: هر زمان که رکوردی که انتخاب کرده اید استناد شده است ، به شما اطلاع داده می شود.

برای مدیریت تنظیمات برگزیده هشدار خود ، روی دکمه زیر کلیک کنید. هشدارهای من را مدیریت کنید

هشدار استناد جدید!

لطفا وارد حساب کاربری خود شوید

صرفه جویی در اتصال

نام

Eurosys '21: مجموعه مقالات شانزدهمین کنفرانس اروپا در زمینه سیستم های رایانه ای

قلعه بر روی تقاضا: یک چنگال میکرو ثانیه برای برنامه های کاربردی حساس و حساس به تأخیر صفحات 540-555

خلاصه

Fork مدتهاست که فراخوانی سیستم ایجاد فرآیند برای UNIX است. در بدو تأسیس ، چنگال به دلیل استفاده از کپی بر روی حافظه به اشتراک گذاشته شده بین فرآیندهای والدین و کودک ، به عنوان یک تماس سیستم کارآمد مورد استقبال قرار گرفت. با این حال ، تقاضای حافظه برنامه از روزهای ابتدایی به شدت افزایش یافته است و هزینه ای که توسط چنگال متحمل شده است برای تنظیم حافظه مجازی (به عنوان مثال ، جداول صفحه کپی) اکنون نگرانی دارد ، حتی برای برنامه هایی که فقط به صدها MBS حافظه نیاز دارند. در عمل ، عملکرد Fork در حال حاضر بازده و تأخیر سیستم را در طیف وسیعی از موارد استفاده می کند که فرآیندهای بزرگ مانند سیستم های تحمل گسل ، چارچوب های بدون سرور و چارچوب های آزمایش را چنگ می زند.

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

ما در طیف وسیعی از اندازه های میکرو و بارهای کاری در دنیای واقعی ، قلعهای تقاضا را ارزیابی کردیم. قلع در صورت تقاضا به طور قابل توجهی زمان فراخوان چنگال را کاهش می دهد و مقیاس پذیری را بهبود بخشیده است. برای فرآیندهای با 1 گیگابایت حافظه اختصاص داده شده ، قلعه روی تقاضا دارای مزیت عملکرد 65 × نسبت به چنگال است. ما همچنین در مورد تست ، فازی و عکس گرفتن از برنامه های مشهور ، به صورت تقاضا ، ارزیابی کردیم و بهبود عملکرد توان اجرای را بین 59 ٪ تا 226 ٪ و تا 99 ٪ کاهش تأخیر در دعوت به دست آوردیم.

منابع

  1. 2014. مقدمه ای برای صفحات مرکب [lwn. net]. https://lwn. net/articles/619514/ Google Scholar
  2. 2015. پروفایل هسته لینوکس با Perf. https://perf. wiki. keel. org/index. php/tutorial Google Scholar
  3. 2015. SQLITE: FUZZERSHELL. C در [6BF67376]. https://www. sqlite. org/src/file؟name=tool/fuzzershell. c& ci=6bf673767b8e5ed Google Scholar
  4. 2016. Triforce Project: AFL را روی همه چیز اجرا کنید! https://www. nccgroup. com/us/about-us/newsroom-and-events/blog/2016/june/project-triforce-run-afl-on-everything/ Google Scholar
  5. 2017. Spawn () ناهمزمان نیست ، حلقه رویداد را برای 2-3 ثانیه مسدود می کند · شماره #14917 · NodeJS/Node. https://github. com/nodejs/node/issues/14917 Google Scholar
  6. 2018. 819228 - استفاده از posix_spawn () را در Linux - Chromium در نظر بگیرید. https://bugs. chromium. org/p/chromium/issues/detail؟id=819228 Google Scholar
  7. 2019. AFL - نکاتی برای بهینه سازی عملکرد. https://github. com/google/afl/blob/master/docs/perf_tips. txt Google Scholar
  8. 2019. لوپ فازی آمریکایی. https://github. com/google/afl Google Scholar
  9. 2020. راهنمای کاربر تقلید سیستم QEMU. https://www. qemu. org/docs/master/system/index. html Google Scholar
  10. 2021. پروژه سرور Apache HTTP. https://httpd. apache. org/ Google Scholar
  11. 2021. Prefork - Apache HTTP Server نسخه 2. 4. https://httpd. apache. org/docs/2. 4/mod/prefork. html Google Scholar
  12. برخط. صفحات عظیم - بایگانی هسته لینوکس. https://www. keel. org/doc/documentation/vm/hugetlbpage. txt Google Scholar
  13. برخط. Libfuzzer: کتابخانه ای برای آزمایش فازی با هدایت پوشش. https://llvm. org/docs/libfuzzer. html#libfuzzer-a-library-for-coverage-guided-fuzz-testing-testing
  14. Istemi Ekin Akkus ، Ruichuan Chen ، Ivica Rimac ، Manuel Stein ، Klaus Satzke ، Andre Beck ، Paarijaat Aditya و Volker Hilt. 2018. ماسه: به سمت محاسبات بدون سرور با کارایی بالا. در کنفرانس فنی سالانه USENIX 2018 (2018). 923--935. https://www. usenix. org/conference/atc18/presentation/akkus Google Scholar
  15. بازو محدود2017. ARMV8-A ترجمه آدرس. https://static. docs. arm. com/100940/0100/armv8_a_address٪20Translation_100940_0100_en. pdf Google Scholar
  16. AWS2020. سهمیه AWS Lambda. https://docs. aws. amazon. com/lambda/latest/dg/gettingstarted-limits. html Google Scholar
  17. توماس دبلیو بار ، آلن ال. کاکس ، و اسکات ریکنر. 2010. ذخیره ترجمه ترجمه: پرش ، راه رفتن (جدول صفحه). 38 ، 3 (2010) ، 48--59. کتابخانه Scholardigital Google
  18. اندرو باومن ، جاناتان آپااوو ، اورران کریگر و تیموتی روسکو. 2019. یک چنگال () در جاده. در مجموعه مقالات کارگاه در مورد موضوعات داغ در سیستم عامل ها (نیویورک ، نیویورک ، ایالات متحده) (HOTOS '19). انجمن ماشین آلات محاسباتی ، 14--22. کتابخانه Scholardigital Google
  19. Silas Boyd-Wickizer ، Haibo Chen ، Rong Chen ، Yandong Mao ، Frans Kaashoek ، Robert Morris ، Aleksey Pesterev ، Lex Stein ، Ming Wu ، Yuehua Dai ، Yang Zhang و Zheng Zhang. 2008. کوری: یک سیستم عامل برای بسیاری از هسته ها. در مجموعه مقالات هشتمین کنفرانس USENIX در مورد طراحی و اجرای سیستم های عامل (ایالات متحده ، 2008-12-08) (OSDI'08). انجمن Usenix ، 43--57. گوگل دانشکده
  20. Silas Boyd-Wickizer ، M. Frans Kaashoek ، Robert Morris و Nickolai Zeldovich. 2014. Oplog: کتابخانه ای برای مقیاس بندی ساختارهای داده سنگین به روزرسانی.(2014). https://dspace. mit. edu/handle/1721. 1/89653 Google Scholar
  21. Austin T. Clements ، M. Frans Kaashoek و Nickolai Zeldovich. 2013. RADIXVM: فضاهای آدرس مقیاس پذیر برای برنامه های چند رشته ای. در مجموعه مقالات هشتمین کنفرانس اروپایی ACM در سیستم های رایانه ای (پراگ ، جمهوری چک ، 2013-04-15) (Eurosys '13). انجمن ماشین آلات محاسباتی ، 211--224. کتابخانه Scholardigital Google
  22. مایکل جیمز کولاویتا. 2020. Hyperfork: بهبود تأخیر و توان بدون سرور از طریق کلون کردن فلش ماشین مجازی.(2020). https://dash. harvard. edu/handle/1/37364698 Google Scholar
  23. Couchbase2020. غیرفعال کردن صفحات عظیم شفاف (THP) |اسناد Couchbase. https://docs. couchbase. com/server/current/install/thp-disable. html Google Scholar
  24. اسناد هسته لینوکس. برخط. پشتیبانی از صفحه بزرگ شفاف. https://www. keel. org/doc/documentation/vm/transhuge. txt Google Scholar
  25. Dong du ، Tianyi Yu ، Yubin Xia ، Binyu Zang ، Guanglu Yan ، Chenggang Qin ، Qixuan Wu و Haibo Chen. 2020. Catalyzer: راه اندازی زیر میلیسوت ثانیه برای محاسبات بدون سرور با بوت شدن کمبود اولیه. در مجموعه مقالات بیست و پنجمین کنفرانس بین المللی پشتیبانی معماری از زبان های برنامه نویسی و سیستم عامل ها (نیویورک ، نیویورک ، ایالات متحده ، 2020-03-09) (ASPLOS '20). انجمن ماشین آلات محاسباتی ، 467--481. کتابخانه Scholardigital Google
  26. پدرو فونسکا ، چنگ لی و رودریگو رودریگز. 2011. یافتن اشکالات همزمانی پیچیده در برنامه های بزرگ چند رشته ای. در مجموعه مقالات ششمین کنفرانس سیستم های رایانه ای (نیویورک ، نیویورک ، ایالات متحده ، 2011-04-10) (11 یوروسی). انجمن ماشین آلات محاسباتی ، 215--228. کتابخانه Scholardigital Google
  27. Pedro Fonseca ، Rodrigo Rodrigues و Bjö B. Brandenburg. 2014. اسکی: افشای اشکالات همزمانی هسته از طریق اکتشاف برنامه های سیستماتیک. در مجموعه مقالات یازدهمین کنفرانس USENIX در مورد طراحی و اجرای سیستم های عامل (Broomfield ، CO ، 2014-10-06) (OSDI'14). انجمن Usenix ، 415--431. گوگل دانشکده
  28. ویل گلوزر2021. WG/WRK. https://github. com/wg/wrk Google Scholar
  29. گوگل. 2015. Google/Syzkaller. https://github. com/google/szkaller Google Scholar
  30. گوگل. 2019. ابزار دقیق مبتنی بر LLVM برای AFL-Fuzz. https://github. com/google/afl Google Scholar
  31. گوگل. 2020. Honggfuzz. https://github. com/google/honggfuzz Google Scholar
  32. گوگل. برخط. OSS-FUZZ: فازی مداوم برای نرم افزار منبع باز. گوگل دانشکده
  33. Zhichao Hua ، Dong du ، Yubin Xia ، Haibo Chen و Binyu Zang. 2018. EPTI: دفاع کارآمد در برابر حمله Meltdown برای VMS بدون استفاده. 255--266. https://www. usenix. org/conference/atc18/presentation/hua Google Scholar
  34. اینتل2013. Libipt. https://github. com/intel/libipt Google Scholar
  35. اینتل2017. صفحه بندی 5 سطح و EPT 5 سطح. https://software. intel. com/sites/default/files/managed/2b/80/5-level_paging_white_paper. pdf Google Scholar
  36. اینتل2020. Intel 64 و IA-32 معماری کتابچه راهنمای توسعه دهنده نرم افزار جلد 3A: راهنمای برنامه نویسی سیستم ، قسمت 1. https://www. intel. com/content/www/us/en/develop/download/intel-64-or--IA-32-Architectures-SDM-Volume-3A-System-Guide-PART-PART-PART-PART-PART-PART-PART-PART-PART-PART-PART-PART
  37. Yuseok Jeon ، Wookhyun Han ، Nathan Burow و Mathias Payer. 2020. Fuzzan: طراحی ابرداده ضد عفونی کننده کارآمد برای فازی. 249--263. https://www. usenix. org/conference/atc20/presentation/jeon Google Scholar
  38. Rishi Kapoor ، George Porter ، Malveeka Tewari ، Geoffrey M. Voelker و Amin Vahdat. 2012. Chronos: تأخیر قابل پیش بینی برای برنامه های مرکز داده. در مجموعه مقالات سومین سمپوزیوم ACM در محاسبات ابری (نیویورک ، نیویورک ، ایالات متحده ، 2012-10-14) (SOCC '12). انجمن ماشین آلات محاسباتی ، 1-14. کتابخانه Scholardigital Google
  39. V. Karakostas ، O. S. Unsal ، M. Nemirovsky ، A. Cristal و M. Swift. 2014. تجزیه و تحلیل عملکرد واحد مدیریت حافظه تحت بار کاری مقیاس. در سال 2014 سمپوزیوم بین المللی IEEE در مورد خصوصیات بار کار (IISWC) (2014-10). 1--12Google Scholarcross Ref
  40. آلفون کمپر و توماس نویمان. 2011. Hyper: یک سیستم پایگاه داده حافظه اصلی OLTP OLTP OLAP مبتنی بر عکس های حافظه مجازی. در سال 2011 IEEE 27th کنفرانس بین المللی مهندسی داده ها (2011-04). 195--206. کتابخانه Scholardigital Google
  41. Kyungtae Kim ، Dae R. Jeong ، Chung Hwan Kim ، Yeongjin Jang ، Insik Shin و Byoungyoung Le. 2020. HFL: فازی هیبریدی روی هسته لینوکس. در مجموعه مقالات 2020 شبکه و سمپوزیوم امنیتی سیستم توزیع شده (سن دیگو ، کالیفرنیا ، 2020). جامعه اینترنتی. Google Scholarcross Ref
  42. Youngjin Kwon ، Hangchen Yu ، Simon Peter ، Christopher J. Rossbach و Emmett Witchel. 2016. مدیریت صفحه عظیم هماهنگ و کارآمد با Ingens. در مجموعه مقالات دوازدهمین کنفرانس USENIX در مورد طراحی و اجرای سیستم های عامل (ایالات متحده ، 2016-11-02) (OSDI'16). انجمن Usenix ، 705--721. کتابخانه Scholardigital Google
  43. Horacio Andrés Lagar-Cavilla ، Joseph Andrew Whitney ، Adin Matthew Scannell ، Philip Patchin ، Stephen M. Rumble ، Eyal de Lara ، Michael Brudno و Mahadev Satyanarayanan. 2009. Snowflock: کلون سازی ماشین مجازی سریع برای محاسبات ابری. در مجموعه مقالات چهارمین کنفرانس اروپایی ACM در سیستم های رایانه ای (نورنبرگ ، آلمان ، 2009-04-01) (یوروسی '09). انجمن ماشین آلات محاسباتی ، 1--12. کتابخانه Scholardigital Google
  44. Caroline Lemieux و Koushik Sen. 2018. Fairfuzz: یک استراتژی جهش هدفمند برای افزایش پوشش آزمایش Fuzz Greybox. در مجموعه مقالات 33 کنفرانس بین المللی ACM/IEEE در زمینه مهندسی خودکار نرم افزار (نیویورک ، نیویورک ، ایالات متحده ، 2018-09-03) (ASE 2018). انجمن ماشین آلات محاسباتی ، 475-485. کتابخانه Scholardigital Google
  45. لیانگ لی ، گورن وانگ ، باند وو و یو یوان. 2018. الگوریتم های عکس فوری ثابت برای سیستم های پایگاه داده در حافظه: آزمایش و تجزیه و تحلیل. در سال 2018 IEEE 34 مین کنفرانس بین المللی مهندسی داده ها (ICDE) (2018-04). 1284--1287. Google Scholarcross Ref
  46. Xinyu Li ، Lei Liu ، Shengjie Yang ، Lu Peng و Jiefan Qiu. 2019. فکر کردن در مورد مکانیسم جدید برای مدیریت بزرگ صفحه. در مجموعه مقالات 10 ACM SIGOPS کارگاه آسیا و اقیانوسیه در مورد سیستم ها (Hangzhou ، چین) (APSYS '19). انجمن ماشین آلات محاسباتی ، نیویورک ، نیویورک ، ایالات متحده ، 40--46. کتابخانه Scholardigital Google
  47. بازو محدود2021. کتابچه راهنمای مرجع معماری ARM ARMV8 ، برای مشخصات معماری ARMV8-A. https://developer. arm. com/documentation/ddi0487/latest/ Google Scholar
  48. لینوس توروالدز2015. فروشگاه ردیابی شعبه اینتل. https://github. com/torvalds/linux/blob/master/tools/perf/Documentation/intel-bts. txt Google Scholar
  49. صفحه راهنمای لینوکس. برخط. mmap(2) - صفحه راهنمای لینوکس. https://man7. org/linux/man-pages/man2/mmap. 2. html Google Scholar
  50. دیو مک کراکن. 2003. جداول صفحه مشترک Redux. https://www. keel. org/doc/ols/2006/ols2006v2-pages-125-130. pdf Google Scholar
  51. Pulkit A. Misra، María F. Borge، Íñigo Goiri، Alvin R. Lebeck، Willy Zwaenepoel، و Ricardo Bianchini. 2019. مدیریت تأخیر دم در سیستم های فایل در مقیاس مرکز داده تحت محدودیت های تولید. در مجموعه مقالات چهاردهمین کنفرانس EuroSys 2019 (نیویورک، نیویورک، ایالات متحده آمریکا، 25-03-2019) (EuroSys '19). انجمن ماشین های محاسباتی، 1--15. کتابخانه دیجیتالی Google Scholar
  52. MongoDB. 2020. غیرفعال کردن صفحات عظیم شفاف (THP) --- راهنمای MongoDB. https://docs. mongodb. com/manual/tutorial/transparenthuge-pages Google Scholar
  53. اس. ناگی و ام. هیکس. 2019. Fuzzing با سرعت کامل: کاهش سربار فازی از طریق ردیابی تحت پوشش. در سال 2019 سمپوزیوم IEEE در مورد امنیت و حریم خصوصی (SP). 787--802. مرجع Google ScholarCross
  54. ویکرام نارایانان، یونگجه هوانگ، گانگ تان، ترنت جاگر و آنتون برتسف. 2020. جداسازی هسته سبک با توابع مجازی سازی و VM. در مجموعه مقالات شانزدهمین کنفرانس بین المللی ACM SIGPLAN/SIGOPS در مورد محیط های اجرای مجازی (نیویورک، نیویورک، ایالات متحده آمریکا، 17-03-2020) (VEE '20). انجمن ماشین های محاسباتی، 157--171. کتابخانه دیجیتالی Google Scholar
  55. لینوس نایمن و میکائیل لااکسو. 2016. یادداشت هایی در مورد تاریخچه Fork and Join. 38، 3 (2016)، 84--87. کتابخانه دیجیتالی Google Scholar
  56. اوراکل. برخط. مدیریت حافظهhttps://docs. oracle. com/database/121/ADMIN/memory. htm Google Scholar
  57. آشیش پانوار، آراویندا پراساد، و کی. گوپینات. 2018. ساخت صفحات عظیم در واقع مفید. در مجموعه مقالات بیست و سومین کنفرانس بین المللی پشتیبانی معماری برای زبان های برنامه نویسی و سیستم عامل ها (نیویورک، نیویورک، ایالات متحده آمریکا، 19-03-2018) (ASPLOS '18). انجمن ماشین های محاسباتی، 679--692. کتابخانه دیجیتالی Google Scholar
  58. الکساندر ربرت، سانگ کیل چا، تاناسیس آوجرینوس، جاناتان فوت، دیوید وارن، گوستاوو گریکو و دیوید بروملی. 2014. بهینه سازی انتخاب دانه برای فاز کردن. 861--875. https://www. usenix. org/conference/usenixsecurity14/technical-sessions/presentation/rebert کتابخانه دیجیتالی Google Scholar
  59. کلاه قرمز. 2020. 5. 2. صفحات عظیم و صفحات عظیم شفاف Red Hat Enterprise Linux 6. https://access. redhat. com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-memory-transhuge Google Scholar
  60. Redislabبرخط. redishttps://redis. io/ Google Scholar
  61. Redislabبرخط. چارچوب نظارت بر تأخیر Redis - Redis. https://redis. io/topics/latency-monitor Google Scholar
  62. Redislabs. 2013. Redislabs/memtier_benchmark. https://github. com/redislabs/memtier_benchmark Google Scholar
  63. دنیس م. ریچی و کن تامپسون. 1974. سیستم تقسیم زمان یونیکس. 17 ، 7 (1974) ، 365--375. کتابخانه Scholardigital Google
  64. سرگج شوومیلو ، کرنلیوس آسچرمن ، رابرت گاولیک ، سباستین شینزل و تورستن هولز. 2017. KAFL: بازخورد به کمک سخت افزار برای هسته های سیستم عامل. در 26 سمپوزیوم امنیتی USENIX (Usenix Security 17) (2017). 167--182. https://www. usenix. org/conference/usenixsecurity17/technical-sesions/presentation/schumilo کتابخانه Scholardigital Google
  65. Jonathan M Smith و Gerald Q Maguire. 1988. تأثیر مدیریت حافظه کپی بر روی نوشتن بر زمان پاسخ به عملیات چنگال یونیکس.(1988) ، 10. Google Scholar
  66. جامعه توسعه هسته. 2021. Hugetlbpage در ARM64 --- مستندات هسته لینوکس. https://www. keel. org/doc/html/latest/arm64/hugetlbpage. html Google Scholar
  67. فناوری Trivago. 2017. روش سخت را یاد بگیرید (در تولید). https://tech. trivago. com/2017/01/25/lea-redis-the-hard-way-in-production/ Google Scholar
  68. KAI-TTT AMY WANG ، Rayson HO و Peng Wu. 2019. اجرای قابل پخش مجدد برای به اشتراک گذاری صفحه برای یک محیط زمان اجرا مدیریت شده بهینه شده است. در مجموعه مقالات چهاردهمین کنفرانس یوروسی 2019 (درسدن ، آلمان ، 2019). ACM Press ، 1--16. کتابخانه Scholardigital Google
  69. Wen Xu ، Sanidhya Kashyap ، Changwoo Min و Taesoo Kim. 2017. طراحی بدوی عملیاتی جدید برای بهبود عملکرد فازی. در مجموعه مقالات کنفرانس ACM SIGSAC 2017 در مورد امنیت رایانه و ارتباطات (دالاس ، تگزاس ، ایالات متحده ، 2017-10-30) (CCS '17). انجمن ماشین آلات محاسباتی ، 2313--2328. کتابخانه Scholardigital Google
فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید

برچسب : نویسنده : احمد قانع پور بازدید : 45 تاريخ : شنبه 11 شهريور 1402 ساعت: :