[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