Presentation is loading. Please wait.

Presentation is loading. Please wait.

مدل سازی بارکاری در رایانش ابری

Similar presentations


Presentation on theme: "مدل سازی بارکاری در رایانش ابری"— Presentation transcript:

1 مدل سازی بارکاری در رایانش ابری
به نام خدا مدل سازی بارکاری در رایانش ابری دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان

2 لزوم مدیریت صحیح منابع

3 افزایش سطح استفاده (Utilization)
ماشین های مجازی ماشین فیزیکی

4 نظارت و مدیریت منابع

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

6 تکنیک های ارزیابی کارآیی
اندازه گیری مستقیم شبیه سازی مدل سازی تحلیلی

7 ارزیابی کارآیی Performance evaluation
تخصیص مقادیر عددی به شاخص های کارآیی سیستم مورد مطالعه can be defined as assigning quantitative values to the indices of the performance of the system under study.

8 متریک های اندازه گیری برای ارزیابی کارآیی سیستم، یا مقایسه دو یا چند سیستم، ابتدا باید معیار های ارزیابی را مشخص کرد که به آنها متریک (شاخص) گفته می شود. متریک های مختلف میتوانند مقادیر کارآیی مختلفی را نشان دهند و نتایج ارزیابی متفاوت باشد. اولین کار برای ارزیابی کارایی یا مقایسه، تعیین شاخص ها است. بسته به مجموعه شاخص مورد استفاده و نحوه تعریف آنها، نتایج ارزیابی می تواند متفاوت باشد. To evaluate the performance of a system or to compare two or more systems, one must first choose some criteria. These criteria are called metrics Different metrics may result in totally different performance values.

9 بار کاری انتخاب بارکاری از موارد مهم دیگر در ارزیابی کارآیی است.
بارکاری: کاری که باید توسط سیستم انجام شود تراکنش ها داده هایی که باید در یک بازه زمانی پردازش شوند درخواست (تقاضای) کاربر از سیستم یک سیستم معمولا برای کار در محیط با بارکاری مشخصی طراحی می شود. ارزیابی کارآیی سیستم بدون در نظر گرفتن بار کاری صحیح نیست! یک عامل مهم دیگر، تعیین بار کاری است. بارکاری همان ورودی سیستم است. ورودی های متفاوت هم می توان نتایج ارزیابی متفاوتی تولید نماید

10 مشخصات بارکاری It must be a representation of the real workload
بارکاری که به سیستم تحت ارزیابی داده میشود، باید نماینده بار کاری واقعی باشد: رفتار ایستا یا پویای بار کاری واقعی باید در نظر گرفته شود. باید قابل بازتولید و تغییر باشد تا در مطالعات مختلف قابل استفاده باشد. باید فشرده باشد تا به راحتی به سیستم داده شود. It must be a representation of the real workload Static and dynamic behavior of the real workload must be accurately captured It must be easily reproduced and modified Workload can be used repeatedly in different studies It must be compact Can be easily ported to different systems

11 مدل سازی و ارزیابی مدل

12 اندازه گیری تکنیک های اندازه گیری مبتنی بر اندازه گیری مستقیم سیستم تحت مطالعه هستند. از نرم افزارها یا سخت افزارهای نظارتی (Monitoring) استفاده می شود. سیستم واقعی باید در دسترس باشد. معمولا برای بهبود کارآیی استفاده می شود. (Tuning) Measurement techniques are based on direct measurements of the system under study using a software monitor and/or hardware monitor. The real system must be available. Measurement is oriented towards performance tuning.

13 اندازه گیری دقت اندازه گیری بر اساس فاکتورهای مختلفی است. زمان اندازه گیری بار کاری مورد استفاده میتواند صحیح یا اشتباه باشد. اندازه گیری نیاز به تجهیزات دارد. بنابراین هزینه بر ترین روش است. The accuracy of measurement also depends on several other factors Time of the measurement The workload used Can be more accurate or more inaccurate As measurement needs instruments, it is the most costly method

14 شبیه سازی Use abstract models Oriented towards performance prediction
استفاده از مدل های انتزاعی نیاز به ساده سازی و فرضیات دارد. بصورت تقریبی واقعیت را نشان میدهد. خطاهای ناشی از تقریب وجود دارد. بیشتر برای پیش بینی کارآیی استفاده میشود. گاهی برای بهبود کارآیی نیز استفاده می شود. مدل یک سیستم، یک جعبه است که مشخصات آن مشخص است یعنی اگر یک کار به آن بدهی، چند ثانیه بعد نتیجه می گیری. Use abstract models Require simplifications and assumptions and are only approximate representations of reality Approximation errors might be introduced. Oriented towards performance prediction sometimes used for performance tuning

15 شبیه سازی نیاز به زمان و منابع زیاد برای اجرا دارد.
به مرور زمان می تواند کامل تر شود. Performance prediction at very early stage during the design life-cycle is not only helpful but necessary Simulation can be used throughout the design lifecycle, not only at earlier stages. As the design matures and more and more details of the system are obtained, more accurate models can be constructed. Simulations of real parallel systems demand substantial resource usage in terms of time and space.

16 تحلیلی Use abstract models
استفاده از مدل های انتزاعی اجرای مدل بصورت ریاضی سطح انتزاع بیشتر فرضیات بیشتر بیشتر برای پیش بینی کارآیی استفاده می شود. کارآیی سیستم را بصورت تابعی از پارامترها بیان میکند. برای تحلیل سیستم های بزرگ، مقیاس پذیری دارد. نتیجه یک تابع است که رفتار سیستم را بیان می کند. Use abstract models To make the model be mathematically solvable, higher level of abstraction and more assumptions must be made. Validation and Verification (V&V) is a crucial task to limit the approximation error Oriented towards performance prediction Express the system performance as a function of system parameters Scalable for analysis of large-scale systems

17 مثالی از بار کاری لاگ وب سرور آپاچی مشخصه ها دقت یک ثانیه
صفحات ایستا و پویا مشخصه ها بازه بین ورود زمان سرویس تاثیر انتخاب مدل مناسب در استخراج صحیح پارامترها دیده می شود

18 یک نمونه شبیه سازی

19 هیستوگرام

20 مثالی از پایگاه داده صفحات ایستا * حجم فایل صفحات پویا * حجم فایل
User صفحات ایستا * حجم فایل 10KB User برخی تعاریف و ویژگی های مطرح شده در خصوص ماهیت ترافیک صفحات پویا * حجم فایل * تولید محتوا (سرور + پایگاه داده) Lognormal(𝜇=3.275, 𝜎 2 =11.56) Qi Zhang, et al, “Workload-Aware Load Balancing for Clustered Web Servers,” IEEE TRANSACTIONS, 2005

21 مدل کلادسیم Datacenter: VmAllocationPolicy Host:
Provisioner (Pe/Bw/Ram) VmScheduler VM: CloudletScheduler Cloudlet: UtilizationModel

22 انواع زمان بندی در سطح VM و Cloudlet
– Time-shared – Space-shared

23 معماری کلادسیم و نمونه کد
Datacenter dc1 = createDatacenter(“DC_Name"); Host host1= new Host(hostId, ram, bw, …); dc1.HostList.add(host1); DatacenterBroker user = createBroker(); Vm webServer = new Vm(vmid, userId, …); user.submitVm(webServer); Cloudlet webApp1 = new Cloudlet(id, length, …); user.submitCloudlet(webApp1); CloudSim.startSimulation();

24 نیازمندی ها دریافت مجموعه کدها: نصب JAVA نسخه 1.7 یا جدیدتر نصب محیط توسعه (NetBeans یا Eclipse)

25 ساختار فایل های کلادسیم

26 دستور کار عملی (شروع کار با جاوا)
ساخت یک پروژه جدید: File > New Project>Java Application افزودن کدهای کلادسیم به پروژه (Sources) افزودن فایل های JAR مورد نیاز به کتابخانه های پروژه (Libraries)

27 استفاده از کلادسیم و اجرای یک مثال

28 شرح سناریوی 1 length = 400000; fileSize = 300; arch = "x86";
outputSize = 300; arch = "x86"; os = "Linux"; vmm = "Xen"; time_zone = 10.0; cost = 3.0; costPerMem = 0.05; costPerStorage = 0.001; costPerBw = 0.0; storageList Mips = 1000; ram = 2048; storage = ; bw = 10000; Pe = 1; mips = 1000; size = 10000; ram = 512; bw = 1000; pesNumber = 1; vmm = "Xen";

29 مراحل ساخت یک ابر در محیط کلادسیم
مقدار دهی اولیه به کلادسیم ساخت مرکز داده ساخت Broker ساخت ماشین های مجازی ساخت کاربردها اجرای شبیه سازی نمایش خروجی

30 شرح کد public static void main(String[] args) {
CloudSim.init(num_user, calendar, trace_flag); Datacenter datacenter0 = createDatacenter("Datacenter_0"); DatacenterBroker broker = createBroker(); int brokerId = broker.getId(); vmlist = new ArrayList<Vm>(); int vmid = 0; int mips = 1000; long size = 10000; int ram = 512; long bw = 1000; int pesNumber = 1; String vmm = "Xen"; Vm vm = new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared()); vmlist.add(vm); broker.submitVmList(vmlist); cloudletList = new ArrayList<>(); int id = 0; long length = ; long fileSize = 300; long outputSize = 300; UtilizationModel utilizationModel = new UtilizationModelFull(); Cloudlet cloudlet = new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel); cloudlet.setUserId(brokerId); cloudlet.setVmId(vmid); cloudletList.add(cloudlet); broker.submitCloudletList(cloudletList); CloudSim.startSimulation(); CloudSim.stopSimulation(); List<Cloudlet> newList = broker.getCloudletReceivedList(); printCloudletList(newList); datacenter0.printDebts(); Log.printLine("CloudSimExample1 finished!"); } شرح کد

