v.23.9New Feature
Added IO Scheduling Support for Remote Disks in ClickHouse
Added IO scheduling support for remote disks. Storage configuration for disk typess3,s3_plain,hdfsandazure_blob_storagecan now containread_resourceandwrite_resourceelements holding resource names. Scheduling policies for these resources can be configured in a separate server configuration sectionresources. Queries can be marked using settingworkloadand classified using server configuration sectionworkload_classifiersto achieve diverse resource scheduling goals. More details in the docs. #47009 (Sergei Trifonov). Added "bandwidth_limit" IO scheduling node type. It allows you to specifymax_speedandmax_burstconstraints on traffic passing though this node. #54618 (Sergei Trifonov).
Why it matters
This feature addresses the need for fine-grained IO resource management and traffic control on remote storage disks, helping to avoid resource contention and ensure stable performance under concurrent workloads. By associating disk operations with configurable resources and workload classifications, users can prioritize and throttle IO bandwidth according to workload demands and server capacity.How to use it
To use this feature, specifyread_resource and write_resource names in the storage configuration for remote disk types s3, s3_plain, hdfs, or azure_blob_storage. Define scheduling policies for these resources in the resources section of the server configuration. Use the workload query setting and configure workload classifiers in the workload_classifiers section to control query classification for scheduling. Additionally, configure the new "bandwidth_limit" IO scheduling node with max_speed and max_burst parameters to constrain IO traffic bandwidth.