• شماره ركورد
    19703
  • شماره راهنما(اين فيلد مربوط به كارشناس ميباشد لطفا آن را خالي بگذاريد)
    ۱۹۷۰۳
  • پديد آورنده

    عرفان شرف زاده

  • عنوان
    ارايه يك سازوكار زمان اجرا براي پشتيباني از كاربردهاي شبكه‌اي حساس به تأخير در سطح هسته سيستم‌عامل
  • مقطع تحصيلي
    كارشناسي ارشد
  • رشته تحصيلي
    نرم افزار
  • سال تحصيل
    1395
  • تاريخ دفاع
    ۱۳۹۷/۸/۶
  • استاد راهنما
    دكتر محسن شريفي
  • دانشكده
    كامپيوتر
  • چكيده
    با گسترش روزافزون خدمات تحت وب، امروزه مراكز داده حجم وسيعي از درخواست‌هاي شبكه‌اي را دريافت مي‌كنند. اين درخواست‌ها كه در ابتدا توسط كاربر آغاز مي‌شوند، به تعداد زيادي از ريز-درخواست‌ها شكسته شده و به سرويس‌دهنده‌هاي موجود در مركز داده ارسال مي‌گردند تا تجميع پاسخ آن‌ها درنهايت پاسخ دريافتي كاربر را تشكيل دهد. با افزايش حجم درخواست‌ها در يك مركز داده، بهره‌برداري منابع افزايش مي‌يابد، اما امكان افزايش زمان پاسخ درنتيجه ايجاد صف در سرويس‌دهنده را نيز به دنبال دارد. از طرفي ديگر، با افزايش تعداد گره‌هاي فيزيكي سرويس‌دهنده به جهت تسهيل بار و كنترل زمان پاسخ، چالش‌هاي ديگري نظير افزايش مصرف انرژي و عدم مديريت بهينه حالت‌هاي ذخيره‌سازي انرژي در سخت‌افزارها (نظير حالت‌هاي بيكار در پردازنده) به وجود مي‌آيند. در اين پايان‌نامه ابتدا منابع بروز تأخير در درخواست‌هاي ورودي به سرويس‌دهنده‌هاي شبكه‌اي حساس به تأخير در مراكز داده را معرفي مي‌نماييم و با ورود به حوزه سيستم‌عامل، چالش مديريت و هدايت حالت‌هاي كم‌مصرف انرژي در پردازنده‌هاي مورداستفاده در مراكز داده و تأثير قابل‌توجه آن‌ها در بروز تأخيرهاي مقياس ميكروثانيه‌اي مورد ارزيابي قرار مي‌دهيم. در ادامه، يك سازوكار زمان اجرايي هدايت‌كننده حالت‌هاي بيكار پردازنده را معرفي مي‌كنيم كه مي‌تواند با استفاده از الگوريتم‌هاي يادگيري برخط ماشين، با در نظر گرفتن مصرف انرژي بهينه، از وقوع اين‌گونه تأخير‌ها جلوگيري كند. نتايج ارزيابي نشان مي‌دهد كه سازوكار پيشنهادي قادر است دنباله تأخير درخواست‌ها در صدك 99 را تا 40% و مصرف انرژي ماشين‌هاي خدمت‌دهنده را تا 30% كاهش دهد. در انتها نيز ما نشان مي‌دهيم كه اعمال اصلاحات ساختاري در سطح كاربر بجاي ورود به هسته سيستم‌عامل هميشه نمي‌تواند در كاربردهاي حساس به تأخير مثمر ثمر باشد. در اين راستا، بحث مي‌نماييم كه با وجود استفاده از نخ‌هاي سطح سيستم‌عامل و همچنين رويكردهاي رويداد-محور كه دو معماري مرسوم اين‌گونه سرويس‌دهنده‌ها هستند، استفاده از نخ‌هاي سطح-كاربر نمي‌تواند به كنترل زمان پاسخ كمك نمايد كه اين مهم با پياده‌سازي مديريت ورودي/خروجي در يك چارچوب نخ سطح كاربر و انجام يك سلسله آزمون‌ها مورد بررسي قرار مي‌گيرد.
  • تاريخ ورود اطلاعات
    1397/08/14
  • عنوان به انگليسي
    A Kernel-Level Runtime Mechanism for Latency-Sensitive Network Applications
  • تاريخ بهره برداري
    11/5/2018 12:00:00 AM
  • دانشجوي وارد كننده اطلاعات

    عرفان شرف زاده

  • چكيده به لاتين
    With the emergence of web-based services, data centers receive huge amounts of network requests every day. These requests are initialized from the end-user, and then are aggregated to hundreds of sub-requests, each one destined to a specific server for processing. The aggregation of the sub-requests responses form the final response to the user. With the increase of incoming request load for each server in a data center, resources utilization is increased, but the possibility of long response delays due to queuing can also increase. Moreover, by increasing the number of physical servers, other challenges like power consumption and unmanaged power-saving features (e.g., processor idle-states) may arise. In this thesis, we first introduce the possible sources of delay injection in latency-sensitive network requests. Then, by entering the domain of operating systems, we explore the challenges in governing processor idle-states and present their considerable impact in the occurrence of microsecond-scale latencies. Then we propose an idle-state governing mechanism that uses online machine learning schemes to pcrovide an efficient tradeoff point between power consumption and request latency. The evaluation results show that the proposed mechanisms can achieve up to 40% reduction of tail latency in 99th percentile and up to to 30% improvement in server’s power consumption. Finally we demonstrate that achieving performance improvements in user-space is trickier due to additional overheads. To this end, we explore the usage of user-level threading runtimes as the backend of network applications, and present our findings.