Qatzstd 壓縮器
Qatzstd 壓縮器透過整合 qatlib 和 QAT-ZSTD-Plugin 函式庫,為 Envoy 提供更快的硬體加速 zstd 壓縮,並與 Intel® QuickAssist Technology (Intel® QAT) 相整合。
組態範例
Qatzstd 壓縮器組態範例如下:
static_resources:
listeners:
- address:
socket_address:
address: 0.0.0.0
port_value: 10000
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: backend
domains:
- "*"
routes:
- match:
prefix: "/"
route:
cluster: service
http_filters:
- name: envoy.filters.http.compressor
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
response_direction_config:
common_config:
min_content_length: 100
content_type:
- application/octet-stream
disable_on_etag_header: false
compressor_library:
name: text_optimized
typed_config:
"@type": type.googleapis.com/envoy.extensions.compression.qatzstd.compressor.v3alpha.Qatzstd
compression_level: 9
enable_qat_zstd: true
chunk_size: 65536
qat_zstd_fallback_threshold: 0
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
clusters:
- name: service
connect_timeout: 0.25s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1
port_value: 1234
admin:
address:
socket_address:
address: 0.0.0.0
port_value: 9901
運作方式
若啟用,Qatzstd 壓縮器將會:
附加 Qat 硬體
為每個 worker 執行緒建立 Threadlocal Qatzstd 環境
當有新的 HTTP 封包進來時,一個 worker 執行緒會使用其 Qatzstd 環境處理它,並使用標準 zstd API 將需要壓縮的資料傳送到 Qat 硬體。
安裝與使用 QAT-ZSTD-Plugin
有關如何建置/安裝和使用 QAT-ZSTD-Plugin 的資訊,請參閱簡介。