文件

資料壓縮

概觀

MinIO 伺服器支援壓縮物件以減少磁碟使用量。物件會在 PUT 時壓縮,然後再寫入磁碟,並在 GET 時解壓縮,然後再傳送給用戶端。這使得壓縮過程對用戶端應用程式和服務是透明的。

根據資料類型,壓縮也可能會提高整體輸送量。生產部署的寫入輸送量通常為每秒每個可用的系統 CPU 核心 500MB 或更高。每個 CPU 核心的解壓縮速度約為每秒 1 GB 或更高。

為了獲得最佳結果,請查看 MinIO 的建議硬體組態或使用MinIO SUBNET直接與工程師合作,分析壓縮效能。

預設檔案類型

資料壓縮是全域選項,設定的組態會套用到部署中的所有儲存桶。啟用資料壓縮會預設壓縮以下類型的資料

副檔名

媒體 (MIME) 類型

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

您可以透過指定所需的副檔名和媒體 (MIME) 類型來控制壓縮哪些物件。

現有的物件不會被修改

啟用、停用或更新部署的壓縮設定不會修改現有的物件。新物件會根據建立時生效的設定進行壓縮。

排除的檔案類型

某些資料無法有效地壓縮。例如:視訊、已經壓縮的資料或小於 4KiB 的檔案。MinIO 不會壓縮常見的不可壓縮檔案類型,即使它們是在壓縮組態中指定的。

這些類型的物件永遠不會被壓縮

物件類型

副檔名

媒體 (MIME) 類型

音訊

audio/*

視訊

*.mp4
*.mkv
*.mov

video/*

影像

*.jpg
*.png
*.gif

application/x-compress (LZW)

7ZIP 壓縮

*.7z

BZIP2 壓縮

*.bz2

application/x-bz2

GZIP 壓縮

*.gz

application/x-gzip

RAR 壓縮

*.rar

LZMA 壓縮

*.xz

application/x-xz

ZIP 壓縮

*.zip

application/zip
application-x-zip-compressed

小於 4 KiB

資料壓縮和加密

MinIO 支援加密壓縮物件,但不建議在沒有事先風險評估的情況下結合壓縮和加密。在為壓縮物件啟用加密之前,請仔細考慮您環境的安全需求。

如需更多有關結合壓縮和加密的資訊,請參閱MinIO 上的透明資料壓縮MinIO SUBNET 用戶可以登入並與我們的工程和安全團隊互動,以查看加密選項。

教學課程

啟用資料壓縮

若要啟用資料壓縮,請使用mc admin config setcompression金鑰的enable選項設定為on

以下設定會針對預設類型的新物件啟用壓縮。

mc admin config set ALIAS compression enable=on

現有的未壓縮物件不會被修改。如要設定要壓縮的副檔名和類型,請參閱設定要壓縮的物件

如要檢視目前的壓縮設定

mc admin config get ALIAS compression

停用資料壓縮

如要停用資料壓縮,請使用 mc admin config setcompression 金鑰的 enable 選項設定為 off

以下會停用新物件的資料壓縮

mc admin config set ALIAS compression enable=off

現有的已壓縮物件不會被修改。

設定要壓縮的物件

透過在 extensionsmime_types 引數中指定想要的檔案副檔名和媒體類型,來設定要壓縮的物件。

預設的資料壓縮設定會壓縮下列類型的資料

副檔名

媒體 (MIME) 類型

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

預設排除的副檔名和類型永遠不會被壓縮

有些物件無法有效壓縮。即使在 extensionsmime_types 引數中指定,MinIO 也不會嘗試壓縮這些物件。有關排除類型的清單,請參閱排除的檔案類型

以下章節說明如何針對想要的檔案副檔名和媒體類型設定壓縮。

壓縮所有可壓縮的物件

如要壓縮除預設排除類型以外的所有物件,請使用mc admin config set,將 compression 金鑰的 extensionsmime_types 選項設定為空清單

mc admin config set ALIAS compression extensions= mime_types=

依檔案副檔名壓縮物件

如要壓縮具有特定檔案副檔名的物件,請使用 mc admin config set,在 extensions 引數中設定想要的檔案副檔名。

以下指令會壓縮副檔名為 .bin.txt 的檔案

mc admin config set ALIAS compression extensions=".bin, .txt"

新的檔案副檔名清單會取代先前的清單。如要新增或移除副檔名,請重複執行 extensions 指令,並提供要壓縮的完整副檔名清單。

以下範例會將 .pdf 新增到前一個範例的檔案副檔名清單

mc admin config set ALIAS compression extensions=".bin, .txt, .pdf"

依媒體類型壓縮物件

如要壓縮特定媒體類型的物件,請使用 mc admin config set,將 compression 金鑰的 mime_types 選項設定為想要的類型清單。

以下範例會壓縮類型為 application/jsonimage/bmp 的檔案

mc admin config set ALIAS compression mime_types="application/json, image/bmp"

新的媒體類型清單會取代先前的清單。如要新增或移除類型,請重複執行 mime_types 指令,並提供要壓縮的完整類型清單。

您可以使用 * 來指定單一媒體類型的所有子類型。以下指令會將所有 text 子類型新增到前一個範例的清單

mc admin config set ALIAS compression mime_types="application/json, image/bmp, text/*"