[Disksim-users] process fairness

Greg Ganger ganger at ece.cmu.edu
Mon Apr 30 00:31:04 EDT 2007


That I know of, no effort was ever put into ensuring fairness among
synthetic workload generators in DiskSim, so it would not surprise
me if the scheduler were not fair.  I don't remember what it does,
off hand.

Greg


On Sun, 29 Apr 2007, YipKei Kwok wrote:

> Hi,
>
> Currently, Disksim reports disk performance statistics such as access
> time and transfer time in an aggregated manner, instead of in a
> per-process basis.
>
> I have modified Disksim so that per-process disk statistics could be
> shown. However, the problem is that, even though the processes are
> absolutely identical (except pid, of course), some processes generates
> almost 3 times more requests than others, when internal synthesized
> workload is used, while I believe that identical, or almost, number of
> requests should be generated by each process.
>
> Here is a brief description (w./ some details omitted) on how I implement 
> it.
>
> disksim_global.h
> - create a new member in the structure ioreq_event
>
> disksim_synthio.c: synthio_appendio()
> - copy pid from process *procp to ioreq_event *new
>
> disksim_diskctlr.c: disk_buffer_sector_done()
> - extract pid from ioreq_event *curr
> - then, pass the pid to disk_buffer_request_complete()
> Note: the same for disk_got_remapped_sector()
>
> disksim_ctlr.c: disk_buffer_request_complete()
> - add the new parameter: int pid
> - pass pid to disk_acctimestats()
>
> disksim_disk.c: disk_acctimestats()
> - add the new parameter: int pid
>
> Here is the configuration of each process.
>    disksim_synthgen { # generator 3
>      Storage capacity per device  =  8224032,
>      devices = [ org0 ],
>      Blocking factor =  8,
>      Probability of sequential access =  0.2,
>      Probability of local access =  0.3,
>      Probability of read access =  0.5,
>      Probability of time-critical request =  0.1,
>      Probability of time-limited request =  0.3,
>      Time-limited think times  = [ normal, 30.0, 100.0  ],
>      General inter-arrival times  = [ exponential, 0.0, 10.0  ],
>      Sequential inter-arrival times  = [ exponential, 0.0, 10.0  ],
>      Local inter-arrival times  = [ exponential, 0.0, 10.0  ],
>      Local distances  = [ normal, 0.0, 40000.0  ],
>      Sizes  = [ exponential, 0.0, 8.0  ]
>    } # end of generator 3
>
> System topology: RAID 0 with 4 disks.
>
> Number of simulated processes: 4
>
> Here are the results (results are repeatable):
> 1. "Number of I/O requests to generate = 20
> process1: 3 requests, process 2: 5requests, process 3: 8requests,
> process 4: 1 requests
>
> 2. "Number of I/O requests to generate = 30
> process1: 6 reqs, process 2: 11 reqs, process 3: 16 reqs, process 4: 1 reqs
>
> 3. "Number of I/O requests to generate = 40
> process1: 9 reqs, process 2: 22 reqs, process 3: 31 reqs, process 4: 3 reqs
>
> 4. "Number of I/O requests to generate = 1000
> process1: 132 reqs, process 2: 237 reqs, process 3: 399 reqs, process
> 4: 112 reqs
>
> 5. "Number of I/O requests to generate = 100000
> process1: 13544 reqs, process 2: 22985 reqs, process 3: 38455 reqs,
> process 4: 11420 reqs
>
> My questions are:
> 1. Am I doing it in a right way? Or, is there any better way?
> 2. Does anyone encounter the same problem?
> 3. How can I fix it? Any suggestion?
>
> Thanks!
>
> -Yipkei
>
> -- 
> Web site:
> http://360.yahoo.com/yipkeikwok
> http://www.mcs.csueastbay.edu/~ykwok/
> email addresses:
> yipkeikwok at gmail dot com
> ykwok2 at utep dot edu
> ICQ UIN:    2309842
> Google Talk ID:    yipkeikwok at gmail dot com
> Yahoo! Messenger ID:    yipkeikwok
> MSN Messenger ID:    yipkeikwok at hotmail dot com
> _______________________________________________
> Disksim-users mailing list
> Disksim-users at ece.cmu.edu
> https://sos.ece.cmu.edu/mailman/listinfo/disksim-users
>



More information about the Disksim-users mailing list