160 likes | 283 Vues
This document explores the intricacies of scheduling tasks characterized by heavy tail distributions, highlighting properties such as infinite variance and the impact of tiny fractions of requests on overall load. It discusses the expectation paradox, mass-count disparity, and the distinct characteristics of files sizes in different system types. Additionally, it addresses challenges faced in networking, I/O traces, and the proportional relationship between queue lengths and service times. The paper suggests methods for effectively scheduling web servers and routing traffic, emphasizing the significance of efficient task assignment in distributed processing environments.
E N D
Scheduling task with heavy tail distributions Eddie Aronovich
Some properties… • Infinitive variance (for infinitive mean) • Tiny fraction (usually < 1%) requests comprise over half of total load !
Some more properties • Expectation paradox:E[X|X>k] ~ k(declining hazard rate) • Mass-count disparity (for n>2)
What is it good for ? • Files size (in both – file systems & web) & data files transferred over the net • I/O traces of fs, disk etc. • Process time, Session time • Name servers & popularity of web sites
Why are they difficult to deal with ? • M/G/1 queue length is proportional to second moment of service time. • Have no closed form Laplace transformation => systems must be numerically evaluated
Some implementations… • Scheduling web servers • Routing & Switching • Load sensitive routing
How web server works ? • Name resolution • Session establishments • Request • Reply • End of session The network is the bottleneck !
Some important knowledge • Each computer is identified by address. • Each application is a computer is identified by port number Socket = {ip-addr, port number} Session = source socket : dest socket File descriptor – identifies socket / session
Default Linux model Socket1 {process} Socket2 {process} Socket3 {process} Socket4 {process} fairly feed single priority queue NIC
Shortest Remaining Processing Time (proposed model) Socket1 {process} {1st prio. Que.} Socket2 {process} {2nd prio. Que.} Socket3 {process} Socket4 {process} {3rd prio. Que.} feed first feed second NIC feed third
Size cut-offs The following are rules-of-thumb: • 50% of request <= X1 • 1%-5% of requests > Xn • The middle cut are less important
Evaluated metrics • Mean response time • Mean slowdown (normalized response time) • Mean response time as a function of request size
Why does it work ? • We know the file size (reply) a-priory • Short requests should wait short time • Linux is easy to be changed
What is next ? • Distributed processing • Task assigment • TAGS