数据压缩
概述
MinIO 服务器支持压缩对象以减少磁盘使用量。对象在写入磁盘之前,在 PUT 期间进行压缩,并在发送到客户端之前,在 GET 期间进行解压缩。这使得压缩过程对客户端应用程序和服务透明。
根据数据类型,压缩也可能提高整体吞吐量。生产部署的写入吞吐量通常为每秒 500MB 或更高,每个系统中可用的 CPU 内核。每个 CPU 内核的解压缩速度约为每秒 1GB 或更高。
为了获得最佳效果,请查看 MinIO 的 推荐硬件配置 或使用 MinIO SUBNET 直接与工程师合作,分析压缩性能。
默认文件类型
数据压缩是一个全局选项,配置的设置适用于部署中的所有存储桶。启用数据压缩会默认压缩以下类型的数据
文件扩展名 |
媒体 (MIME) 类型 |
---|---|
|
|
您可以通过指定所需的文件扩展名和 媒体 (MIME) 类型 来控制哪些对象被压缩。
现有对象不会被修改
启用、禁用或更新部署的压缩设置不会修改现有对象。新对象根据创建时有效的设置进行压缩。
排除的文件类型
某些数据无法有效压缩。例如:视频、已压缩的数据或小于 4KiB 的文件。即使在压缩配置中指定了这些文件,MinIO 也不会压缩常见的不压缩文件类型。
这些类型的对象永远不会被压缩
对象类型 |
文件扩展名 |
媒体 (MIME) 类型 |
---|---|---|
音频 |
|
|
视频 |
*.mp4 *.mkv *.mov |
|
图像 |
*.jpg *.png *.gif |
|
7ZIP 压缩 |
|
|
BZIP2 压缩 |
|
|
GZIP 压缩 |
|
|
RAR 压缩 |
|
|
LZMA 压缩 |
|
|
ZIP 压缩 |
|
application/zip application-x-zip-compressed |
小于 4 KiB |
数据压缩和加密
MinIO 支持对压缩对象进行加密,但不建议在没有事先进行风险评估的情况下将压缩和加密结合使用。在为压缩对象启用加密之前,请仔细考虑您环境的安全需求。
有关结合使用压缩和加密的更多信息,请参阅 MinIO 上的透明数据压缩。 MinIO SUBNET 用户可以 登录 并与我们的工程和安全团队联系以审查加密选项。
教程
启用数据压缩
要启用数据压缩,请使用 mc admin config set
设置 compression
密钥的 enable
选项为 on
。
以下操作将为 默认类型 的新对象启用压缩
mc admin config set ALIAS compression enable=on
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
现有的未压缩对象不会被修改。要配置要压缩的扩展名和类型,请参阅 配置要压缩的对象。
要查看当前的压缩设置
mc admin config get ALIAS compression
禁用数据压缩
要禁用数据压缩,请使用 mc admin config set
设置 compression
密钥的 enable
选项为 off
以下操作将禁用新对象的数据压缩
mc admin config set ALIAS compression enable=off
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
现有的压缩对象不会被修改。
配置要压缩的对象
通过在 extensions
或 mime_types
参数中指定所需的扩展名和媒体类型来配置要压缩的对象。
默认的数据压缩配置会压缩以下类型的数据
文件扩展名 |
媒体 (MIME) 类型 |
---|---|
|
|
默认排除的扩展名和类型永远不会被压缩
某些对象无法有效压缩。即使在 extensions
或 mime_types
参数中指定了这些对象,MinIO 也不会尝试压缩它们。有关排除类型的列表,请参阅 排除的文件类型。
以下部分介绍如何为所需的文件扩展名和媒体类型配置压缩。
压缩所有可压缩对象
要压缩除 默认排除的类型 之外的所有对象,请使用 mc admin config set
将 compression
密钥的 extensions
和 mime_types
选项设置为空列表
mc admin config set ALIAS compression extensions= mime_types=
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
按文件扩展名压缩对象
要压缩具有某些文件扩展名的对象,请使用 mc admin config set
在 extensions
参数中设置所需的文件扩展名。
以下命令将压缩扩展名为 .bin
和 .txt
的文件
mc admin config set ALIAS compression extensions=".bin, .txt"
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
新的文件扩展名列表将替换以前的列表。要添加或删除扩展名,请使用要压缩的完整扩展名列表重复 extensions
命令。
以下命令将 .pdf
添加到上一示例中的文件扩展名列表中
mc admin config set ALIAS compression extensions=".bin, .txt, .pdf"
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
按媒体类型压缩对象
要压缩某些媒体类型的对象,请使用 mc admin config set
将 compression
密钥的 mime_types
选项设置为所需类型的列表。
以下示例将压缩类型为 application/json
和 image/bmp
的文件
mc admin config set ALIAS compression mime_types="application/json, image/bmp"
将
ALIAS
替换为已配置的 MinIO 部署的alias
。
新的媒体类型列表将替换以前的列表。要添加或删除类型,请使用要压缩的完整类型列表重复 mime_types
命令。
您可以使用 *
指定单个媒体类型的所有子类型。以下命令将所有 text
子类型添加到上一示例中的列表中
mc admin config set ALIAS compression mime_types="application/json, image/bmp, text/*"
将
ALIAS
替换为已配置的 MinIO 部署的alias
。