Fix FIO (posixaio) issue on FreeBSD 10.3
AIO module is not enabled in FreeBSD 10.3, as a result, when you run FIO with posixaio engine, it will complain Function not implemented
. Another proof for AIO disabled on FreeBSD 10.3 is using sysctl to check aio options. You can use sysctl -da|grep aio
. The default output is as follows:
p1003_1b.aio_listio_max:
p1003_1b.aio_max:
p1003_1b.aio_prio_delta_max:
Please enable AIO by kldload aio
and check whether it is loaded kldstat
. If you find “aio” is displayed, then it was loaded. Double check the sysctl output, and you can see:
kern.features.aio: Asynchronous I/O
vfs.aio.max_buf_aio: Maximum buf aio requests per process (stored in the process)
vfs.aio.max_aio_queue_per_proc: Maximum queued aio requests per process (stored in the process)
vfs.aio.max_aio_per_proc: Maximum active aio requests per process (stored in the process)
vfs.aio.unloadable: Allow unload of aio (not recommended)
vfs.aio.aiod_lifetime: Maximum lifetime for idle aiod
vfs.aio.aiod_timeout: Timeout value for synchronous aio operations
vfs.aio.num_buf_aio: Number of aio requests presently handled by the buf subsystem
vfs.aio.num_queue_count: Number of queued aio requests
vfs.aio.max_aio_queue: Maximum number of aio requests to queue, globally
vfs.aio.target_aio_procs: Preferred number of ready kernel threads for async IO
vfs.aio.num_aio_procs: Number of presently active kernel threads for async IO
vfs.aio.max_aio_procs: Maximum number of kernel threads to use for handling async IO
p1003_1b.aio_listio_max:
p1003_1b.aio_max:
p1003_1b.aio_prio_delta_max: