meta data for this page
Differences
This shows you the differences between two versions of the page.
| vm:proxmox:kvm:iothread [2021/12/30 07:39] – created niziak | vm:proxmox:kvm:iothread [2021/12/30 07:51] (current) – niziak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== IO thread ====== | ====== IO thread ====== | ||
| - | Enabled | + | Enabled |
| ===== KVM without iothread ===== | ===== KVM without iothread ===== | ||
| Line 21: | Line 21: | ||
| ===== KVM with iothread ===== | ===== KVM with iothread ===== | ||
| - | * ``virtio-scsi-single`` controller chosen which create separate SCSI controller for each drive | + | * '' |
| - | * I/O thread enabled on ``virtioscsi2`` | + | * I/O thread enabled on '' |
| <code bash> | <code bash> | ||
| Line 40: | Line 40: | ||
| </ | </ | ||
| + | |||
| + | From KVM manual: | ||
| + | |||
| + | '' | ||
| + | |||
| + | Creates | ||
| + | | ||
| + | By default device emulation happens in vCPU threads or the main event loop thread. This can become a scalability bottleneck. | ||
| + | IOThreads allow device emulation and I/O to run on other host CPUs. | ||
| + | |||
| + | The id parameter is a unique ID that will be used to reference this IOThread from -device ..., | ||
| + | Multiple devices can be assigned to an IOThread. Note that not all devices support an iothread parameter. | ||
| + | |||
| + | IOThreads use an adaptive polling algorithm to reduce event loop latency. | ||
| + | Instead of entering a blocking system call to monitor file descriptors and then pay the cost of | ||
| + | being woken up when an event occurs, the polling algorithm spins waiting for events for a short time. | ||
| + | The algorithm' | ||
| + | based on knowledge of the workload and/or host device latency. | ||