資料壓縮
概述
MinIO 伺服器支援壓縮物件以減少磁碟使用量。物件在寫入磁碟之前會在 PUT 上壓縮,並在傳送到用戶端之前在 GET 上解壓縮。這使得壓縮過程對用戶端應用程式和服務透明。
根據資料類型,壓縮也可能會提高整體輸送量。生產部署的寫入輸送量通常為系統中每個可用 CPU 核心每秒 500MB 或更高。每個 CPU 核心的解壓縮速度約為每秒 1 GB 或更高。
為了獲得最佳效果,請查看 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 部署的別名
。
現有的未壓縮物件不會被修改。若要設定要壓縮哪些副檔名和類型,請參閱設定要壓縮哪些物件。
若要檢視目前的壓縮設定
mc admin config get ALIAS compression
停用資料壓縮
若要停用資料壓縮,請使用 mc admin config set
來設定 compression
鍵的 enable
選項為 off
。
以下設定會針對新物件停用資料壓縮功能
mc admin config set ALIAS compression enable=off
將
ALIAS
替換為已設定的 MinIO 部署的別名
。
現有的壓縮物件不會被修改。
設定要壓縮哪些物件
透過在 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 部署的別名
。
依檔案副檔名壓縮物件
若要壓縮具有特定副檔名的物件,請使用 mc admin config set
在 extensions
引數中設定所需的檔案副檔名。
以下命令會壓縮副檔名為 .bin
和 .txt
的檔案
mc admin config set ALIAS compression extensions=".bin, .txt"
將
ALIAS
替換為已設定的 MinIO 部署的別名
。
新的檔案副檔名清單會取代先前的清單。若要新增或移除副檔名,請使用要壓縮的完整副檔名清單重複執行 extensions
命令。
以下命令會將 .pdf
新增至上一個範例中的檔案副檔名清單
mc admin config set ALIAS compression extensions=".bin, .txt, .pdf"
將
ALIAS
替換為已設定的 MinIO 部署的別名
。
依媒體類型壓縮物件
若要壓縮特定媒體類型的物件,請使用 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 部署的別名
。
新的媒體類型清單會取代先前的清單。若要新增或移除類型,請使用要壓縮的完整類型清單重複執行 mime_types
命令。
您可以使用 *
來指定單一媒體類型的所有子類型。以下命令會將所有 text
子類型新增至上一個範例中的清單
mc admin config set ALIAS compression mime_types="application/json, image/bmp, text/*"
將
ALIAS
替換為已設定的 MinIO 部署的別名
。