… | |
… | |
41 | IO::AIO::min_parallel $nthreads |
41 | IO::AIO::min_parallel $nthreads |
42 | Set the minimum number of AIO threads to $nthreads. The default is |
42 | Set the minimum number of AIO threads to $nthreads. The default is |
43 | 1, which means a single asynchronous operation can be done at one |
43 | 1, which means a single asynchronous operation can be done at one |
44 | time (the number of outstanding operations, however, is unlimited). |
44 | time (the number of outstanding operations, however, is unlimited). |
45 | |
45 | |
46 | It is recommended to keep the number of threads low, as some linux |
46 | It is recommended to keep the number of threads low, as some Linux |
47 | kernel versions will scale negatively with the number of threads |
47 | kernel versions will scale negatively with the number of threads |
48 | (higher parallelity => MUCH higher latency). |
48 | (higher parallelity => MUCH higher latency). With current Linux 2.6 |
|
|
49 | versions, 4-32 threads should be fine. |
49 | |
50 | |
50 | Under normal circumstances you don't need to call this function, as |
51 | Under normal circumstances you don't need to call this function, as |
51 | this module automatically starts a single async thread. |
52 | this module automatically starts some threads (the exact number |
|
|
53 | might change, and is currently 4). |
52 | |
54 | |
53 | IO::AIO::max_parallel $nthreads |
55 | IO::AIO::max_parallel $nthreads |
54 | Sets the maximum number of AIO threads to $nthreads. If more than |
56 | Sets the maximum number of AIO threads to $nthreads. If more than |
55 | the specified number of threads are currently running, kill them. |
57 | the specified number of threads are currently running, kill them. |
56 | This function blocks until the limit is reached. |
58 | This function blocks until the limit is reached. |
57 | |
59 | |
58 | This module automatically runs "max_parallel 0" at program end, to |
60 | This module automatically runs "max_parallel 0" at program end, to |
59 | ensure that all threads are killed and that there are no outstanding |
61 | ensure that all threads are killed and that there are no outstanding |
60 | requests. |
62 | requests. |
|
|
63 | |
|
|
64 | Under normal circumstances you don't need to call this function. |
|
|
65 | |
|
|
66 | $oldnreqs = IO::AIO::max_outstanding $nreqs |
|
|
67 | Sets the maximum number of outstanding requests to $nreqs. If you |
|
|
68 | try to queue up more than this number of requests, the caller will |
|
|
69 | block until some requests have been handled. |
|
|
70 | |
|
|
71 | The default is very large, so normally there is no practical limit. |
|
|
72 | If you queue up many requests in a loop it it often improves speed |
|
|
73 | if you set this to a relatively low number, such as 100. |
61 | |
74 | |
62 | Under normal circumstances you don't need to call this function. |
75 | Under normal circumstances you don't need to call this function. |
63 | |
76 | |
64 | $fileno = IO::AIO::poll_fileno |
77 | $fileno = IO::AIO::poll_fileno |
65 | Return the *request result pipe filehandle*. This filehandle must be |
78 | Return the *request result pipe filehandle*. This filehandle must be |