文件

資料壓縮

概觀

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 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

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

設定要壓縮哪些物件

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

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

檔案副檔名

媒體 (MIME) 類型

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

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

有些物件無法有效地壓縮。MinIO 不會嘗試壓縮這些物件,即使它們在 extensionsmime_types 引數中指定也是如此。請參閱排除的檔案類型以取得排除的類型清單。

以下章節說明如何為所需的檔案副檔名和媒體類型設定壓縮。

壓縮所有可壓縮的物件

若要壓縮除預設排除的類型以外的所有物件,請使用 mc admin config set 來設定 compression 鍵的 extensionsmime_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/jsonimage/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