Make zio_taskq_batch_pct user configurable
Adds zio_taskq_batch_pct as an exported module parameter, allowing users to modify it at module load time. Signed-off-by: DHE <git@dehacked.net> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #4110
This commit is contained in:
parent
82dba185c8
commit
dcb6bed1df
|
@ -1598,6 +1598,23 @@ Prioritize requeued I/O
|
|||
Default value: \fB0\fR.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
\fBzio_taskq_batch_pct\fR (uint)
|
||||
.ad
|
||||
.RS 12n
|
||||
Percentage of online CPUs (or CPU cores, etc) which will run a worker thread
|
||||
for IO. These workers are responsible for IO work such as compression and
|
||||
checksum calculations. Fractional number of CPUs will be rounded down.
|
||||
.sp
|
||||
The default value of 75 was chosen to avoid using all CPUs which can result in
|
||||
latency issues and inconsistent application performance, especially when high
|
||||
compression is enabled.
|
||||
.sp
|
||||
Default value: \fB75\fR.
|
||||
.RE
|
||||
|
||||
.sp
|
||||
.ne 2
|
||||
.na
|
||||
|
|
|
@ -867,7 +867,7 @@ spa_taskqs_init(spa_t *spa, zio_type_t t, zio_taskq_type_t q)
|
|||
case ZTI_MODE_BATCH:
|
||||
batch = B_TRUE;
|
||||
flags |= TASKQ_THREADS_CPU_PCT;
|
||||
value = zio_taskq_batch_pct;
|
||||
value = MIN(zio_taskq_batch_pct, 100);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -6804,4 +6804,9 @@ MODULE_PARM_DESC(spa_load_verify_metadata,
|
|||
module_param(spa_load_verify_data, int, 0644);
|
||||
MODULE_PARM_DESC(spa_load_verify_data,
|
||||
"Set to traverse data on pool import");
|
||||
|
||||
module_param(zio_taskq_batch_pct, uint, 0444);
|
||||
MODULE_PARM_DESC(zio_taskq_batch_pct,
|
||||
"Percentage of CPUs to run an IO worker thread");
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue