From: Helen P. <hp...@us...> - 2002-10-18 20:04:31
|
As I ran async I/O performance test in 2.5.42, I observed little measurable improvement of response time by using min_nr = nreqs instead of using min_nr = 1 when calling io_getevents. I observed significant improvement of the cpu utilization for using specified min_nr = nreqs when calling io_getevents. I think this is because of reducing number of io_getevents calls when using min_nr=nreqs. The following are the results of running async I/O over files. The SUT is ia32 547 MHz SMP 2-way, 770 MB RAM, 2 SCSI adapters. The kernel is 2.5.42, and aio library is libaio-0.3.92 Set min_nr = 1 of io_getevents( ) : Num I/O ResponseTime Throughput CPU CPU (nreqs) (sec) (MB/sec) user(%) sys(%) 10 225.6 730.1 33.2 49.8 20 437.1 749.2 33.2 49.8 Set min_nr = nreqs of io_getevents( ) : Num I/O ResponseTime Throughput CPU CPU (nreqs) (sec) (MB/sec) user(%) sys(%) 10 220.5 743.1 3.5 46.6 20 434.6 754.0 3.3 46.6 Thanks, - Helen |
From: Bill H. <ha...@au...> - 2002-10-21 16:49:41
|
Helen Pang wrote: > ... > when calling io_getevents. I observed significant improvement of the cpu > utilization for using specified min_nr = nreqs when calling io_getevents. I ... 33 % to 3 % percent system CPU is a _lot_. Make sure that CPU is computed correctly - /proc/stat has changed - there are now two fields for idle time. -- IBM Linux Technology Center Performance Team http://www-124.ibm.com/developerworks/oss/linux ha...@au... |
From: Benjamin L. <bc...@re...> - 2002-10-21 18:37:58
|
On Mon, Oct 21, 2002 at 11:47:16AM -0500, Bill Hartner wrote: > > Helen Pang wrote: > > > ... > > when calling io_getevents. I observed significant improvement of the cpu > > utilization for using specified min_nr = nreqs when calling io_getevents. I > ... > > 33 % to 3 % percent system CPU is a _lot_. > Make sure that CPU is computed correctly - /proc/stat has changed - there > are now two fields for idle time. The idle time that the kernel accounts is rarely correct (remember nyquist). A better measure of CPU usage would be to run a cycle soaker. Still, the CPU usage is likely to drop a fair amount thanks to the work put into 2.5 to better optimize large ios. -ben -- "Do you seek knowledge in time travel?" |
From: Andrew M. <ak...@di...> - 2002-10-21 20:06:59
|
Benjamin LaHaise wrote: > > On Mon, Oct 21, 2002 at 11:47:16AM -0500, Bill Hartner wrote: > > > > Helen Pang wrote: > > > > > ... > > > when calling io_getevents. I observed significant improvement of the cpu > > > utilization for using specified min_nr = nreqs when calling io_getevents. I > > ... > > > > 33 % to 3 % percent system CPU is a _lot_. > > Make sure that CPU is computed correctly - /proc/stat has changed - there > > are now two fields for idle time. > > The idle time that the kernel accounts is rarely correct (remember > nyquist). I suspect we're seeing quite a lot of that artifact at present. And the switch to HZ=1000 has made comparisons with 2.4 most problematic. > A better measure of CPU usage would be to run a cycle soaker. Agree. It was the only way I could get sane numbers on networking CPU efficiency. Just about all the interrupt-time CPU cost of networking gets credited to `swapper', and you never even observe it. Please, see http://www.zipworld.com.au/~akpm/linux/#zc It's extremely easy to use: make ./cyclesoak -C ./cyclesoak <run test> The absolute percentage figures are questionable, but for before-and-after comparisons, cyclesoak can easily resolve down to 0.2%. |