31 ساخت مرکز داده private static Datacenter createDatacenter(String name) { List<Host> hostList = new ArrayList<Host>();   List<Pe> peList = new ArrayList<Pe>();   int mips = 1000;   peList.add(new Pe(0, new PeProvisionerSimple(mips)));   int hostId = 0; int ram = 2048; long storage = ; int bw = 10000; hostList.add( new Host(hostId,new RamProvisionerSimple(ram),new BwProvisionerSimple(bw),storage,peList ,new VmSchedulerTimeShared(peList))); String arch = "x86"; String os = "Linux"; String vmm = "Xen"; double time_zone = 10.0; double cost = 3.0; double costPerMem = 0.05; double costPerStorage = 0.001; double costPerBw = 0.0; LinkedList<Storage> storageList = new LinkedList<Storage>(); DatacenterCharacteristics characteristics = new DatacenterCharacteristics(arch, os, vmm, hostList, time_zone, cost, costPerMem, costPerStorage, costPerBw);   Datacenter datacenter = null; datacenter = new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0); return datacenter; }

32 نمونه اجرا شده شروع شبیه سازی، ایجاد مرکز داده و شروع کارها،
Datacenter_0 is starting... Broker is starting... Entities started. Datacenter #2 registered in CloudInformationService. 2.0: Broker: Cloud Resource List received with 1 resource(s) 2.0: Broker: Trying to Create VM #0 in Datacenter_0 VM#0 Schedulled in Host#0 7.0: Broker: VM #0 has been created in Datacenter #2, Host #0 7.0: Broker: Sending cloudlet 0 to VM #0 407.0: Broker: Cloudlet 0 received 407.0: Broker: All Cloudlets executed. Finishing... 407.0: Broker: Destroying VM #0 شروع شبیه سازی، ایجاد مرکز داده و شروع کارها، گزارش اجرا بر حسب زمان Broker is shutting down... Simulation: No more future events CloudInformationService: Notify all CloudSim entities for shutting down. Datacenter_0 is shutting down... Simulation completed. اتمام شبیه سازی ========== OUTPUT ========== Cloudlet ID STATUS Data center ID VM ID Time Start Time Finish Time SUCCESS *****Datacenter: Datacenter_0***** User id Debt ********************************** CloudSimExample1 finished! BUILD SUCCESSFUL (total time: 4 seconds) گزارش نهایی اجرا

33 ارتباطات بین موجودیت ها و جریان داده
مرکز داده

34 مثال ها

35 تمرین تکمیلی بر روی مثال 1
مثال پایه: 1 مرکز داده، 1 میزبان، 1 ماشین مجازی، 1 برنامه، 1 کاربر تغییرات: افزایش تعداد برنامه به 2 عدد افزایش تعداد ماشین مجازی به 2 عدد افزایش تعداد میزبان به 2 عدد افزایش تعداد مرکز داده به 2 عدد افزایش تعداد کاربر به 2 عدد در هر مرحله ابتدا نتیجه مورد انتظار به صورت شهودی در نظر گرفته شود و سپس با نتیجه اجرا مقایسه شود.

36 منابع تکمیلی راهنمای دستورات: مثال ها و شرح آنها:
مثال ها و شرح آنها: سایر پروژه های مرتبط:


Download ppt "مدل سازی بارکاری در رایانش ابری"

Similar presentations


Ads by Google